diff --git a/Kernel/Devices/Audio/Management.cpp b/Kernel/Devices/Audio/Management.cpp index 3628671176..e444d3351f 100644 --- a/Kernel/Devices/Audio/Management.cpp +++ b/Kernel/Devices/Audio/Management.cpp @@ -38,21 +38,23 @@ UNMAP_AFTER_INIT AudioManagement::AudioManagement() UNMAP_AFTER_INIT void AudioManagement::enumerate_hardware_controllers() { - PCI::enumerate([&](PCI::DeviceIdentifier const& device_identifier) { - // Note: Only consider PCI audio controllers - if (device_identifier.class_code().value() != to_underlying(PCI::ClassID::Multimedia) - || device_identifier.subclass_code().value() != to_underlying(PCI::Multimedia::SubclassID::AudioController)) - return; + if (!PCI::Access::is_disabled()) { + PCI::enumerate([&](PCI::DeviceIdentifier const& device_identifier) { + // Note: Only consider PCI audio controllers + if (device_identifier.class_code().value() != to_underlying(PCI::ClassID::Multimedia) + || device_identifier.subclass_code().value() != to_underlying(PCI::Multimedia::SubclassID::AudioController)) + return; - dbgln("AC97: found audio controller at {}", device_identifier.address()); - auto ac97_device = AC97::try_create(device_identifier); - if (ac97_device.is_error()) { - // FIXME: Propagate errors properly - dbgln("AudioManagement: failed to initialize AC97 device: {}", ac97_device.error()); - return; - } - m_controllers_list.append(ac97_device.release_value()); - }); + dbgln("AC97: found audio controller at {}", device_identifier.address()); + auto ac97_device = AC97::try_create(device_identifier); + if (ac97_device.is_error()) { + // FIXME: Propagate errors properly + dbgln("AudioManagement: failed to initialize AC97 device: {}", ac97_device.error()); + return; + } + m_controllers_list.append(ac97_device.release_value()); + }); + } } UNMAP_AFTER_INIT void AudioManagement::enumerate_hardware_audio_channels()