]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/i915/xe3lpd: Load DMC for Xe3_LPD version 30.02
authorDnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Thu, 16 Oct 2025 13:15:17 +0000 (18:45 +0530)
committerRodrigo Vivi <rodrigo.vivi@intel.com>
Mon, 17 Nov 2025 21:30:34 +0000 (16:30 -0500)
Load the DMC for Xe3_LPD version 30.02.

Fixes: 3c0f211bc8fc ("drm/xe: Add Wildcat Lake device IDs to PTL list")
Signed-off-by: Dnyaneshwar Bhadane <dnyaneshwar.bhadane@intel.com>
Reviewed-by: Gustavo Sousa <gustavo.sousa@intel.com>
Reviewed-by: Chaitanya Kumar Borah <chaitanya.kumar.borah@intel.com>
Link: https://lore.kernel.org/r/20251016131517.2032684-1-dnyaneshwar.bhadane@intel.com
Signed-off-by: Gustavo Sousa <gustavo.sousa@intel.com>
(cherry picked from commit a63db39a578b543f5e5719b9f14dd82d3b8648d1)
Signed-off-by: Rodrigo Vivi <rodrigo.vivi@intel.com>
[Rodrigo added the Fixes tag while cherry-picking to fixes]

drivers/gpu/drm/i915/display/intel_dmc.c

index 4a4cace1f879d15f1d370a873124a355d409b99b..e1455fd7277fdf9afbd18e154def20e135e5f56c 100644 (file)
@@ -127,6 +127,9 @@ static bool dmc_firmware_param_disabled(struct intel_display *display)
 #define DISPLAY_VER13_DMC_MAX_FW_SIZE  0x20000
 #define DISPLAY_VER12_DMC_MAX_FW_SIZE  ICL_DMC_MAX_FW_SIZE
 
+#define XE3LPD_3002_DMC_PATH           DMC_PATH(xe3lpd_3002)
+MODULE_FIRMWARE(XE3LPD_3002_DMC_PATH);
+
 #define XE3LPD_DMC_PATH                        DMC_PATH(xe3lpd)
 MODULE_FIRMWARE(XE3LPD_DMC_PATH);
 
@@ -183,9 +186,10 @@ static const char *dmc_firmware_default(struct intel_display *display, u32 *size
 {
        const char *fw_path = NULL;
        u32 max_fw_size = 0;
-
-       if (DISPLAY_VERx100(display) == 3002 ||
-           DISPLAY_VERx100(display) == 3000) {
+       if (DISPLAY_VERx100(display) == 3002) {
+               fw_path = XE3LPD_3002_DMC_PATH;
+               max_fw_size = XE2LPD_DMC_MAX_FW_SIZE;
+       } else if (DISPLAY_VERx100(display) == 3000) {
                fw_path = XE3LPD_DMC_PATH;
                max_fw_size = XE2LPD_DMC_MAX_FW_SIZE;
        } else if (DISPLAY_VERx100(display) == 2000) {