hw/pci: Rename has_power to enabled

The renamed state will not only represent powering state of PFs, but
also represent SR-IOV VF enablement in the future.

Signed-off-by: Akihiko Odaki <akihiko.odaki@daynix.com>
Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
Message-ID: <20250109-reuse-v19-1-f541e82ca5f7@daynix.com>
Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
This commit is contained in:
Akihiko Odaki 2025-01-09 15:29:46 +09:00 committed by Philippe Mathieu-Daudé
parent b7700c9fb1
commit c407eef162
4 changed files with 15 additions and 9 deletions

View file

@ -1598,7 +1598,7 @@ static void pci_update_mappings(PCIDevice *d)
continue; continue;
new_addr = pci_bar_address(d, i, r->type, r->size); new_addr = pci_bar_address(d, i, r->type, r->size);
if (!d->has_power) { if (!d->enabled) {
new_addr = PCI_BAR_UNMAPPED; new_addr = PCI_BAR_UNMAPPED;
} }
@ -1686,7 +1686,7 @@ void pci_default_write_config(PCIDevice *d, uint32_t addr, uint32_t val_in, int
pci_update_irq_disabled(d, was_irq_disabled); pci_update_irq_disabled(d, was_irq_disabled);
memory_region_set_enabled(&d->bus_master_enable_region, memory_region_set_enabled(&d->bus_master_enable_region,
(pci_get_word(d->config + PCI_COMMAND) (pci_get_word(d->config + PCI_COMMAND)
& PCI_COMMAND_MASTER) && d->has_power); & PCI_COMMAND_MASTER) && d->enabled);
} }
msi_write_config(d, addr, val_in, l); msi_write_config(d, addr, val_in, l);
@ -2963,16 +2963,21 @@ MSIMessage pci_get_msi_message(PCIDevice *dev, int vector)
void pci_set_power(PCIDevice *d, bool state) void pci_set_power(PCIDevice *d, bool state)
{ {
if (d->has_power == state) { pci_set_enabled(d, state);
}
void pci_set_enabled(PCIDevice *d, bool state)
{
if (d->enabled == state) {
return; return;
} }
d->has_power = state; d->enabled = state;
pci_update_mappings(d); pci_update_mappings(d);
memory_region_set_enabled(&d->bus_master_enable_region, memory_region_set_enabled(&d->bus_master_enable_region,
(pci_get_word(d->config + PCI_COMMAND) (pci_get_word(d->config + PCI_COMMAND)
& PCI_COMMAND_MASTER) && d->has_power); & PCI_COMMAND_MASTER) && d->enabled);
if (!d->has_power) { if (!d->enabled) {
pci_device_reset(d); pci_device_reset(d);
} }
} }

View file

@ -86,7 +86,7 @@ void pci_host_config_write_common(PCIDevice *pci_dev, uint32_t addr,
* allowing direct removal of unexposed functions. * allowing direct removal of unexposed functions.
*/ */
if ((pci_dev->qdev.hotplugged && !pci_get_function_0(pci_dev)) || if ((pci_dev->qdev.hotplugged && !pci_get_function_0(pci_dev)) ||
!pci_dev->has_power || is_pci_dev_ejected(pci_dev)) { !pci_dev->enabled || is_pci_dev_ejected(pci_dev)) {
return; return;
} }
@ -111,7 +111,7 @@ uint32_t pci_host_config_read_common(PCIDevice *pci_dev, uint32_t addr,
* allowing direct removal of unexposed functions. * allowing direct removal of unexposed functions.
*/ */
if ((pci_dev->qdev.hotplugged && !pci_get_function_0(pci_dev)) || if ((pci_dev->qdev.hotplugged && !pci_get_function_0(pci_dev)) ||
!pci_dev->has_power || is_pci_dev_ejected(pci_dev)) { !pci_dev->enabled || is_pci_dev_ejected(pci_dev)) {
return ~0x0; return ~0x0;
} }

View file

@ -674,6 +674,7 @@ static inline void pci_irq_deassert(PCIDevice *pci_dev)
} }
MSIMessage pci_get_msi_message(PCIDevice *dev, int vector); MSIMessage pci_get_msi_message(PCIDevice *dev, int vector);
void pci_set_enabled(PCIDevice *pci_dev, bool state);
void pci_set_power(PCIDevice *pci_dev, bool state); void pci_set_power(PCIDevice *pci_dev, bool state);
#endif #endif

View file

@ -57,7 +57,7 @@ typedef struct PCIReqIDCache PCIReqIDCache;
struct PCIDevice { struct PCIDevice {
DeviceState qdev; DeviceState qdev;
bool partially_hotplugged; bool partially_hotplugged;
bool has_power; bool enabled;
/* PCI config space */ /* PCI config space */
uint8_t *config; uint8_t *config;