Re: [RFC] ux500 dma & short transfers on MUSB

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

 



On 07/19/2013 10:26 AM, Rajaram R wrote:
> We program the DMA only when we receive RX interrupt and when the
> length of data is known. When you submit URB for RX the flow would be
> something like  musb_start_urb==>musb_ep_program,  Note here we do not
> program the DMA.  DMA is programmed musb_host_rx using
> "channel_program" callback. Note here we pass the length of data
> received.
> 
> Now in ux500_dma file 'ux500_dma_is_compatible' fails the dma
> operation and the driver switches to FIFO mode in the same function
> (musb_host_rx).

Okay. This is completely different from what I expected. That means
while the URB is submitting you only program the musb controller for
receive and nothing else. The next interrupt will notify that the
musb's endpoint fifo is filled with X bytes and you program the dma
engine to transfer X bytes. And then you wait for another interrupt
which says DMA transfer completed. So in that case you don't have that
problem I though you do. Thank you for clearing that up.

ux500_dma_is_compatible() is testing "length < 512" and "length & 3".
This looks like the fifo can be filled with more than 512 bytes. Do you
know on top of your head how much that can be?

> 
> 
> Cheers

Sebastian

--
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