[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 22/26] usb-bus: introduce a wrapper function to check
From: |
Gerd Hoffmann |
Subject: |
[Qemu-devel] [PULL 22/26] usb-bus: introduce a wrapper function to check speed |
Date: |
Tue, 23 Sep 2014 14:13:33 +0200 |
From: Gonglei <address@hidden>
In this way, we can check speed directly, don't need
call usb_device_attach(), which has other conditions,
such as checking the chardev is open.
Signed-off-by: Gonglei <address@hidden>
Reviewed-by: Paolo Bonzini <address@hidden>
Signed-off-by: Gerd Hoffmann <address@hidden>
---
hw/usb/bus.c | 14 +++++++++++++-
include/hw/usb.h | 1 +
2 files changed, 14 insertions(+), 1 deletion(-)
diff --git a/hw/usb/bus.c b/hw/usb/bus.c
index b375293..da1eba9 100644
--- a/hw/usb/bus.c
+++ b/hw/usb/bus.c
@@ -478,7 +478,7 @@ static void usb_mask_to_str(char *dest, size_t size,
}
}
-void usb_device_attach(USBDevice *dev, Error **errp)
+void usb_check_attach(USBDevice *dev, Error **errp)
{
USBBus *bus = usb_bus_from_device(dev);
USBPort *port = dev->port;
@@ -499,6 +499,18 @@ void usb_device_attach(USBDevice *dev, Error **errp)
bus->qbus.name, port->path, portspeed);
return;
}
+}
+
+void usb_device_attach(USBDevice *dev, Error **errp)
+{
+ USBPort *port = dev->port;
+ Error *local_err = NULL;
+
+ usb_check_attach(dev, &local_err);
+ if (local_err) {
+ error_propagate(errp, local_err);
+ return;
+ }
dev->attached++;
usb_attach(port);
diff --git a/include/hw/usb.h b/include/hw/usb.h
index 8ffbba2..b20b959 100644
--- a/include/hw/usb.h
+++ b/include/hw/usb.h
@@ -553,6 +553,7 @@ void usb_release_port(USBDevice *dev);
void usb_device_attach(USBDevice *dev, Error **errp);
int usb_device_detach(USBDevice *dev);
int usb_device_delete_addr(int busnr, int addr);
+void usb_check_attach(USBDevice *dev, Error **errp);
static inline USBBus *usb_bus_from_device(USBDevice *d)
{
--
1.8.3.1
- [Qemu-devel] [PULL 00/26] usb patch queue, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 07/26] libusb: using error_report instead of fprintf, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 12/26] dev-uas: using error_report instead of fprintf, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 23/26] usb-serial: only check speed once at realize time, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 19/26] usb-redir: convert init to realize, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 21/26] usb-bus: remove "init" from USBDeviceClass struct, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 22/26] usb-bus: introduce a wrapper function to check speed,
Gerd Hoffmann <=
- [Qemu-devel] [PULL 18/26] usb-audio: convert init to realize, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 13/26] dev-bluetooth: convert init to realize, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 15/26] usb-ccid: convert init to realize, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 14/26] dev-serial: convert init to realize, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 16/26] dev-hid: convert init to realize, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 20/26] usb-mtp: convert init to realize, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 04/26] usb-bus: convert USBDeviceClass init to realize, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 17/26] dev-wacom: convert init to realize, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 08/26] usb-hub: convert init to realize, Gerd Hoffmann, 2014/09/23
- [Qemu-devel] [PULL 03/26] ohci: Convert fprint/DPRINTF/print to traces, Gerd Hoffmann, 2014/09/23