OSDN Git Service

usb/ohci: Set pad to 0 after frame update
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 23 May 2023 15:58:40 +0000 (17:58 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Thu, 25 May 2023 08:18:33 +0000 (10:18 +0200)
When the OHCI controller's framenumber is incremented, HccaPad1 register
should be set to zero (Ref OHCI Spec 4.4)

ReactOS uses hccaPad1 to determine if the OHCI hardware is running,
consequently it fails this check in current qemu master.

Signed-off-by: Ryan Wendland <wendland@live.com.au>
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1048
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
hw/usb/hcd-ohci.c

index 88d2b4b..cc5cde6 100644 (file)
@@ -1239,6 +1239,8 @@ static void ohci_frame_boundary(void *opaque)
     /* Increment frame number and take care of endianness. */
     ohci->frame_number = (ohci->frame_number + 1) & 0xffff;
     hcca.frame = cpu_to_le16(ohci->frame_number);
+    /* When the HC updates frame number, set pad to 0. Ref OHCI Spec 4.4.1*/
+    hcca.pad = 0;
 
     if (ohci->done_count == 0 && !(ohci->intr_status & OHCI_INTR_WD)) {
         if (!ohci->done) {