qemu/hw/pci-host
Peter Maydell 36cdc8b3b8 hw/intc/xics: Reset TYPE_ICS objects with device_cold_reset()
The realize method for the TYPE_ICS class uses qemu_register_reset()
to register a reset handler, as a workaround for the fact that
currently objects which directly inherit from TYPE_DEVICE don't get
automatically reset.  However, the reset function directly calls
ics_reset(), which is the function that implements the legacy reset
method.  This means that only the parent class's data gets reset, and
a subclass which also needs to handle reset, like TYPE_PHB3_MSI, has
to register its own reset function.

Make the TYPE_ICS reset function call device_cold_reset() instead:
this will handle reset for both the parent class and the subclass,
and will work whether the classes are using legacy reset or 3-phase
reset. This allows us to remove the reset function that the subclass
currently has to set up.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Tested-by: Daniel Henrique Barboza <danielhb413@gmail.com>
Reviewed-by: Cédric Le Goater <clg@kaod.org>
Reviewed-by: Greg Kurz <groug@kaod.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20221125115240.3005559-6-peter.maydell@linaro.org
2022-12-16 15:59:07 +00:00
..
bonito.c hw/pci-host/bonito: Allow PCI config accesses smaller than 32-bit 2021-07-02 17:34:55 +02:00
designware.c pci-host: designware: add pcie-msi read method 2021-02-08 15:15:32 +01:00
dino.c dino: move from hw/hppa to hw/pci-host 2022-05-08 18:52:36 +01:00
gpex-acpi.c hw/pci-host/gpex-acpi: Add support for dsdt construction for pxb-cxl 2022-05-13 07:57:26 -04:00
gpex.c hw/pci-host/gpex: Don't fault for unmapped parts of MMIO and PIO windows 2021-04-30 11:16:52 +01:00
grackle.c hw/ppc/mac.h: Rename to include/hw/nvram/mac_nvram.h 2022-10-31 18:48:23 +00:00
i440fx.c i386/pc: create pci-host qdev prior to pc_memory_init() 2022-07-26 10:40:58 -04:00
Kconfig dino: move from hw/hppa to hw/pci-host 2022-05-08 18:52:36 +01:00
meson.build ppc/pnv: add PnvPHB base/proxy device 2022-08-31 14:08:05 -03:00
mv643xx.h hw/pci-host: Add emulation of Marvell MV64361 PPC system controller 2021-05-04 11:41:25 +10:00
mv64361.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
pam.c
pnv_phb3_msi.c hw/intc/xics: Reset TYPE_ICS objects with device_cold_reset() 2022-12-16 15:59:07 +00:00
pnv_phb3_pbcq.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
pnv_phb3.c hw/pci-host: pnv_phb{3, 4}: Fix heap out-of-bound access failure 2022-09-20 12:31:53 -03:00
pnv_phb4_pec.c ppc/pnv: enable user created pnv-phb for powernv9 2022-08-31 14:08:06 -03:00
pnv_phb4.c hw/pci-host: pnv_phb{3, 4}: Fix heap out-of-bound access failure 2022-09-20 12:31:53 -03:00
pnv_phb.c pci: Convert child classes of TYPE_PCIE_ROOT_PORT to 3-phase reset 2022-12-16 15:59:07 +00:00
pnv_phb.h ppc/pnv: add pnv-phb-root-port device 2022-08-31 14:08:05 -03:00
ppce500.c Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
q35.c q35:Enable TSEG only when G_SMRAME and TSEG_EN both enabled 2022-06-15 11:11:37 +02:00
raven.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
remote.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
sabre.c Do not include exec/address-spaces.h if it's not really necessary 2021-05-02 17:24:51 +02:00
sh_pci.c hw/sh4: Coding style: White space fixes 2021-10-30 11:46:40 +02:00
trace-events dino: move from hw/hppa to hw/pci-host 2022-05-08 18:52:36 +01:00
trace.h
uninorth.c hw/ppc/mac.h: Rename to include/hw/nvram/mac_nvram.h 2022-10-31 18:48:23 +00:00
versatile.c pci: Rename pci_root_bus_new_inplace() to pci_root_bus_init() 2021-09-30 13:42:10 +01:00
xen_igd_pt.c
xilinx-pcie.c