summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2020-05-10 02:43:39 +0200
committercinap_lenrek <cinap_lenrek@felloff.net>2020-05-10 02:43:39 +0200
commitc474179f9a6428bb81a78d20f43cf982125d5d34 (patch)
tree9fb4acbd49a7eb87e859554018197a77ad504fb3
parent2c3e60d95b0beafa25845b401ed9996ebe8100fb (diff)
downloadplan9front-c474179f9a6428bb81a78d20f43cf982125d5d34.tar.xz
usbxhci: fix wrong control endpoint 0 output device context address
the calculation for the control endpoint0 output device context missed the context size scaling shift, resulting in botched stall handling as we would not read the correct endpoint status value. note, this calculation only affected control endpoint 0, which was handled separately from all other endpoints.
-rw-r--r--sys/src/9/port/usbxhci.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/src/9/port/usbxhci.c b/sys/src/9/port/usbxhci.c
index ab30aa040..f9b61438e 100644
--- a/sys/src/9/port/usbxhci.c
+++ b/sys/src/9/port/usbxhci.c
@@ -1239,7 +1239,7 @@ epopen(Ep *ep)
slot->nep = 1;
ring->slot = slot;
ring->doorbell = &ctlr->dba[slot->id];
- ring->ctx = &slot->obase[8];
+ ring->ctx = &slot->obase[8<<ctlr->csz];
/* (input) control context */
w = slot->ibase;