diff --git a/src/libs/compat/freebsd_network/pci.cpp b/src/libs/compat/freebsd_network/pci.cpp index cbf2b721a5..8de6ce8eb9 100644 --- a/src/libs/compat/freebsd_network/pci.cpp +++ b/src/libs/compat/freebsd_network/pci.cpp @@ -156,6 +156,10 @@ pci_set_command_bit(device_t dev, uint16_t bit) int pci_enable_busmaster(device_t dev) { + // We do this a bit later than FreeBSD does. + if (pci_get_powerstate(dev) != PCI_POWERSTATE_D0) + pci_set_powerstate(dev, PCI_POWERSTATE_D0); + pci_set_command_bit(dev, PCI_command_master); return 0; }