MUSB: some questions, 1, why there is no ZLP(zero length packet) when enable DMA?

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

 



I use the case
testusb -a -t 1 -s 4096 -c 10
and find there is no ZLP after a transfer(4096 bytes),  I use the
Mentor's own DMA
(CONFIG_USB_INVENTRA_DMA). but when just use PIO, there is ZLP.
In the musb_host_tx, the transfer will end with the case

     } else if (dma && urb->transfer_buffer_length == qh->offset) {
              done = true;

and don't check the URB_ZERO_PACKET like PIO.

please correct me if I am wrong.

2, Why clear the RX toggle bit every time enable a endpoint?
In the function musb_ep_program, when endpoint is IN, it will do
musb_rx_reinit-->musb_h_flush_rxfifo and force clear the RXCSR's
toggle bit(MUSB_RXCSR_CLRDATATOG), this may cause data toggle mismatch.
and In my SOC, it will break the transfer, because the SOC will silently
discard the data if there is a data toggle mismatch.

3, Is it possible for sharing the same irq line between MUSB and DMA?
My SOC shares the two interrupt with same irq line, so I fix the request_irq
with the flag IRQF_SHARED.
I do some basic test, seems it works, but I am not so sure, please
give me some advice.
--
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