qemu/hw
Peter Maydell 5db8993037 hw/ide/microdrive: Use device_cold_reset() for self-resets
Currently the microdrive code uses device_legacy_reset() to reset
itself, and has its reset method call reset on the IDE bus as the
last thing it does.  Switch to using device_cold_reset().

The only concrete microdrive device is the TYPE_DSCM1XXXX; it is not
command-line pluggable, so it is used only by the old pxa2xx Arm
boards 'akita', 'borzoi', 'spitz', 'terrier' and 'tosa'.

You might think that this would result in the IDE bus being
reset automatically, but it does not, because the IDEBus type
does not set the BusClass::reset method. Instead the controller
must explicitly call ide_bus_reset(). We therefore leave that
call in md_reset().

Note also that because the PCMCIA card device is a direct subclass of
TYPE_DEVICE and we don't model the PCMCIA controller-to-card
interface as a qbus, PCMCIA cards are not on any qbus and so they
don't get reset when the system is reset.  The reset only happens via
the dscm1xxxx_attach() and dscm1xxxx_detach() functions during
machine creation.

Because our aim here is merely to try to get rid of calls to the
device_legacy_reset() function, we leave these other dubious
reset-related issues alone.  (They all stem from this code being
absolutely ancient.)

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-id: 20221013174042.1602926-1-peter.maydell@linaro.org
2022-10-20 12:11:53 +01:00
..
9pfs 9p: add missing coroutine_fn annotations 2022-10-07 12:11:41 +02:00
acpi hw/acpi: Add ospm_status hook implementation for acpi-ged 2022-09-22 16:38:28 +01:00
adc hw/adc: Make adci[*] R/W in NPCM7XX ADC 2022-07-18 13:20:14 +01:00
alpha
arm hw/arm, loongarch: Move load_image_to_fw_cfg() to common location 2022-10-14 14:29:50 +10:00
audio hw/audio/cs4231a: Const'ify global tables 2022-06-11 11:44:50 +02:00
avr
block vhost-user-blk: dynamically resize config space based on features 2022-10-07 09:41:51 -04:00
char hw/char/pl011: fix baud rate calculation 2022-10-20 11:27:48 +01:00
core include/hw/core: Create struct CPUJumpCache 2022-10-04 12:13:12 -07:00
cpu
cris
cxl hw/cxl: Correctly handle variable sized mailbox input payloads. 2022-08-17 13:08:11 -04:00
display cirrus_vga: fix potential memory overflow 2022-10-12 11:00:55 +02:00
dma
gpio hw/gpio/meson: Introduce dedicated config switch for hw/gpio/mpc8xxx 2022-10-17 16:15:09 -03:00
hppa lasips2: remove legacy lasips2_initfn() function 2022-07-18 19:28:46 +01:00
hyperv
i2c hw/i2c/pmbus: Add idle state to return 0xff's 2022-07-14 16:24:38 +02:00
i386 hyperv: fix SynIC SINT assertion failure on guest reset 2022-10-18 13:58:04 +02:00
ide hw/ide/microdrive: Use device_cold_reset() for self-resets 2022-10-20 12:11:53 +01:00
input pckbd: remove legacy i8042_mm_init() function 2022-07-18 19:28:46 +01:00
intc hw/intc: Fix LoongArch ipi device emulation 2022-10-17 10:28:35 +08:00
ipack
ipmi ipmi:smbus: Add a check around a memcpy 2022-08-01 06:40:50 -05:00
isa hw/i386/xen/xen-hvm: Inline xen_piix_pci_write_config_client() and remove it 2022-06-29 00:24:59 +02:00
loongarch hw/arm, loongarch: Move load_image_to_fw_cfg() to common location 2022-10-14 14:29:50 +10:00
m68k m68k: align bootinfo strings and data to 4 bytes 2022-09-26 23:37:22 +02:00
mem mem/cxl-type3: Add sn option to provide serial number for PCI ecap 2022-10-09 16:38:45 -04:00
microblaze hw/microblaze: pass random seed to fdt 2022-09-21 19:59:56 +02:00
mips hw/mips/malta: turn off x86 specific features of PIIX4_PM 2022-08-08 23:23:11 +02:00
misc monitor: expose monitor_puts to rest of code 2022-10-06 11:53:40 +01:00
net virtio: introduce VirtIOConfigSizeParams & virtio_get_config_size 2022-10-07 09:41:51 -04:00
nios2 hw/nios2: set machine->fdt in nios2_load_dtb() 2022-10-17 16:15:10 -03:00
nubus
nvme hw/nvme: do not enable ioeventfd by default 2022-08-01 12:01:21 +02:00
nvram hw/arm, loongarch: Move load_image_to_fw_cfg() to common location 2022-10-14 14:29:50 +10:00
openrisc hw/openrisc: virt: pass random seed to fdt 2022-09-04 07:02:57 +01:00
pci trivial patches pull request 20220629 2022-06-30 04:49:40 +05:30
pci-bridge pci-bridge/cxl_downstream: Add a CXL switch downstream port 2022-06-16 12:54:57 -04:00
pci-host hw/pci-host: pnv_phb{3, 4}: Fix heap out-of-bound access failure 2022-09-20 12:31:53 -03:00
pcmcia
ppc hw/ppc: set machine->fdt in spapr machine 2022-10-17 16:15:10 -03:00
rdma
remote Use g_new() & friends where that makes obvious sense 2022-10-04 00:10:11 +02:00
riscv hw/riscv: set machine->fdt in spike_board_init() 2022-10-17 16:15:10 -03:00
rtc goldfish_rtc: Add big-endian property 2022-09-04 07:02:56 +01:00
rx hw/rx: pass random seed to fdt 2022-07-22 19:01:44 +02:00
s390x s390x/s390-virtio-ccw: add zpcii-disable machine property 2022-09-26 17:23:47 +02:00
scsi hw/scsi/vmw_pvscsi.c: Use device_cold_reset() to reset SCSI devices 2022-10-18 13:58:04 +02:00
sd block: Change blk_{pread,pwrite}() param order 2022-07-12 12:14:56 +02:00
sensor hw/sensor: Add Renesas ISL69259 device model 2022-07-14 16:24:38 +02:00
sh4
smbios hw/smbios: support for type 8 (port connector) 2022-10-09 16:38:45 -04:00
sparc
sparc64 hw: Reuse TYPE_I8042 define 2022-06-11 11:44:50 +02:00
ssi hw/ssi: ibex_spi: fixup/add rw1c functionality 2022-10-14 14:29:50 +10:00
timer hw/intc: Move mtimer/mtimecmp to aclint 2022-09-07 09:19:10 +02:00
tpm tpm_crb: Avoid backend startup just before shutdown under Xen 2022-09-09 17:55:59 -04:00
tricore
usb usb: make usbnet work with xhci. 2022-09-27 07:59:26 -04:00
vfio vfio/common: Fix vfio_iommu_type1_info use after free 2022-09-27 14:26:42 -06:00
virtio pci: cleanup virtio ids. 2022-10-13 13:55:53 -04:00
watchdog watchdog: remove -watchdog option 2022-09-29 11:40:28 +02:00
xen hw/xen: set pci Atomic Ops requests for passthrough device 2022-09-27 14:23:23 +01:00
xenpv
xtensa
Kconfig hw/loongarch: Add support loongson3 virt machine type. 2022-06-06 18:09:03 +00:00
meson.build hw/loongarch: Add support loongson3 virt machine type. 2022-06-06 18:09:03 +00:00