diff mbox

ehci: Kick async schedule on wakeup in the non companion case

Message ID 1341586419-32625-1-git-send-email-hdegoede@redhat.com
State New
Headers show

Commit Message

Hans de Goede July 6, 2012, 2:53 p.m. UTC
Commit 0f588df8b3688b00e77aabaa32e26ece5f19bd39, added code
to ehci_wakeup to kick the async schedule on wakeup, but the else
was positioned wrong making it trigger for devices which are routed
to the companion rather then to the ehci controller itself.

This patch fixes this. Note that the "programming style" with using the
return at the end of the companion block matches how the companion case
is handled in the other ports ops, and is done this way for consistency.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
 hw/usb/hcd-ehci.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

Comments

Gerd Hoffmann July 9, 2012, 8 a.m. UTC | #1
On 07/06/12 16:53, Hans de Goede wrote:
> Commit 0f588df8b3688b00e77aabaa32e26ece5f19bd39, added code
> to ehci_wakeup to kick the async schedule on wakeup, but the else
> was positioned wrong making it trigger for devices which are routed
> to the companion rather then to the ehci controller itself.
> 
> This patch fixes this. Note that the "programming style" with using the
> return at the end of the companion block matches how the companion case
> is handled in the other ports ops, and is done this way for consistency.

Added to usb patch queue.

thanks,
  Gerd
diff mbox

Patch

diff --git a/hw/usb/hcd-ehci.c b/hw/usb/hcd-ehci.c
index 401ccec..b68a8ce 100644
--- a/hw/usb/hcd-ehci.c
+++ b/hw/usb/hcd-ehci.c
@@ -852,10 +852,11 @@  static void ehci_wakeup(USBPort *port)
         USBPort *companion = s->companion_ports[port->index];
         if (companion->ops->wakeup) {
             companion->ops->wakeup(companion);
-        } else {
-            qemu_bh_schedule(s->async_bh);
         }
+        return;
     }
+
+    qemu_bh_schedule(s->async_bh);
 }
 
 static int ehci_register_companion(USBBus *bus, USBPort *ports[],