0ccc233131
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.
22 lines
1.1 KiB
Diff
22 lines
1.1 KiB
Diff
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 => {
|