From b96b2fb9bec6e83d7745e7ec5f4c061066f23b93 Mon Sep 17 00:00:00 2001 From: Liav A Date: Sat, 30 Apr 2022 15:54:23 +0300 Subject: [PATCH] Kernel/Graphics: Simplify the GenericGraphicsAdapter class The old methods are already can be considered deprecated, and now after we removed framebuffer devices entirely, we can safely remove these methods too, which simplfies the GenericGraphicsAdapter class a lot. --- Kernel/Graphics/Bochs/GraphicsAdapter.cpp | 7 ------- Kernel/Graphics/Bochs/GraphicsAdapter.h | 15 --------------- Kernel/Graphics/GenericGraphicsAdapter.h | 15 --------------- Kernel/Graphics/GraphicsManagement.cpp | 18 +----------------- Kernel/Graphics/Intel/NativeGraphicsAdapter.h | 15 ++------------- Kernel/Graphics/VGA/VGACompatibleAdapter.h | 11 ----------- Kernel/Graphics/VirtIOGPU/GraphicsAdapter.h | 11 ----------- 7 files changed, 3 insertions(+), 89 deletions(-) diff --git a/Kernel/Graphics/Bochs/GraphicsAdapter.cpp b/Kernel/Graphics/Bochs/GraphicsAdapter.cpp index 04627861da..ed64295587 100644 --- a/Kernel/Graphics/Bochs/GraphicsAdapter.cpp +++ b/Kernel/Graphics/Bochs/GraphicsAdapter.cpp @@ -71,11 +71,4 @@ bool BochsGraphicsAdapter::vga_compatible() const return m_is_vga_capable; } -ErrorOr BochsGraphicsAdapter::get_edid(size_t output_port_index) const -{ - if (output_port_index != 0) - return Error::from_errno(ENODEV); - return m_display_connector->get_edid(); -} - } diff --git a/Kernel/Graphics/Bochs/GraphicsAdapter.h b/Kernel/Graphics/Bochs/GraphicsAdapter.h index e6ea481cc5..1d39eb0fad 100644 --- a/Kernel/Graphics/Bochs/GraphicsAdapter.h +++ b/Kernel/Graphics/Bochs/GraphicsAdapter.h @@ -28,26 +28,11 @@ public: static NonnullRefPtr initialize(PCI::DeviceIdentifier const&); virtual ~BochsGraphicsAdapter() = default; - // FIXME: Remove all of these methods when we get rid of the FramebufferDevice class. - virtual bool framebuffer_devices_initialized() const override { return false; } - virtual bool modesetting_capable() const override { return true; } - virtual bool double_framebuffering_capable() const override { return true; } - virtual bool vga_compatible() const override; private: - ErrorOr get_edid(size_t output_port_index) const override; - ErrorOr initialize_adapter(PCI::DeviceIdentifier const&); - // ^GenericGraphicsAdapter - // FIXME: Remove all of these methods when we get rid of the FramebufferDevice class. - virtual bool try_to_set_resolution(size_t, size_t, size_t) override { VERIFY_NOT_REACHED(); } - virtual bool set_y_offset(size_t, size_t) override { VERIFY_NOT_REACHED(); } - virtual void initialize_framebuffer_devices() override { } - virtual void enable_consoles() override { } - virtual void disable_consoles() override { } - explicit BochsGraphicsAdapter(PCI::DeviceIdentifier const&); RefPtr m_display_connector; diff --git a/Kernel/Graphics/GenericGraphicsAdapter.h b/Kernel/Graphics/GenericGraphicsAdapter.h index 4109af8c0d..94610cad75 100644 --- a/Kernel/Graphics/GenericGraphicsAdapter.h +++ b/Kernel/Graphics/GenericGraphicsAdapter.h @@ -18,26 +18,11 @@ class GenericGraphicsAdapter , public Weakable { public: virtual ~GenericGraphicsAdapter() = default; - virtual void initialize_framebuffer_devices() = 0; - virtual void enable_consoles() = 0; - virtual void disable_consoles() = 0; - bool consoles_enabled() const { return m_consoles_enabled; } - virtual bool framebuffer_devices_initialized() const = 0; - - virtual bool modesetting_capable() const = 0; - virtual bool double_framebuffering_capable() const = 0; virtual bool vga_compatible() const = 0; - virtual ErrorOr get_edid(size_t output_port_index) const = 0; - - virtual bool try_to_set_resolution(size_t output_port_index, size_t width, size_t height) = 0; - virtual bool set_y_offset(size_t output_port_index, size_t y) = 0; - protected: GenericGraphicsAdapter() = default; - - bool m_consoles_enabled { false }; }; } diff --git a/Kernel/Graphics/GraphicsManagement.cpp b/Kernel/Graphics/GraphicsManagement.cpp index e74ea4a815..48a383fc21 100644 --- a/Kernel/Graphics/GraphicsManagement.cpp +++ b/Kernel/Graphics/GraphicsManagement.cpp @@ -85,22 +85,12 @@ void GraphicsManagement::set_vga_text_mode_cursor(size_t console_width, size_t x void GraphicsManagement::deactivate_graphical_mode() { - // FIXME: Remove this once we don't support Framebuffer devices anymore. - for (auto& graphics_device : m_graphics_devices) { - graphics_device.enable_consoles(); - } - for (auto& connector : m_display_connector_nodes) { connector.set_display_mode({}, DisplayConnector::DisplayMode::Console); } } void GraphicsManagement::activate_graphical_mode() { - // FIXME: Remove this once we don't support Framebuffer devices anymore. - for (auto& graphics_device : m_graphics_devices) { - graphics_device.disable_consoles(); - } - for (auto& connector : m_display_connector_nodes) { connector.set_display_mode({}, DisplayConnector::DisplayMode::Graphical); } @@ -134,7 +124,6 @@ UNMAP_AFTER_INIT bool GraphicsManagement::determine_and_initialize_isa_graphics_ dmesgln("Graphics: Using a ISA VGA compatible generic adapter"); auto adapter = ISAVGAAdapter::initialize(); m_graphics_devices.append(*adapter); - adapter->enable_consoles(); m_vga_adapter = adapter; return true; } @@ -142,11 +131,6 @@ UNMAP_AFTER_INIT bool GraphicsManagement::determine_and_initialize_isa_graphics_ UNMAP_AFTER_INIT bool GraphicsManagement::determine_and_initialize_graphics_device(PCI::DeviceIdentifier const& device_identifier) { VERIFY(is_vga_compatible_pci_device(device_identifier) || is_display_controller_pci_device(device_identifier)); - auto add_and_configure_adapter = [&](GenericGraphicsAdapter& graphics_device) { - m_graphics_devices.append(graphics_device); - graphics_device.enable_consoles(); - graphics_device.initialize_framebuffer_devices(); - }; RefPtr adapter; auto create_bootloader_framebuffer_device = [&]() { @@ -210,7 +194,7 @@ UNMAP_AFTER_INIT bool GraphicsManagement::determine_and_initialize_graphics_devi if (!adapter) return false; - add_and_configure_adapter(*adapter); + m_graphics_devices.append(*adapter); // Note: If IO space is enabled, this VGA adapter is operating in VGA mode. // Note: If no other VGA adapter is attached as m_vga_adapter, we should attach it then. diff --git a/Kernel/Graphics/Intel/NativeGraphicsAdapter.h b/Kernel/Graphics/Intel/NativeGraphicsAdapter.h index 34a2d91137..9f380340b5 100644 --- a/Kernel/Graphics/Intel/NativeGraphicsAdapter.h +++ b/Kernel/Graphics/Intel/NativeGraphicsAdapter.h @@ -24,24 +24,13 @@ public: virtual ~IntelNativeGraphicsAdapter() = default; + virtual bool vga_compatible() const override { return true; } + private: ErrorOr initialize_adapter(); explicit IntelNativeGraphicsAdapter(PCI::Address); - // ^GenericGraphicsAdapter - // FIXME: Remove all of these methods when we get rid of the FramebufferDevice class. - virtual bool framebuffer_devices_initialized() const override { return false; } - virtual bool modesetting_capable() const override { return true; } - virtual bool vga_compatible() const override { return true; } - virtual bool double_framebuffering_capable() const override { return true; } - virtual bool try_to_set_resolution(size_t, size_t, size_t) override { VERIFY_NOT_REACHED(); } - virtual bool set_y_offset(size_t, size_t) override { VERIFY_NOT_REACHED(); } - virtual void initialize_framebuffer_devices() override { } - virtual void enable_consoles() override { } - virtual void disable_consoles() override { } - virtual ErrorOr get_edid(size_t) const override { VERIFY_NOT_REACHED(); } - RefPtr m_display_connector; }; } diff --git a/Kernel/Graphics/VGA/VGACompatibleAdapter.h b/Kernel/Graphics/VGA/VGACompatibleAdapter.h index 1525729e36..ec90b50fad 100644 --- a/Kernel/Graphics/VGA/VGACompatibleAdapter.h +++ b/Kernel/Graphics/VGA/VGACompatibleAdapter.h @@ -24,17 +24,6 @@ protected: VGACompatibleAdapter() = default; - // ^GenericGraphicsAdapter - virtual bool modesetting_capable() const override { VERIFY_NOT_REACHED(); } - virtual bool double_framebuffering_capable() const override { VERIFY_NOT_REACHED(); } - virtual bool framebuffer_devices_initialized() const override { return false; } - virtual void initialize_framebuffer_devices() override { } - virtual void enable_consoles() override { } - virtual void disable_consoles() override { } - virtual bool try_to_set_resolution(size_t, size_t, size_t) override { VERIFY_NOT_REACHED(); } - virtual bool set_y_offset(size_t, size_t) override { VERIFY_NOT_REACHED(); } - ErrorOr get_edid(size_t) const override { return Error::from_errno(ENOTSUP); } - RefPtr m_generic_display_connector; }; } diff --git a/Kernel/Graphics/VirtIOGPU/GraphicsAdapter.h b/Kernel/Graphics/VirtIOGPU/GraphicsAdapter.h index b0e756f27c..2e90d84f63 100644 --- a/Kernel/Graphics/VirtIOGPU/GraphicsAdapter.h +++ b/Kernel/Graphics/VirtIOGPU/GraphicsAdapter.h @@ -59,17 +59,6 @@ private: VirtIOGraphicsAdapter(PCI::DeviceIdentifier const&, NonnullOwnPtr scratch_space_region); ErrorOr initialize_adapter(); - // ^GenericGraphicsAdapter - // FIXME: Remove all of these methods when we get rid of the FramebufferDevice class. - virtual ErrorOr get_edid(size_t) const override { VERIFY_NOT_REACHED(); } - virtual bool try_to_set_resolution(size_t, size_t, size_t) override { VERIFY_NOT_REACHED(); } - virtual bool set_y_offset(size_t, size_t) override { VERIFY_NOT_REACHED(); } - virtual void initialize_framebuffer_devices() override { } - virtual void enable_consoles() override { } - virtual void disable_consoles() override { } - virtual bool framebuffer_devices_initialized() const override { return false; } - virtual bool modesetting_capable() const override { return true; } - virtual bool double_framebuffering_capable() const override { return true; } virtual bool handle_device_config_change() override; virtual void handle_queue_update(u16 queue_index) override;