USB OHCI: Fix finalizing of STALL-ed control request transfers
In case control transfer is finished with STALL answer from device only the setup TD is retired into the Done Queue but other TDs (data and status) are left in the ED queue. HC set the endpoint halted - so we process such endpoint regardless of it's non-empty queue. PS: cleanup some trailing spaces.
This commit is contained in:
@@ -1040,7 +1040,9 @@ OHCI::_FinishTransfers()
|
|||||||
MutexLocker endpointLocker(endpoint->lock);
|
MutexLocker endpointLocker(endpoint->lock);
|
||||||
|
|
||||||
if ((endpoint->head_physical_descriptor & OHCI_ENDPOINT_HEAD_MASK)
|
if ((endpoint->head_physical_descriptor & OHCI_ENDPOINT_HEAD_MASK)
|
||||||
!= endpoint->tail_physical_descriptor) {
|
!= endpoint->tail_physical_descriptor
|
||||||
|
&& (endpoint->head_physical_descriptor
|
||||||
|
& OHCI_ENDPOINT_HALTED) == 0) {
|
||||||
// there are still active transfers on this endpoint, we need
|
// there are still active transfers on this endpoint, we need
|
||||||
// to wait for all of them to complete, otherwise we'd read
|
// to wait for all of them to complete, otherwise we'd read
|
||||||
// a potentially bogus data toggle value below
|
// a potentially bogus data toggle value below
|
||||||
|
|||||||
Reference in New Issue
Block a user