On 23/2/24 13:44, Paolo Bonzini wrote:
Split the sysbus version to a separate file so that it is not
included in PCI-only machines, and adjust Kconfig for machines
that do need sysbus-ohci. The copyrights are based on the
time and employer of balrog and Paul Brook's contributions.
While adjusting the SM501 dependency, move it to the right place
instead of keeping it in the R4D machine.
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
---
hw/usb/hcd-ohci-sysbus.c | 91 ++++++++++++++++++++++++++++++++++++++++
hw/usb/hcd-ohci.c | 58 ------------------------
hw/arm/Kconfig | 12 +++--
hw/display/Kconfig | 1 +
hw/ppc/Kconfig | 2 +-
hw/sh4/Kconfig | 1 -
hw/usb/Kconfig | 4 ++
hw/usb/meson.build | 1 +
8 files changed, 105 insertions(+), 65 deletions(-)
create mode 100644 hw/usb/hcd-ohci-sysbus.c
+static void ohci_realize_pxa(DeviceState *dev, Error **errp)
s/ohci_realize_pxa/ohci_sysbus_realize/
+{
+ OHCISysBusState *s = SYSBUS_OHCI(dev);
+ SysBusDevice *sbd = SYS_BUS_DEVICE(dev);
+ Error *err = NULL;
+
+ usb_ohci_init(&s->ohci, dev, s->num_ports, s->dma_offset,
+ s->masterbus, s->firstport,
+ &address_space_memory, ohci_sysbus_die, &err);
+ if (err) {
+ error_propagate(errp, err);
+ return;
+ }
+ sysbus_init_irq(sbd, &s->ohci.irq);
+ sysbus_init_mmio(sbd, &s->ohci.mem);
+}
+
+static void usb_ohci_reset_sysbus(DeviceState *dev)
s/usb_ohci_reset_sysbus/ohci_sysbus/reset/.
To be converted to Resettable API.
+{
+ OHCISysBusState *s = SYSBUS_OHCI(dev);
+ OHCIState *ohci = &s->ohci;
+
+ ohci_hard_reset(ohci);
+}
+static void ohci_register_types(void)
+{
+ type_register_static(&ohci_sysbus_info);
+}
+
+type_init(ohci_register_types)
Better directly use DEFINE_TYPES() in new uses, even for
a single type.
diff --git a/hw/usb/Kconfig b/hw/usb/Kconfig
index 0f486764ed6..f569ed7eeaa 100644
--- a/hw/usb/Kconfig
+++ b/hw/usb/Kconfig
@@ -11,6 +11,10 @@ config USB_OHCI
bool
select USB
+config USB_OHCI_SYSBUS
+ bool
+ select USB_OHCI
I start to think USB_OHCI_MMIO would be clearer. I can
clean that up later, so:
Reviewed-by: Philippe Mathieu-Daudé <phi...@linaro.org>
config USB_OHCI_PCI
bool
default y if PCI_DEVICES