Message ID | 1355629786-14649-4-git-send-email-andreas.faerber@web.de |
---|---|
State | New |
Headers | show |
On 12/16/2012 07:49 AM, Andreas Färber wrote: > It uses a different capsbase and opregbase than the Xilinx device. > > Signed-off-by: Liming Wang <walimisdev@gmail.com> > Signed-off-by: Andreas Färber <andreas.faerber@web.de> > Cc: Igor Mitsyanko <i.mitsyanko@samsung.com> > --- > hw/usb/hcd-ehci-sysbus.c | 15 +++++++++++++++ > hw/usb/hcd-ehci.h | 2 ++ > 2 Dateien geändert, 17 Zeilen hinzugefügt(+) Reviewed-by: Igor Mitsyanko<i.mitsyanko@samsung.com> > diff --git a/hw/usb/hcd-ehci-sysbus.c b/hw/usb/hcd-ehci-sysbus.c > index 5a94ce3..b68a66a 100644 > --- a/hw/usb/hcd-ehci-sysbus.c > +++ b/hw/usb/hcd-ehci-sysbus.c > @@ -81,10 +81,25 @@ static const TypeInfo ehci_xlnx_type_info = { > .class_init = ehci_xlnx_class_init, > }; > > +static void ehci_exynos4210_class_init(ObjectClass *oc, void *data) > +{ > + SysBusEHCIClass *sec = SYS_BUS_EHCI_CLASS(oc); > + > + sec->capsbase = 0x0; > + sec->opregbase = 0x10; > +} > + > +static const TypeInfo ehci_exynos4210_type_info = { > + .name = TYPE_EXYNOS4210_EHCI, > + .parent = TYPE_SYS_BUS_EHCI, > + .class_init = ehci_exynos4210_class_init, > +}; > + > static void ehci_sysbus_register_types(void) > { > type_register_static(&ehci_type_info); > type_register_static(&ehci_xlnx_type_info); > + type_register_static(&ehci_exynos4210_type_info); > } > > type_init(ehci_sysbus_register_types) > diff --git a/hw/usb/hcd-ehci.h b/hw/usb/hcd-ehci.h > index 9a62cbe..2620926 100644 > --- a/hw/usb/hcd-ehci.h > +++ b/hw/usb/hcd-ehci.h > @@ -337,6 +337,8 @@ typedef struct EHCIPCIState { > > > #define TYPE_SYS_BUS_EHCI "sysbus-ehci-usb" > +#define TYPE_EXYNOS4210_EHCI "exynos4210-ehci-usb" > + > #define SYS_BUS_EHCI(obj) \ > OBJECT_CHECK(EHCISysBusState, (obj), TYPE_SYS_BUS_EHCI) > #define SYS_BUS_EHCI_CLASS(class) \
diff --git a/hw/usb/hcd-ehci-sysbus.c b/hw/usb/hcd-ehci-sysbus.c index 5a94ce3..b68a66a 100644 --- a/hw/usb/hcd-ehci-sysbus.c +++ b/hw/usb/hcd-ehci-sysbus.c @@ -81,10 +81,25 @@ static const TypeInfo ehci_xlnx_type_info = { .class_init = ehci_xlnx_class_init, }; +static void ehci_exynos4210_class_init(ObjectClass *oc, void *data) +{ + SysBusEHCIClass *sec = SYS_BUS_EHCI_CLASS(oc); + + sec->capsbase = 0x0; + sec->opregbase = 0x10; +} + +static const TypeInfo ehci_exynos4210_type_info = { + .name = TYPE_EXYNOS4210_EHCI, + .parent = TYPE_SYS_BUS_EHCI, + .class_init = ehci_exynos4210_class_init, +}; + static void ehci_sysbus_register_types(void) { type_register_static(&ehci_type_info); type_register_static(&ehci_xlnx_type_info); + type_register_static(&ehci_exynos4210_type_info); } type_init(ehci_sysbus_register_types) diff --git a/hw/usb/hcd-ehci.h b/hw/usb/hcd-ehci.h index 9a62cbe..2620926 100644 --- a/hw/usb/hcd-ehci.h +++ b/hw/usb/hcd-ehci.h @@ -337,6 +337,8 @@ typedef struct EHCIPCIState { #define TYPE_SYS_BUS_EHCI "sysbus-ehci-usb" +#define TYPE_EXYNOS4210_EHCI "exynos4210-ehci-usb" + #define SYS_BUS_EHCI(obj) \ OBJECT_CHECK(EHCISysBusState, (obj), TYPE_SYS_BUS_EHCI) #define SYS_BUS_EHCI_CLASS(class) \