On Thu, Jul 11, 2013 at 10:44 PM, Sebastian Andrzej Siewior <bigeasy@xxxxxxxxxxxxx> wrote: > > On 07/11/2013 06:58 PM, Greg KH wrote: > >> following scenario: > >> you attach an UART-TO-USB adapter to your musb port running ux500-dma > >> code. The USB UARt driver queues 1x RX URB with the size of 256 bytes > >> (example) and the max packet size is 64. > >> > >> The other side sends only one byte because it is mean. > > > > That's actually quite common, why is it "mean"? > > Hehe. Because it is the unexpected one. common depends on the use case. > Mass storage doesn't do this. Not sure if network notices the > difference, maybe ncm. > > >> Now, the way I understand it is, you tell musb that the complete > >> transfer of 256 bytes has ended instead one byte that really > >> happened. Is my assumption wrong? > > > > What do you mean by "tell musb"? Of course the transfer has completed, > > that's all the device sent to the host controller, so it has to complete > > the transfer and send that on up to the driver that requested the urb. > > > > I don't understand the question/problem you are asking here, care to be > > more descriptive? > > Okay. musb offloads the actual transfer to the DMA engine it is using. > Once it does so, it relies on whatever comes back from dma engine > regarding transfer complete, transferred size etc. AFAIK ux500 musb dma code handles data which is multiple of max packet size in DMA. 1 byte should be in PIO mode. Which version of kernel you are using ? > > In case of ux500-dma (as far as I can tell) musb forwards the RX > request to the DMA engine, which will receive one byte instead of the > requested 256bytes. Since the DMA engine did not inform musb about the > correct transfer size, musb will complete that URB with 256 bytes. > > If you take a look on ux500_dma_callback() you will see the line: > ux500_channel->channel.actual_len = ux500_channel->cur_len; > > ->actual_len is what musb thinks got transferred. ->cur_len is what > musb asked to transfer. I don't see where the case of a shorter > transfer is considered. Again I have no HW I was just browsing. > > > thanks, > > > > greg k-h > > 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 -- 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