diff options
author | Hans de Goede <hdegoede@redhat.com> | 2011-06-21 11:52:28 +0200 |
---|---|---|
committer | Gerd Hoffmann <kraxel@redhat.com> | 2011-07-05 15:09:02 +0200 |
commit | d47e59b8b8adc96a2052f7e004cb12b6ff62edd9 (patch) | |
tree | 301cdacdde8bff6220c9405499ea925a92ea7a26 /hw/usb-uhci.c | |
parent | ae60fea97c78e7f855794f2770517244d93def73 (diff) |
usb: Make port wakeup and complete ops take a USBPort instead of a Device
This makes them consistent with the attach and detach ops, and in general
it makes sense to make portops take a port as argument. This also makes
adding support for a companion controller easier / cleaner.
[ kraxel: fix usb-musb.c build ]
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
Diffstat (limited to 'hw/usb-uhci.c')
-rw-r--r-- | hw/usb-uhci.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/hw/usb-uhci.c b/hw/usb-uhci.c index fd25d2ae0c..ab635f6450 100644 --- a/hw/usb-uhci.c +++ b/hw/usb-uhci.c @@ -620,11 +620,10 @@ static void uhci_detach(USBPort *port1) uhci_resume(s); } -static void uhci_wakeup(USBDevice *dev) +static void uhci_wakeup(USBPort *port1) { - USBBus *bus = usb_bus_from_device(dev); - UHCIState *s = container_of(bus, UHCIState, bus); - UHCIPort *port = s->ports + dev->port->index; + UHCIState *s = port1->opaque; + UHCIPort *port = &s->ports[port1->index]; if (port->ctrl & UHCI_PORT_SUSPEND && !(port->ctrl & UHCI_PORT_RD)) { port->ctrl |= UHCI_PORT_RD; @@ -657,7 +656,7 @@ static int uhci_broadcast_packet(UHCIState *s, USBPacket *p) return ret; } -static void uhci_async_complete(USBDevice *dev, USBPacket *packet); +static void uhci_async_complete(USBPort *port, USBPacket *packet); static void uhci_process_frame(UHCIState *s); /* return -1 if fatal error (frame must be stopped) @@ -849,7 +848,7 @@ done: return len; } -static void uhci_async_complete(USBDevice *dev, USBPacket *packet) +static void uhci_async_complete(USBPort *port, USBPacket *packet) { UHCIAsync *async = container_of(packet, UHCIAsync, packet); UHCIState *s = async->uhci; |