usb: Allow overriding of usb_desc at the device level
This allows devices to present a different set of descriptors based on device properties. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
This commit is contained in:
parent
be41efde3c
commit
386ab487eb
1
hw/usb.h
1
hw/usb.h
@ -230,6 +230,7 @@ struct USBDevice {
|
||||
USBEndpoint ep_out[USB_MAX_ENDPOINTS];
|
||||
|
||||
QLIST_HEAD(, USBDescString) strings;
|
||||
const USBDesc *usb_desc; /* Overrides class usb_desc if not NULL */
|
||||
const USBDescDevice *device;
|
||||
|
||||
int configuration;
|
||||
|
@ -166,6 +166,9 @@ const char *usb_device_get_product_desc(USBDevice *dev)
|
||||
const USBDesc *usb_device_get_usb_desc(USBDevice *dev)
|
||||
{
|
||||
USBDeviceClass *klass = USB_DEVICE_GET_CLASS(dev);
|
||||
if (dev->usb_desc) {
|
||||
return dev->usb_desc;
|
||||
}
|
||||
return klass->usb_desc;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user