RE: FW: [PATCH v3] usb: musb: do not use dma for control transfers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Praveena Nadahally wrote:
> Does your solution supports mixing of DMA and PIO?

The MUSB implementation in the OMAP2/3/4 processors does
support mixing of DMA and PIO, as long as they are for
different packets. For a given USB packet, mixing PIO and DMA
accesses to the FIFO is not allowed.

> The MUSB DMA doesn't support odd number of bytes or mixing 1/2/4 byte
> access.

That's not true for the Inventra engine in the OMAPs. They can
handle odd-number of bytes. Accesses to the FIFOs will always
be of the same size, except for leading and trailing parts of
a packet and the DMA engine can adjust for that automatically.

Does the DMA engine you use have the limitation you mentioned above?

(Also, out of curiosity, do you have any public docs for your implementation?

> So, we will need mixing of DMA and PIO mode for transfer.
> There is a need to add the cache flush/invalidate code by default when
> switching between PIO and DMA mode. The cache flush/invalidate code
> needs to be added in the generic code as it already knows if a chain
> is setup using DMA or not.

Isn't it enough to do this in the MUSB code? I believe the
current code can handle this okay - we're not breaking up
a given transfer into part PIO and part DMA. We're saying
the entire transfer will be by PIO if it is a control transfer
and by DMA if it is not a control transfer.

- Anand
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux