When calculating the actual length for requests, we don't want to include the
8 byte request header. It was included in the case of outgoing request transfers before. In fact we always just want the length of the data phase, which for non-requests just happens to be the whole transfer. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26508 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1089,11 +1089,10 @@ EHCI::FinishTransfers()
|
|||||||
transfer->data_descriptor,
|
transfer->data_descriptor,
|
||||||
vector, vectorCount,
|
vector, vectorCount,
|
||||||
&nextDataToggle);
|
&nextDataToggle);
|
||||||
} else {
|
} else if (transfer->data_descriptor) {
|
||||||
// calculate transfered length
|
// calculate transfered length
|
||||||
actualLength = ReadActualLength(
|
actualLength = ReadActualLength(
|
||||||
(ehci_qtd *)transfer->queue_head->element_log,
|
transfer->data_descriptor, &nextDataToggle);
|
||||||
&nextDataToggle);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
transfer->transfer->TransferPipe()->SetDataToggle(nextDataToggle);
|
transfer->transfer->TransferPipe()->SetDataToggle(nextDataToggle);
|
||||||
|
|||||||
@@ -1029,10 +1029,10 @@ OHCI::_FinishTransfers()
|
|||||||
actualLength = _ReadDescriptorChain(
|
actualLength = _ReadDescriptorChain(
|
||||||
transfer->data_descriptor,
|
transfer->data_descriptor,
|
||||||
vector, vectorCount);
|
vector, vectorCount);
|
||||||
} else {
|
} else if (transfer->data_descriptor) {
|
||||||
// read the actual length that was sent
|
// read the actual length that was sent
|
||||||
actualLength = _ReadActualLength(
|
actualLength = _ReadActualLength(
|
||||||
transfer->first_descriptor);
|
transfer->data_descriptor);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (transfer->transfer->IsFragmented()) {
|
if (transfer->transfer->IsFragmented()) {
|
||||||
|
|||||||
@@ -1225,10 +1225,10 @@ UHCI::FinishTransfers()
|
|||||||
transfer->data_descriptor,
|
transfer->data_descriptor,
|
||||||
vector, vectorCount,
|
vector, vectorCount,
|
||||||
&lastDataToggle);
|
&lastDataToggle);
|
||||||
} else {
|
} else if (transfer->data_descriptor) {
|
||||||
// read the actual length that was sent
|
// read the actual length that was sent
|
||||||
actualLength = ReadActualLength(
|
actualLength = ReadActualLength(
|
||||||
transfer->first_descriptor, &lastDataToggle);
|
transfer->data_descriptor, &lastDataToggle);
|
||||||
}
|
}
|
||||||
|
|
||||||
transfer->transfer->TransferPipe()->SetDataToggle(lastDataToggle == 0);
|
transfer->transfer->TransferPipe()->SetDataToggle(lastDataToggle == 0);
|
||||||
|
|||||||
Reference in New Issue
Block a user