Currently, I'm facing one weird issue with my custom Windows USB driver.
So I know in USB 3.0 the interrupt xfer mechanism is totally changed i.e from polling to async notification.
From the driver perspective, I have submitted my Interrupt URB immediately after driver registration when the device will probe on the USB port.
That means my driver will always in a listening mode for any Interrupt packets.
But unfortunately, my device goes into U2 state whenever there is no bus activity like other endpoints operations. and I'm not able to read Interrupt IN packets from the device. over here at device side IN transfer to host is successfully but after that, on USB analyzer there is not activity.
My Question is, If one of my endpoint already submitted URB then why device is not wakeup to U0?
I have also referring deferred packets concept to resolve this problem and found that in LinkControlWord there is Deferred bit... If i set it to 1 than it should works
How can I set that bit?
USB 3.0 spec section c.1.2.2 Packet Deferring
It looks like you're new here. If you want to get involved, click one of these buttons!
|Upcoming OSR Seminars|
|Developing Minifilters||29 July 2019||OSR Seminar Space|
|Writing WDF Drivers||23 Sept 2019||OSR Seminar Space|
|Kernel Debugging||21 Oct 2019||OSR Seminar Space|
|Internals & Software Drivers||18 Nov 2019||Dulles, VA|