Revision 806b6024 hw/usb-bt.c

b/hw/usb-bt.c
617 617
    qemu_free(s);
618 618
}
619 619

  
620
static int usb_bt_initfn(USBDevice *dev)
621
{
622
    struct USBBtState *s = DO_UPCAST(struct USBBtState, dev, dev);
623
    s->dev.speed = USB_SPEED_HIGH;
624
    return 0;
625
}
626

  
620 627
USBDevice *usb_bt_init(HCIInfo *hci)
621 628
{
629
    USBDevice *dev;
622 630
    struct USBBtState *s;
623 631

  
624 632
    if (!hci)
625 633
        return NULL;
626
    s = qemu_mallocz(sizeof(struct USBBtState));
634
    dev = usb_create_simple(NULL /* FIXME */, "QEMU BT dongle");
635
    s = DO_UPCAST(struct USBBtState, dev, dev);
627 636
    s->dev.opaque = s;
628
    s->dev.speed = USB_SPEED_HIGH;
629
    s->dev.handle_packet = usb_generic_handle_packet;
630
    pstrcpy(s->dev.devname, sizeof(s->dev.devname), "QEMU BT dongle");
631

  
632
    s->dev.handle_reset = usb_bt_handle_reset;
633
    s->dev.handle_control = usb_bt_handle_control;
634
    s->dev.handle_data = usb_bt_handle_data;
635
    s->dev.handle_destroy = usb_bt_handle_destroy;
636 637

  
637 638
    s->hci = hci;
638 639
    s->hci->opaque = s;
......
641 642

  
642 643
    usb_bt_handle_reset(&s->dev);
643 644

  
644
    return &s->dev;
645
    return dev;
646
}
647

  
648
static struct USBDeviceInfo bt_info = {
649
    .qdev.name      = "QEMU BT dongle",
650
    .qdev.size      = sizeof(struct USBBtState),
651
    .init           = usb_bt_initfn,
652
    .handle_packet  = usb_generic_handle_packet,
653
    .handle_reset   = usb_bt_handle_reset,
654
    .handle_control = usb_bt_handle_control,
655
    .handle_data    = usb_bt_handle_data,
656
    .handle_destroy = usb_bt_handle_destroy,
657
};
658

  
659
static void usb_bt_register_devices(void)
660
{
661
    usb_qdev_register(&bt_info);
645 662
}
663
device_init(usb_bt_register_devices)

Also available in: Unified diff