diff mbox

[1/1] drm/i915: Drop RPM reference when CSR fails to load for BXT

Message ID 1444754985-15734-1-git-send-email-sagar.a.kamble@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

sagar.a.kamble@intel.com Oct. 13, 2015, 4:49 p.m. UTC
RPM reference taken before CSR load is not dropped if CSR fails to load.
As Display DC9 state that is entered on RPM suspend does not depend on CSR firmware,
RPM reference can be dropped for BXT.

Cc: Animesh Manna <animesh.manna@intel.com>
Cc: A.Sunil Kamath <sunil.kamath@intel.com>
Change-Id: Ib25d64239adb30188f2c2f1b5ddc6a50c1f0e280
Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>
---
 drivers/gpu/drm/i915/intel_csr.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

Comments

Daniel Vetter Oct. 14, 2015, 12:57 p.m. UTC | #1
On Tue, Oct 13, 2015 at 10:19:45PM +0530, Sagar Arun Kamble wrote:
> RPM reference taken before CSR load is not dropped if CSR fails to load.
> As Display DC9 state that is entered on RPM suspend does not depend on CSR firmware,
> RPM reference can be dropped for BXT.
> 
> Cc: Animesh Manna <animesh.manna@intel.com>
> Cc: A.Sunil Kamath <sunil.kamath@intel.com>
> Change-Id: Ib25d64239adb30188f2c2f1b5ddc6a50c1f0e280
> Signed-off-by: Sagar Arun Kamble <sagar.a.kamble@intel.com>

Can we perhaps fix the dmc loader sync stuff first? There's a big patch
series with patches from me and Animesh outstanding.
-Daniel

> ---
>  drivers/gpu/drm/i915/intel_csr.c | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
> index 9e530a7..48c8ad8 100644
> --- a/drivers/gpu/drm/i915/intel_csr.c
> +++ b/drivers/gpu/drm/i915/intel_csr.c
> @@ -406,8 +406,15 @@ static void finish_csr_load(const struct firmware *fw, void *context)
>  out:
>  	if (fw_loaded)
>  		intel_runtime_pm_put(dev_priv);
> -	else
> +	else {
> +		/*
> +		* For BXT, on runtime suspend, display goes to DC9 which does not
> +		* depend on CSR hence leave the RPM reference.
> +		*/
> +		if (IS_BROXTON(dev))
> +			intel_runtime_pm_put(dev_priv);
>  		intel_csr_load_status_set(dev_priv, FW_FAILED);
> +	}
>  
>  	release_firmware(fw);
>  }
> -- 
> 1.9.1
> 
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/drivers/gpu/drm/i915/intel_csr.c b/drivers/gpu/drm/i915/intel_csr.c
index 9e530a7..48c8ad8 100644
--- a/drivers/gpu/drm/i915/intel_csr.c
+++ b/drivers/gpu/drm/i915/intel_csr.c
@@ -406,8 +406,15 @@  static void finish_csr_load(const struct firmware *fw, void *context)
 out:
 	if (fw_loaded)
 		intel_runtime_pm_put(dev_priv);
-	else
+	else {
+		/*
+		* For BXT, on runtime suspend, display goes to DC9 which does not
+		* depend on CSR hence leave the RPM reference.
+		*/
+		if (IS_BROXTON(dev))
+			intel_runtime_pm_put(dev_priv);
 		intel_csr_load_status_set(dev_priv, FW_FAILED);
+	}
 
 	release_firmware(fw);
 }