mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 09:13:55 -06:00
hw/usb: extract sysbus-ohci to a separate file
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 <pbonzini@redhat.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Message-ID: <20240223124406.234509-10-pbonzini@redhat.com> [PMD: Rename some functions using 'ohci_sysbus_' prefix] Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
parent
ccced963c5
commit
15f07fb821
8 changed files with 102 additions and 65 deletions
|
@ -1955,31 +1955,6 @@ void ohci_sysbus_die(struct OHCIState *ohci)
|
|||
ohci_bus_stop(ohci);
|
||||
}
|
||||
|
||||
static void ohci_realize_pxa(DeviceState *dev, Error **errp)
|
||||
{
|
||||
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)
|
||||
{
|
||||
OHCISysBusState *s = SYSBUS_OHCI(dev);
|
||||
OHCIState *ohci = &s->ohci;
|
||||
|
||||
ohci_hard_reset(ohci);
|
||||
}
|
||||
|
||||
static const VMStateDescription vmstate_ohci_state_port = {
|
||||
.name = "ohci-core/port",
|
||||
.version_id = 1,
|
||||
|
@ -2054,36 +2029,3 @@ const VMStateDescription vmstate_ohci_state = {
|
|||
NULL
|
||||
}
|
||||
};
|
||||
|
||||
static Property ohci_sysbus_properties[] = {
|
||||
DEFINE_PROP_STRING("masterbus", OHCISysBusState, masterbus),
|
||||
DEFINE_PROP_UINT32("num-ports", OHCISysBusState, num_ports, 3),
|
||||
DEFINE_PROP_UINT32("firstport", OHCISysBusState, firstport, 0),
|
||||
DEFINE_PROP_DMAADDR("dma-offset", OHCISysBusState, dma_offset, 0),
|
||||
DEFINE_PROP_END_OF_LIST(),
|
||||
};
|
||||
|
||||
static void ohci_sysbus_class_init(ObjectClass *klass, void *data)
|
||||
{
|
||||
DeviceClass *dc = DEVICE_CLASS(klass);
|
||||
|
||||
dc->realize = ohci_realize_pxa;
|
||||
set_bit(DEVICE_CATEGORY_USB, dc->categories);
|
||||
dc->desc = "OHCI USB Controller";
|
||||
device_class_set_props(dc, ohci_sysbus_properties);
|
||||
dc->reset = usb_ohci_reset_sysbus;
|
||||
}
|
||||
|
||||
static const TypeInfo ohci_sysbus_info = {
|
||||
.name = TYPE_SYSBUS_OHCI,
|
||||
.parent = TYPE_SYS_BUS_DEVICE,
|
||||
.instance_size = sizeof(OHCISysBusState),
|
||||
.class_init = ohci_sysbus_class_init,
|
||||
};
|
||||
|
||||
static void ohci_register_types(void)
|
||||
{
|
||||
type_register_static(&ohci_sysbus_info);
|
||||
}
|
||||
|
||||
type_init(ohci_register_types)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue