From: Alan S. <st...@ro...> - 2013-07-04 14:35:11
|
On Thu, 4 Jul 2013, Kumar, Sanjay wrote: > Hello Hans/Alan, > > I did testing on some more HP printers using libusb1.0.9 version (as it allows both CONTROL and BULK transfers at the same time) and executed following test case. > 1) Start print job. (hp backend process starts BULK write) > 2) During printing, start querying device ID *quickly 5-6 times, after every 2 seconds or so* (status process starts CONTROL request) > > I could see BULK transfer(printing) getting messed up. **Some portion of the data was printed overlapped and repeated** (See attached PrintingIssue.pdf). I debugged this issue with HP firmware developers and found that if control request (which is a blocking call) is sent 4-5 times during printing then printer is receiving the duplicate BULK packet some times, which causes this issue in the printout. So looks like something wrong happens in USB host controller side, which makes it to send the duplicate packet to the printer even when printer sends back the ACK for the previous packet. > > So by seeing all this I think we have no other option but to avoid device ID query during printing in our driver. That means there is no need of doing any change in libusb/kernel code. Please let us know if you have any suggestions or if you want USB traces for the failure case (When device receives duplicate BULK packet from the host) Yes, if you can provide a trace of the failure case, I would like to see it. Alan Stern |