Hi Hu, On Sat, Jun 22, 2013 at 6:50 PM, Hu Tao <hu...@cn.fujitsu.com> wrote: > Cc: Gerd Hoffmann <kra...@redhat.com> > Signed-off-by: Hu Tao <hu...@cn.fujitsu.com> > --- > hw/usb/hcd-ohci.c | 16 +++++++--------- > 1 file changed, 7 insertions(+), 9 deletions(-) > > diff --git a/hw/usb/hcd-ohci.c b/hw/usb/hcd-ohci.c > index 51241cd..79ef41b 100644 > --- a/hw/usb/hcd-ohci.c > +++ b/hw/usb/hcd-ohci.c > @@ -1876,17 +1876,16 @@ typedef struct { > dma_addr_t dma_offset; > } OHCISysBusState; > > -static int ohci_init_pxa(SysBusDevice *dev) > +static void ohci_realize_pxa(DeviceState *dev, Error **errp) > { > - OHCISysBusState *s = FROM_SYSBUS(OHCISysBusState, dev); > + OHCISysBusState *s = DO_UPCAST(OHCISysBusState, busdev.qdev, dev);
I don't think this is an improvement. Until a QOM cast macro is available, FROM_SYSBUS is preferable to a DO_UPCAST I think? > + SysBusDevice *b = SYS_BUS_DEVICE(dev); > > /* Cannot fail as we pass NULL for masterbus */ > - usb_ohci_init(&s->ohci, &dev->qdev, s->num_ports, s->dma_offset, NULL, 0, > + usb_ohci_init(&s->ohci, dev, s->num_ports, s->dma_offset, NULL, 0, > &dma_context_memory); Rebase required due to Paolos IOMMU patches going in removing dma_context_memory. Regards, Peter > - sysbus_init_irq(dev, &s->ohci.irq); > - sysbus_init_mmio(dev, &s->ohci.mem); > - > - return 0; > + sysbus_init_irq(b, &s->ohci.irq); > + sysbus_init_mmio(b, &s->ohci.mem); > } > > static Property ohci_pci_properties[] = { > @@ -1926,9 +1925,8 @@ static Property ohci_sysbus_properties[] = { > static void ohci_sysbus_class_init(ObjectClass *klass, void *data) > { > DeviceClass *dc = DEVICE_CLASS(klass); > - SysBusDeviceClass *sbc = SYS_BUS_DEVICE_CLASS(klass); > > - sbc->init = ohci_init_pxa; > + dc->realize = ohci_realize_pxa; > dc->desc = "OHCI USB Controller"; > dc->props = ohci_sysbus_properties; > } > -- > 1.8.3.1 > >