diff options
Diffstat (limited to 'drivers/gpu/drm/i915')
-rw-r--r-- | drivers/gpu/drm/i915/intel_csr.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c index 53f8a8c6ffd8..0316715a6c9b 100644 --- a/drivers/gpu/drm/i915/intel_csr.c +++ b/drivers/gpu/drm/i915/intel_csr.c @@ -557,7 +557,7 @@ static u32 parse_csr_fw_css(struct intel_csr *csr, return sizeof(struct intel_css_header); } -static u32 *parse_csr_fw(struct drm_i915_private *dev_priv, +static void parse_csr_fw(struct drm_i915_private *dev_priv, const struct firmware *fw) { struct intel_css_header *css_header; @@ -569,13 +569,13 @@ static u32 *parse_csr_fw(struct drm_i915_private *dev_priv, u32 r; if (!fw) - return NULL; + return; /* Extract CSS Header information */ css_header = (struct intel_css_header *)fw->data; r = parse_csr_fw_css(csr, css_header, fw->size); if (!r) - return NULL; + return; readcount += r; @@ -583,17 +583,13 @@ static u32 *parse_csr_fw(struct drm_i915_private *dev_priv, package_header = (struct intel_package_header *)&fw->data[readcount]; r = parse_csr_fw_package(csr, package_header, si, fw->size - readcount); if (!r) - return NULL; + return; readcount += r; /* Extract dmc_header information */ dmc_header = (struct intel_dmc_header_base *)&fw->data[readcount]; - r = parse_csr_fw_dmc(csr, dmc_header, fw->size - readcount); - if (!r) - return NULL; - - return csr->dmc_payload; + parse_csr_fw_dmc(csr, dmc_header, fw->size - readcount); } static void intel_csr_runtime_pm_get(struct drm_i915_private *dev_priv) @@ -621,8 +617,7 @@ static void csr_load_work_fn(struct work_struct *work) csr = &dev_priv->csr; request_firmware(&fw, dev_priv->csr.fw_path, &dev_priv->drm.pdev->dev); - if (fw) - dev_priv->csr.dmc_payload = parse_csr_fw(dev_priv, fw); + parse_csr_fw(dev_priv, fw); if (dev_priv->csr.dmc_payload) { intel_csr_load_program(dev_priv); |