mirror of https://gitee.com/openkylin/qemu.git
uhci: Use only one queue for ctrl endpoints
ctrl endpoints use different pids for different phases of a control transfer, this patch makes us use only one queue for a ctrl ep, rather then 3. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
8928c9c43d
commit
6fe30910ab
hw/usb
|
@ -167,8 +167,13 @@ static void uhci_queue_fill(UHCIQueue *q, UHCI_TD *td);
|
|||
|
||||
static inline int32_t uhci_queue_token(UHCI_TD *td)
|
||||
{
|
||||
/* covers ep, dev, pid -> identifies the endpoint */
|
||||
return td->token & 0x7ffff;
|
||||
if ((td->token & (0xf << 15)) == 0) {
|
||||
/* ctrl ep, cover ep and dev, not pid! */
|
||||
return td->token & 0x7ff00;
|
||||
} else {
|
||||
/* covers ep, dev, pid -> identifies the endpoint */
|
||||
return td->token & 0x7ffff;
|
||||
}
|
||||
}
|
||||
|
||||
static UHCIQueue *uhci_queue_new(UHCIState *s, uint32_t qh_addr, UHCI_TD *td,
|
||||
|
|
Loading…
Reference in New Issue