mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 01:33:56 -06:00
Merge remote-tracking branch 'origin/master' into HEAD
Resolve conflicts around apb. Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
commit
acc95bc850
579 changed files with 67167 additions and 9215 deletions
22
hw/usb/bus.c
22
hw/usb/bus.c
|
@ -559,28 +559,6 @@ int usb_device_detach(USBDevice *dev)
|
|||
return 0;
|
||||
}
|
||||
|
||||
int usb_device_delete_addr(int busnr, int addr)
|
||||
{
|
||||
USBBus *bus;
|
||||
USBPort *port;
|
||||
USBDevice *dev;
|
||||
|
||||
bus = usb_bus_find(busnr);
|
||||
if (!bus)
|
||||
return -1;
|
||||
|
||||
QTAILQ_FOREACH(port, &bus->used, next) {
|
||||
if (port->dev->addr == addr)
|
||||
break;
|
||||
}
|
||||
if (!port)
|
||||
return -1;
|
||||
dev = port->dev;
|
||||
|
||||
object_unparent(OBJECT(dev));
|
||||
return 0;
|
||||
}
|
||||
|
||||
static const char *usb_speed(unsigned int speed)
|
||||
{
|
||||
static const char *txt[] = {
|
||||
|
|
|
@ -596,12 +596,11 @@ static void usb_msd_unrealize_storage(USBDevice *dev, Error **errp)
|
|||
object_unref(OBJECT(&s->bus));
|
||||
}
|
||||
|
||||
static void usb_msd_realize_storage(USBDevice *dev, Error **errp)
|
||||
static void usb_msd_storage_realize(USBDevice *dev, Error **errp)
|
||||
{
|
||||
MSDState *s = USB_STORAGE_DEV(dev);
|
||||
BlockBackend *blk = s->conf.blk;
|
||||
SCSIDevice *scsi_dev;
|
||||
Error *err = NULL;
|
||||
|
||||
if (!blk) {
|
||||
error_setg(errp, "drive property not set");
|
||||
|
@ -610,9 +609,8 @@ static void usb_msd_realize_storage(USBDevice *dev, Error **errp)
|
|||
|
||||
blkconf_serial(&s->conf, &dev->serial);
|
||||
blkconf_blocksizes(&s->conf);
|
||||
blkconf_apply_backend_options(&s->conf, blk_is_read_only(blk), true, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
if (!blkconf_apply_backend_options(&s->conf, blk_is_read_only(blk), true,
|
||||
errp)) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -636,24 +634,23 @@ static void usb_msd_realize_storage(USBDevice *dev, Error **errp)
|
|||
&usb_msd_scsi_info_storage, NULL);
|
||||
scsi_dev = scsi_bus_legacy_add_drive(&s->bus, blk, 0, !!s->removable,
|
||||
s->conf.bootindex, dev->serial,
|
||||
&err);
|
||||
errp);
|
||||
blk_unref(blk);
|
||||
if (!scsi_dev) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
usb_msd_handle_reset(dev);
|
||||
s->scsi_dev = scsi_dev;
|
||||
}
|
||||
|
||||
static void usb_msd_unrealize_bot(USBDevice *dev, Error **errp)
|
||||
static void usb_msd_bot_unrealize(USBDevice *dev, Error **errp)
|
||||
{
|
||||
MSDState *s = USB_STORAGE_DEV(dev);
|
||||
|
||||
object_unref(OBJECT(&s->bus));
|
||||
}
|
||||
|
||||
static void usb_msd_realize_bot(USBDevice *dev, Error **errp)
|
||||
static void usb_msd_bot_realize(USBDevice *dev, Error **errp)
|
||||
{
|
||||
MSDState *s = USB_STORAGE_DEV(dev);
|
||||
DeviceState *d = DEVICE(dev);
|
||||
|
@ -767,12 +764,12 @@ static void usb_msd_class_initfn_common(ObjectClass *klass, void *data)
|
|||
dc->vmsd = &vmstate_usb_msd;
|
||||
}
|
||||
|
||||
static void usb_msd_class_initfn_storage(ObjectClass *klass, void *data)
|
||||
static void usb_msd_class_storage_initfn(ObjectClass *klass, void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
|
||||
|
||||
uc->realize = usb_msd_realize_storage;
|
||||
uc->realize = usb_msd_storage_realize;
|
||||
uc->unrealize = usb_msd_unrealize_storage;
|
||||
dc->props = msd_properties;
|
||||
}
|
||||
|
@ -831,26 +828,26 @@ static void usb_msd_instance_init(Object *obj)
|
|||
object_property_set_int(obj, -1, "bootindex", NULL);
|
||||
}
|
||||
|
||||
static void usb_msd_class_initfn_bot(ObjectClass *klass, void *data)
|
||||
static void usb_msd_class_bot_initfn(ObjectClass *klass, void *data)
|
||||
{
|
||||
USBDeviceClass *uc = USB_DEVICE_CLASS(klass);
|
||||
|
||||
uc->realize = usb_msd_realize_bot;
|
||||
uc->unrealize = usb_msd_unrealize_bot;
|
||||
uc->realize = usb_msd_bot_realize;
|
||||
uc->unrealize = usb_msd_bot_unrealize;
|
||||
uc->attached_settable = true;
|
||||
}
|
||||
|
||||
static const TypeInfo msd_info = {
|
||||
.name = "usb-storage",
|
||||
.parent = TYPE_USB_STORAGE,
|
||||
.class_init = usb_msd_class_initfn_storage,
|
||||
.class_init = usb_msd_class_storage_initfn,
|
||||
.instance_init = usb_msd_instance_init,
|
||||
};
|
||||
|
||||
static const TypeInfo bot_info = {
|
||||
.name = "usb-bot",
|
||||
.parent = TYPE_USB_STORAGE,
|
||||
.class_init = usb_msd_class_initfn_bot,
|
||||
.class_init = usb_msd_class_bot_initfn,
|
||||
};
|
||||
|
||||
static void usb_msd_register_types(void)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue