aboutsummaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorStefan Roese <sr@denx.de>2021-01-15 08:52:56 +0100
committerMarek Vasut <marex@denx.de>2021-02-10 22:23:24 +0100
commitcec804251d4b4765bbcaa207f4c931fef350585e (patch)
tree1081ae9d2eb1da8e83c44fe1a263300ab3b6d251 /drivers
parent5a5024fee073fea1b2f72601c4f3f006451fd176 (diff)
downloadu-boot-cec804251d4b4765bbcaa207f4c931fef350585e.zip
u-boot-cec804251d4b4765bbcaa207f4c931fef350585e.tar.gz
u-boot-cec804251d4b4765bbcaa207f4c931fef350585e.tar.bz2
usb: xhci: Fix compare to use physical addresses in xhci_bulk_tx()
Testing with v2021.01 on MIPS Octeon has shown, that the latest patch for the "short packet event trb handling" did introduce a bug on platforms with virtual address != physical address. This patch fixes this issue by using the correct address types in the compare (both physical in this case). Signed-off-by: Stefan Roese <sr@denx.de> Cc: Aaron Williams <awilliams@marvell.com> Cc: Chandrakala Chavva <cchavva@marvell.com> Cc: Ran Wang <ran.wang_1@nxp.com> Cc: Nicolas Saenz Julienne <nsaenzjulienne@suse.de> Cc: Marek Vasut <marex@denx.de> Cc: Bin Meng <bmeng.cn@gmail.com>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/usb/host/xhci-ring.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
index d708fc9..d6c47d5 100644
--- a/drivers/usb/host/xhci-ring.c
+++ b/drivers/usb/host/xhci-ring.c
@@ -723,8 +723,8 @@ again:
return -ETIMEDOUT;
}
- if ((uintptr_t)(le64_to_cpu(event->trans_event.buffer))
- != (uintptr_t)last_transfer_trb_addr) {
+ if ((uintptr_t)(le64_to_cpu(event->trans_event.buffer)) !=
+ (uintptr_t)virt_to_phys(last_transfer_trb_addr)) {
available_length -=
(int)EVENT_TRB_LEN(le32_to_cpu(event->trans_event.transfer_len));
xhci_acknowledge_event(ctrl);