55 | | * In '''MODE_DMA_IRQ''' or '''MODE_DMA_NO_IRQ''', each channel FSM transfers a single buffer between one coprocessor port and the memory. When transfer is completed, the channel FSM keep blocked until it is re-activated. In '''MODE_DMA_IRQ''', the calling task is descheduled, after coprocessor activation, in the ''giet_coproc_run()'' system call. The transfer completion is signaled by the MWR IRQ that updates the ''_coproc_done'' / ''_coproc_status'' variables, deactivates the coprocessor, and resumes the calling task. In '''MODE_DMA_NO_IRQ''', the ''giet_coproc_start()'' system call is not blocking. The user task must use the ''giet_coproc_completed()'' system call that detect transfer completion by polling the coprocessor registers, and deactivates the coprocessor before returning. |
| 55 | * In '''MODE_DMA_IRQ''' or '''MODE_DMA_NO_IRQ''', each channel FSM transfers a single buffer between one coprocessor port and the memory. When transfer is completed, the channel FSM keep blocked until it is re-activated. |
| 56 | - In '''MODE_DMA_IRQ''', the calling task is descheduled, after coprocessor activation, in the ''giet_coproc_run()'' system call. The transfer completion is signaled by the MWR IRQ that updates the ''_coproc_status'' / ''_coproc_channel'' variables, deactivates the coprocessor, and resumes the calling task. |
| 57 | - In '''MODE_DMA_NO_IRQ''', the ''giet_coproc_run()'' system call returns after coprocessor activation. The user task must use the blocking ''giet_coproc_completed()'' system call that detect transfer completion by polling the coprocessor registers, and deactivates the coprocessor before returning. |