aboutsummaryrefslogtreecommitdiff
path: root/payloads/libpayload/drivers/usb/ehci.c
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/libpayload/drivers/usb/ehci.c')
-rw-r--r--payloads/libpayload/drivers/usb/ehci.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/payloads/libpayload/drivers/usb/ehci.c b/payloads/libpayload/drivers/usb/ehci.c
index d33fec57b6..972962cf51 100644
--- a/payloads/libpayload/drivers/usb/ehci.c
+++ b/payloads/libpayload/drivers/usb/ehci.c
@@ -241,6 +241,10 @@ static int fill_td(qtd_t *td, void* data, int datalen)
}
datalen -= 4096;
total_len += 4096;
+
+ /* end TD at a packet boundary if transfer not complete */
+ if (page_no == 5)
+ total_len &= ~511;
}
}
td->token |= total_len << QTD_TOTAL_LEN_SHIFT;