aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHans de Goede <j.w.r.degoede@gmail.com>2017-11-14 08:55:17 -0500
committerJani Nikula <jani.nikula@intel.com>2017-11-21 04:39:31 -0500
commit294cf1af8cf2eb0d1eced377fdfb9a2d3f0e8b42 (patch)
tree6f44f2e3c9b5763d3e0ec4b7a51eff5c38d89632
parentf4359cedfb43b934f38c50d1604db21333abe57b (diff)
drm/i915: Re-register PMIC bus access notifier on runtime resume
intel_uncore_suspend() unregisters the uncore code's PMIC bus access notifier and gets called on both normal and runtime suspend. intel_uncore_resume_early() re-registers the notifier, but only on normal resume. Add a new intel_uncore_runtime_resume() function which only re-registers the notifier and call that on runtime resume. Cc: stable@vger.kernel.org Reported-by: Imre Deak <imre.deak@intel.com> Reviewed-by: Imre Deak <imre.deak@intel.com> Signed-off-by: Hans de Goede <hdegoede@redhat.com> Link: https://patchwork.freedesktop.org/patch/msgid/20171114135518.15981-2-hdegoede@redhat.com (cherry picked from commit bedf4d79c3654921839b62246b0965ddb308b201) Signed-off-by: Jani Nikula <jani.nikula@intel.com>
-rw-r--r--drivers/gpu/drm/i915/i915_drv.c2
-rw-r--r--drivers/gpu/drm/i915/intel_uncore.c6
-rw-r--r--drivers/gpu/drm/i915/intel_uncore.h1
3 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
index 3db5851756f0..34191028bbad 100644
--- a/drivers/gpu/drm/i915/i915_drv.c
+++ b/drivers/gpu/drm/i915/i915_drv.c
@@ -2618,6 +2618,8 @@ static int intel_runtime_resume(struct device *kdev)
2618 ret = vlv_resume_prepare(dev_priv, true); 2618 ret = vlv_resume_prepare(dev_priv, true);
2619 } 2619 }
2620 2620
2621 intel_uncore_runtime_resume(dev_priv);
2622
2621 /* 2623 /*
2622 * No point of rolling back things in case of an error, as the best 2624 * No point of rolling back things in case of an error, as the best
2623 * we can do is to hope that things will still work (and disable RPM). 2625 * we can do is to hope that things will still work (and disable RPM).
diff --git a/drivers/gpu/drm/i915/intel_uncore.c b/drivers/gpu/drm/i915/intel_uncore.c
index cb48c8b92aa3..8c2ce81f01c2 100644
--- a/drivers/gpu/drm/i915/intel_uncore.c
+++ b/drivers/gpu/drm/i915/intel_uncore.c
@@ -434,6 +434,12 @@ void intel_uncore_resume_early(struct drm_i915_private *dev_priv)
434 i915_check_and_clear_faults(dev_priv); 434 i915_check_and_clear_faults(dev_priv);
435} 435}
436 436
437void intel_uncore_runtime_resume(struct drm_i915_private *dev_priv)
438{
439 iosf_mbi_register_pmic_bus_access_notifier(
440 &dev_priv->uncore.pmic_bus_access_nb);
441}
442
437void intel_uncore_sanitize(struct drm_i915_private *dev_priv) 443void intel_uncore_sanitize(struct drm_i915_private *dev_priv)
438{ 444{
439 i915_modparams.enable_rc6 = 445 i915_modparams.enable_rc6 =
diff --git a/drivers/gpu/drm/i915/intel_uncore.h b/drivers/gpu/drm/i915/intel_uncore.h
index 582771251b57..9ce079b5dd0d 100644
--- a/drivers/gpu/drm/i915/intel_uncore.h
+++ b/drivers/gpu/drm/i915/intel_uncore.h
@@ -134,6 +134,7 @@ bool intel_uncore_arm_unclaimed_mmio_detection(struct drm_i915_private *dev_priv
134void intel_uncore_fini(struct drm_i915_private *dev_priv); 134void intel_uncore_fini(struct drm_i915_private *dev_priv);
135void intel_uncore_suspend(struct drm_i915_private *dev_priv); 135void intel_uncore_suspend(struct drm_i915_private *dev_priv);
136void intel_uncore_resume_early(struct drm_i915_private *dev_priv); 136void intel_uncore_resume_early(struct drm_i915_private *dev_priv);
137void intel_uncore_runtime_resume(struct drm_i915_private *dev_priv);
137 138
138u64 intel_uncore_edram_size(struct drm_i915_private *dev_priv); 139u64 intel_uncore_edram_size(struct drm_i915_private *dev_priv);
139void assert_forcewakes_inactive(struct drm_i915_private *dev_priv); 140void assert_forcewakes_inactive(struct drm_i915_private *dev_priv);