From 92305f9925844ad4aaa0b5045270345565eb6d50 Mon Sep 17 00:00:00 2001 From: Jeremy Soller <jeremy@system76.com> Date: Thu, 10 Feb 2022 20:27:58 -0700 Subject: [PATCH] Use EDID active protocol instead --- src/os/uefi/arch/x86_64/mod.rs | 6 +++--- src/os/uefi/display.rs | 17 +++++++++-------- 2 files changed, 12 insertions(+), 11 deletions(-) diff --git a/src/os/uefi/arch/x86_64/mod.rs b/src/os/uefi/arch/x86_64/mod.rs index 9a58025..1b3f69a 100644 --- a/src/os/uefi/arch/x86_64/mod.rs +++ b/src/os/uefi/arch/x86_64/mod.rs @@ -17,7 +17,7 @@ use crate::{ use super::super::{ disk::DiskEfi, - display::{EdidDiscovered, Output}, + display::{EdidActive, Output}, }; use self::memory_map::{MemoryMapIter, memory_map}; @@ -138,7 +138,7 @@ impl Os< fn name(&self) -> &str { "x86_64/UEFI" } - + fn alloc_zeroed_page_aligned(&self, size: usize) -> *mut u8 { assert!(size != 0); @@ -206,7 +206,7 @@ impl Os< fn best_resolution(&self) -> Option<(u32, u32)> { //TODO: get this per output - match EdidDiscovered::one() { + match EdidActive::one() { Ok(efi_edid) => { let edid = unsafe { slice::from_raw_parts(efi_edid.0.Edid, efi_edid.0.SizeOfEdid as usize) diff --git a/src/os/uefi/display.rs b/src/os/uefi/display.rs index c5e800e..23e31a8 100644 --- a/src/os/uefi/display.rs +++ b/src/os/uefi/display.rs @@ -14,24 +14,25 @@ impl Protocol<GraphicsOutput> for Output { } } -const EDID_DISCOVERED_PROTOCOL_GUID: Guid = Guid( - 0x1c0c34f6, 0xd380, 0x41fa, [0xa0, 0x49, 0x8a, 0xd0, 0x6c, 0x1a, 0x66, 0xaa] +const EDID_ACTIVE_PROTOCOL_GUID: Guid = Guid( + 0xbd8c1056, 0x9f36, 0x44ec, [0x92, 0xa8, 0xa6, 0x33, 0x7f, 0x81, 0x79, 0x86] ); +#[allow(non_snake_case)] #[repr(C)] -pub struct EdidDiscoveredProtocol { +pub struct EdidActiveProtocol { pub SizeOfEdid: u32, pub Edid: *const u8, } -pub struct EdidDiscovered(pub &'static mut EdidDiscoveredProtocol); +pub struct EdidActive(pub &'static mut EdidActiveProtocol); -impl Protocol<EdidDiscoveredProtocol> for EdidDiscovered { +impl Protocol<EdidActiveProtocol> for EdidActive { fn guid() -> Guid { - EDID_DISCOVERED_PROTOCOL_GUID + EDID_ACTIVE_PROTOCOL_GUID } - fn new(inner: &'static mut EdidDiscoveredProtocol) -> Self { - EdidDiscovered(inner) + fn new(inner: &'static mut EdidActiveProtocol) -> Self { + EdidActive(inner) } } -- GitLab