diff options
Diffstat (limited to 'drivers/gpu/drm/i915/display/intel_dmc.c')
| -rw-r--r-- | drivers/gpu/drm/i915/display/intel_dmc.c | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/drivers/gpu/drm/i915/display/intel_dmc.c b/drivers/gpu/drm/i915/display/intel_dmc.c index 2dc9d632969d..a69b28d65a9b 100644 --- a/drivers/gpu/drm/i915/display/intel_dmc.c +++ b/drivers/gpu/drm/i915/display/intel_dmc.c @@ -45,8 +45,10 @@  #define GEN12_DMC_MAX_FW_SIZE		ICL_DMC_MAX_FW_SIZE -#define ADLP_DMC_PATH			DMC_PATH(adlp, 2, 12) -#define ADLP_DMC_VERSION_REQUIRED	DMC_VERSION(2, 12) +#define GEN13_DMC_MAX_FW_SIZE		0x20000 + +#define ADLP_DMC_PATH			DMC_PATH(adlp, 2, 14) +#define ADLP_DMC_VERSION_REQUIRED	DMC_VERSION(2, 14)  MODULE_FIRMWARE(ADLP_DMC_PATH);  #define ADLS_DMC_PATH			DMC_PATH(adls, 2, 01) @@ -596,7 +598,7 @@ static void parse_dmc_fw(struct drm_i915_private *dev_priv,  			continue;  		offset = readcount + dmc->dmc_info[id].dmc_offset * 4; -		if (fw->size - offset < 0) { +		if (offset > fw->size) {  			drm_err(&dev_priv->drm, "Reading beyond the fw_size\n");  			continue;  		} @@ -682,7 +684,7 @@ void intel_dmc_ucode_init(struct drm_i915_private *dev_priv)  	if (IS_ALDERLAKE_P(dev_priv)) {  		dmc->fw_path = ADLP_DMC_PATH;  		dmc->required_version = ADLP_DMC_VERSION_REQUIRED; -		dmc->max_fw_size = GEN12_DMC_MAX_FW_SIZE; +		dmc->max_fw_size = GEN13_DMC_MAX_FW_SIZE;  	} else if (IS_ALDERLAKE_S(dev_priv)) {  		dmc->fw_path = ADLS_DMC_PATH;  		dmc->required_version = ADLS_DMC_VERSION_REQUIRED; |