From 58b787e7a218c8ebe4fc79f22d86ebb41e5f45b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miodrag=20Milanovi=C4=87?= Date: Thu, 7 Jul 2022 12:16:09 +0200 Subject: Fix PCI device initialization (#10048) --- src/devices/machine/pci.cpp | 11 ++++++++++- src/devices/machine/pci.h | 2 ++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/devices/machine/pci.cpp b/src/devices/machine/pci.cpp index 993d45efed4..c0f2676ca56 100644 --- a/src/devices/machine/pci.cpp +++ b/src/devices/machine/pci.cpp @@ -544,6 +544,10 @@ void pci_bridge_device::device_reset() primary_bus = 0x00; secondary_bus = 0x00; subordinate_bus = 0x00; +} + +void pci_bridge_device::interface_post_reset() +{ regenerate_config_mapping(); } @@ -893,11 +897,16 @@ void pci_host_device::device_reset() { pci_bridge_device::device_reset(); reset_all_mappings(); - regenerate_mapping(); config_address = 0; } +void pci_host_device::interface_post_reset() +{ + pci_bridge_device::interface_post_reset(); + regenerate_mapping(); +} + void pci_host_device::regenerate_mapping() { logerror("Regenerating mapping\n"); diff --git a/src/devices/machine/pci.h b/src/devices/machine/pci.h index c8ed2e84c18..53e1a6be3d1 100644 --- a/src/devices/machine/pci.h +++ b/src/devices/machine/pci.h @@ -205,6 +205,7 @@ protected: virtual void device_start() override; virtual void device_reset() override; + virtual void interface_post_reset() override; virtual space_config_vector memory_space_config() const override; virtual device_t *bus_root(); @@ -251,6 +252,7 @@ protected: virtual void device_start() override; virtual void device_reset() override; + virtual void interface_post_reset() override; virtual device_t *bus_root() override; -- cgit v1.2.3