Message ID | 1363972043-2602-1-git-send-email-przanoni@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Fri, Mar 22, 2013 at 02:07:23PM -0300, Paulo Zanoni wrote: > From: Paulo Zanoni <paulo.r.zanoni@intel.com> > > We're still not 100% ready to disable the power well, so don't disable > it for now. When we disable it we break the audio driver (because some > of the audio registers are on the power well) and machines with eDP on > port D (because it doesn't use TRANSCODER_EDP). > > Also, instead of just reverting the code, add a Kernel option to let > us disable it if we want. This will allow us to keep developing and > testing the feature while it's not enabled. > > This fixes problems caused by the following commit: > commit d6dd9eb1d96d2b7345fe4664066c2b7ed86da898 > Author: Daniel Vetter <daniel.vetter@ffwll.ch> > Date: Tue Jan 29 16:35:20 2013 -0200 > drm/i915: dynamic Haswell display power well support > > References: http://www.mail-archive.com/intel-gfx@lists.freedesktop.org/msg18788.html > Cc: Takashi Iwai <tiwai@suse.de> > Cc: Mengdong Lin <mengdong.lin@intel.com> > Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> Picked up for -fixes, thanks for the patch. -Daniel
diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c index 6c4b13c..0614aff 100644 --- a/drivers/gpu/drm/i915/i915_drv.c +++ b/drivers/gpu/drm/i915/i915_drv.c @@ -123,6 +123,11 @@ module_param_named(preliminary_hw_support, i915_preliminary_hw_support, int, 060 MODULE_PARM_DESC(preliminary_hw_support, "Enable preliminary hardware support. (default: false)"); +int i915_disable_power_well __read_mostly = 0; +module_param_named(disable_power_well, i915_disable_power_well, int, 0600); +MODULE_PARM_DESC(disable_power_well, + "Disable the power well when possible (default: false)"); + static struct drm_driver driver; extern int intel_agp_enabled; diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h index 1657d873..625cccf 100644 --- a/drivers/gpu/drm/i915/i915_drv.h +++ b/drivers/gpu/drm/i915/i915_drv.h @@ -1398,6 +1398,7 @@ extern int i915_enable_fbc __read_mostly; extern bool i915_enable_hangcheck __read_mostly; extern int i915_enable_ppgtt __read_mostly; extern unsigned int i915_preliminary_hw_support __read_mostly; +extern int i915_disable_power_well __read_mostly; extern int i915_suspend(struct drm_device *dev, pm_message_t state); extern int i915_resume(struct drm_device *dev); diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c index ce3db2c..2de6da6 100644 --- a/drivers/gpu/drm/i915/intel_pm.c +++ b/drivers/gpu/drm/i915/intel_pm.c @@ -4095,6 +4095,9 @@ void intel_set_power_well(struct drm_device *dev, bool enable) if (!HAS_POWER_WELL(dev)) return; + if (!i915_disable_power_well && !enable) + return; + tmp = I915_READ(HSW_PWR_WELL_DRIVER); is_enabled = tmp & HSW_PWR_WELL_STATE; enable_requested = tmp & HSW_PWR_WELL_ENABLE;