XHCI: Handling of Zero length packet in data stage

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

 



We have devices which require to send zero length packet in data stage to
host in certain cases. We were not seeing any issue when we were using
ehci based controller. When we switched to XHCI here is what we are
observing:-

For IN DATA dir control xfer XHCI sets ISP so xhci updates actual_length
for short packet in data stage using event->transfer_len.

But for data packets not short xhci directly uses
urb->transfer_buffer_length as actual_length.This is done assuming data
stage will never have zero length (short packet) data packet. Once Device
sends zero length packet in data stage
ISP triggers and actual_length is updated with value 0. Then later in
status stage (since urb->actual_length is zero) driver incorrectly sets
actual_length with urb->transfer_buffer_length.


I would like to get insight from  linux-usb grp to fix this issue.

Thanks,
Hemant

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