diff options
Diffstat (limited to 'drivers/gpu/drm/i915/intel_csr.c')
| -rw-r--r-- | drivers/gpu/drm/i915/intel_csr.c | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c index f9550ea46c26..cf9b600cca79 100644 --- a/drivers/gpu/drm/i915/intel_csr.c +++ b/drivers/gpu/drm/i915/intel_csr.c @@ -298,7 +298,10 @@ static uint32_t *parse_csr_fw(struct drm_i915_private *dev_priv,  	csr->version = css_header->version; -	if (IS_CANNONLAKE(dev_priv)) { +	if (csr->fw_path == i915_modparams.dmc_firmware_path) { +		/* Bypass version check for firmware override. */ +		required_version = csr->version; +	} else if (IS_CANNONLAKE(dev_priv)) {  		required_version = CNL_CSR_VERSION_REQUIRED;  	} else if (IS_GEMINILAKE(dev_priv)) {  		required_version = GLK_CSR_VERSION_REQUIRED; @@ -453,7 +456,9 @@ void intel_csr_ucode_init(struct drm_i915_private *dev_priv)  	if (!HAS_CSR(dev_priv))  		return; -	if (IS_CANNONLAKE(dev_priv)) +	if (i915_modparams.dmc_firmware_path) +		csr->fw_path = i915_modparams.dmc_firmware_path; +	else if (IS_CANNONLAKE(dev_priv))  		csr->fw_path = I915_CSR_CNL;  	else if (IS_GEMINILAKE(dev_priv))  		csr->fw_path = I915_CSR_GLK;  |