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

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

 



On Fri, Jul 19, 2013 at 2:23 PM, Sebastian Andrzej Siewior
<bigeasy@xxxxxxxxxxxxx> wrote:
> 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?

That was work in progress. You may wish to look at this patch
http://permalink.gmane.org/gmane.linux.usb.general/79858

If a device sends 513 bytes to a musb device. 512 bytes will be
received in DMA mode and 1 byte in FIFO mode.

FIFO will always handle data < 512.

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