Increase the number of simultaneous transfer descriptors that the
driver will build for uhci. The old value of 4 was a leftover from
when SeaBIOS had a tiny 512 byte extra stack - now that there is a 2K
extra stack there is plenty of space for additional descriptors.
Using a value of 16 should allow for an entire 1ms frame of bulk
transfer content to be setup in advance (assuming the max packet size
is 64 bytes).
Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
return ret;
}
-#define STACKTDS 4
+#define STACKTDS 16
#define TDALIGN 16
int
| (GET_LOWFLAT(pipe->pipe.ep) << 7));
int toggle = GET_LOWFLAT(pipe->toggle) ? TD_TOKEN_TOGGLE : 0;
- // Allocate 4 tds on stack (16byte aligned)
+ // Allocate 16 tds on stack (16byte aligned)
u8 tdsbuf[sizeof(struct uhci_td) * STACKTDS + TDALIGN - 1];
struct uhci_td *tds = (void*)ALIGN((u32)tdsbuf, TDALIGN);
memset(tds, 0, sizeof(*tds) * STACKTDS);