1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 19:38:12 +00:00

Kernel: Add ioctl to get the EDID from a framebuffer

This commit is contained in:
Tom 2021-12-31 22:02:55 -07:00 committed by Linus Groh
parent 8184870f93
commit 03c45b1865
20 changed files with 265 additions and 84 deletions

View file

@ -12,6 +12,7 @@
#include <Kernel/Graphics/FramebufferDevice.h>
#include <Kernel/Graphics/VGACompatibleAdapter.h>
#include <Kernel/PhysicalAddress.h>
#include <LibEDID/EDID.h>
namespace Kernel {
@ -113,6 +114,7 @@ private:
// ^GenericGraphicsAdapter
virtual void initialize_framebuffer_devices() override;
virtual ErrorOr<ByteBuffer> get_edid(size_t output_port_index) const override;
bool pipe_a_enabled() const;
bool pipe_b_enabled() const;
@ -162,7 +164,8 @@ private:
Spinlock m_modeset_lock;
mutable Spinlock m_registers_lock;
Graphics::VideoInfoBlock m_crt_edid;
EDID::Parser::RawBytes m_crt_edid_bytes {};
Optional<EDID::Parser> m_crt_edid;
const PhysicalAddress m_registers;
const PhysicalAddress m_framebuffer_addr;
OwnPtr<Memory::Region> m_registers_region;