Kernel/Graphics: Probe PCI graphics adapters on all architectures

This commit is contained in:
Sönke Holz 2024-02-04 15:29:05 +01:00 committed by Jelle Raaijmakers
parent e54e2a5a4f
commit ecf41e13ad
Notes: sideshowbarker 2024-07-18 00:34:07 +09:00

View file

@ -225,22 +225,22 @@ UNMAP_AFTER_INIT bool GraphicsManagement::initialize()
return true;
}
if (!PCI::Access::is_disabled()) {
MUST(PCI::enumerate([&](PCI::DeviceIdentifier const& device_identifier) {
// Note: Each graphics controller will try to set its native screen resolution
// upon creation. Later on, if we don't want to have framebuffer devices, a
// framebuffer console will take the control instead.
if (!is_vga_compatible_pci_device(device_identifier) && !is_display_controller_pci_device(device_identifier))
return;
if (auto result = determine_and_initialize_graphics_device(device_identifier); result.is_error())
dbgln("Failed to initialize device {}, due to {}", device_identifier.address(), result.error());
}));
} else {
#if ARCH(X86_64)
if (PCI::Access::is_disabled()) {
dmesgln("Graphics: Using an assumed-to-exist ISA VGA compatible generic adapter");
return true;
}
MUST(PCI::enumerate([&](PCI::DeviceIdentifier const& device_identifier) {
// Note: Each graphics controller will try to set its native screen resolution
// upon creation. Later on, if we don't want to have framebuffer devices, a
// framebuffer console will take the control instead.
if (!is_vga_compatible_pci_device(device_identifier) && !is_display_controller_pci_device(device_identifier))
return;
if (auto result = determine_and_initialize_graphics_device(device_identifier); result.is_error())
dbgln("Failed to initialize device {}, due to {}", device_identifier.address(), result.error());
}));
#endif
}
// Note: If we failed to find any graphics device to be used natively, but the
// bootloader prepared a framebuffer for us to use, then just create a DisplayConnector