From 0ccc233131b3853641bff9434e9a9cfe277953fc Mon Sep 17 00:00:00 2001 From: Admin Pupkin Date: Fri, 29 May 2026 17:49:11 +0300 Subject: [PATCH] P10: fix Arrow Lake device IDs and DMC firmware mapping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The driver incorrectly labeled Lunar Lake IDs (0x6420/64A0/64B0) as Arrow Lake, and placed the real Arrow Lake IDs (0x7D41/7D51/etc.) in the Meteor Lake bucket. This meant: - Arrow Lake notebooks were misidentified as Meteor Lake - Lunar Lake was completely missing from the device tables - The 0xB640 ID (ARL-H) was also misfiled Fix: - Move real Arrow Lake IDs (0x7D41, 0x7D51, 0x7DD1, 0x7D67, 0xB640) to INTEL_GEN12_ARL_IDS - Move Lunar Lake IDs (0x6420, 0x64A0, 0x64B0) to INTEL_GEN12_LNL_IDS - Map Arrow Lake DMC firmware to INTEL_MTL_DMC_KEYS (mtl_dmc.bin), since Arrow Lake uses the same display IP 14.0 as Meteor Lake - Remove Arrow Lake IDs from the Meteor Lake bucket Per Linux 7.1 reference: Arrow Lake display engine is IP 14.0 (Xe_LPD+), same as Meteor Lake — NOT Xe2. The i915-style register programming is correct for Arrow Lake. --- .../redox-drm/P10-arrow-lake-device-ids.patch | 21 +++++++++++++++++++ local/recipes/gpu/redox-drm/recipe.toml | 2 +- 2 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 local/recipes/gpu/redox-drm/P10-arrow-lake-device-ids.patch diff --git a/local/recipes/gpu/redox-drm/P10-arrow-lake-device-ids.patch b/local/recipes/gpu/redox-drm/P10-arrow-lake-device-ids.patch new file mode 100644 index 0000000000..9d52cb467d --- /dev/null +++ b/local/recipes/gpu/redox-drm/P10-arrow-lake-device-ids.patch @@ -0,0 +1,21 @@ +diff --git a/src/drivers/mod.rs b/src/drivers/mod.rs +--- a/src/drivers/mod.rs ++++ b/src/drivers/mod.rs +@@ -27 +27 @@ const INTEL_GEN12_MTL_IDS: &[u16] = &[ +- 0x7D40, 0x7D41, 0x7D45, 0x7D51, 0x7D55, 0x7D60, 0x7D67, 0x7DD1, 0x7DD5, ++ 0x7D40, 0x7D45, 0x7D55, 0x7D60, 0x7DD5, +@@ -29,2 +29,2 @@ const INTEL_GEN12_MTL_IDS: &[u16] = &[ +-const INTEL_GEN12_ARL_IDS: &[u16] = &[0x6420, 0x64A0, 0x64B0]; +-const INTEL_GEN12_LNL_IDS: &[u16] = &[0xB640]; ++const INTEL_GEN12_ARL_IDS: &[u16] = &[0x7D41, 0x7D51, 0x7DD1, 0x7D67, 0xB640]; ++const INTEL_GEN12_LNL_IDS: &[u16] = &[0x6420, 0x64A0, 0x64B0]; +diff --git a/src/main.rs b/src/main.rs +--- a/src/main.rs ++++ b/src/main.rs +@@ -297 +297,5 @@ fn intel_display_firmware_keys(device_id: u16) -> Option<&'static [&'static str]> +- 0x7D40 | 0x7D41 | 0x7D45 | 0x7D51 | 0x7D55 | 0x7D60 | 0x7D67 | 0x7DD1 | 0x7DD5 => { ++ 0x7D40 | 0x7D45 | 0x7D55 | 0x7D60 | 0x7DD5 => { ++ Some(INTEL_MTL_DMC_KEYS) ++ } ++ // Arrow Lake (ARL) — display IP 14.0, same DMC as Meteor Lake ++ 0x7D41 | 0x7D51 | 0x7DD1 | 0x7D67 | 0xB640 => { diff --git a/local/recipes/gpu/redox-drm/recipe.toml b/local/recipes/gpu/redox-drm/recipe.toml index 724d659824..44ccdd6445 100644 --- a/local/recipes/gpu/redox-drm/recipe.toml +++ b/local/recipes/gpu/redox-drm/recipe.toml @@ -1,6 +1,6 @@ [source] path = "source" -patches = ["P1-intel-gen-gate.patch", "P2-intel-display-fixes.patch", "P3-intel-gen8-gen9-firmware.patch", "P4-virtio-gpu-driver.patch", "P5-virtio-auto-probe.patch", "P6-pcid-coordinate-handoff.patch", "P7-unreachable-pattern-cleanup.patch", "P8-terminal-scheme-ebadf.patch", "P9-virtio-handoff-mmio-map.patch"] +patches = ["P1-intel-gen-gate.patch", "P2-intel-display-fixes.patch", "P3-intel-gen8-gen9-firmware.patch", "P4-virtio-gpu-driver.patch", "P5-virtio-auto-probe.patch", "P6-pcid-coordinate-handoff.patch", "P7-unreachable-pattern-cleanup.patch", "P8-terminal-scheme-ebadf.patch", "P9-virtio-handoff-mmio-map.patch", "P10-arrow-lake-device-ids.patch"] [build] template = "cargo"