| From 8157c06d90041377493b7d8c9298fdaa05347039 Mon Sep 17 00:00:00 2001 |
| From: Paulo Zanoni <paulo.r.zanoni@intel.com> |
| Date: Fri, 31 May 2013 16:33:23 -0300 |
| Subject: drm/i915: add enable_ips module option |
| |
| IPS is still enabled by default. Feature requested by the power |
| management team. |
| |
| This should also help testing the feature on some early pre-production |
| hardware where there were relationship problems between IPS and PSR. |
| |
| v2: Rebase on top of the newest IPS implementation. |
| v3: Check i915_enable_ips at compute_config, not supports_ips, so the |
| kernel parameter will be ignored at haswell_get_pipe_config. |
| |
| Requested-by: Kristen Accardi <kristen.c.accardi@intel.com> |
| Signed-off-by: Paulo Zanoni <paulo.r.zanoni@intel.com> |
| Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com> |
| Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> |
| (cherry picked from commit 3c4ca58c12a3bf71433425df534dfbb85d8a5dc5) |
| Signed-off-by: Darren Hart <dvhart@linux.intel.com> |
| --- |
| drivers/gpu/drm/i915/i915_drv.c | 4 ++++ |
| drivers/gpu/drm/i915/i915_drv.h | 1 + |
| drivers/gpu/drm/i915/intel_display.c | 3 ++- |
| 3 files changed, 7 insertions(+), 1 deletion(-) |
| |
| diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c |
| index 9136fcdcd24a..4ae308e845d4 100644 |
| --- a/drivers/gpu/drm/i915/i915_drv.c |
| +++ b/drivers/gpu/drm/i915/i915_drv.c |
| @@ -128,6 +128,10 @@ 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)"); |
| |
| +int i915_enable_ips __read_mostly = 1; |
| +module_param_named(enable_ips, i915_enable_ips, int, 0600); |
| +MODULE_PARM_DESC(enable_ips, "Enable IPS (default: true)"); |
| + |
| 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 ae8b9668b8ff..4eed8559fa90 100644 |
| --- a/drivers/gpu/drm/i915/i915_drv.h |
| +++ b/drivers/gpu/drm/i915/i915_drv.h |
| @@ -1471,6 +1471,7 @@ 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_enable_ips __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_display.c b/drivers/gpu/drm/i915/intel_display.c |
| index 20fa85137060..b26c3a08d8e1 100644 |
| --- a/drivers/gpu/drm/i915/intel_display.c |
| +++ b/drivers/gpu/drm/i915/intel_display.c |
| @@ -4030,7 +4030,8 @@ retry: |
| static void hsw_compute_ips_config(struct intel_crtc *crtc, |
| struct intel_crtc_config *pipe_config) |
| { |
| - pipe_config->ips_enabled = hsw_crtc_supports_ips(crtc) && |
| + pipe_config->ips_enabled = i915_enable_ips && |
| + hsw_crtc_supports_ips(crtc) && |
| pipe_config->pipe_bpp == 24; |
| } |
| |
| -- |
| 1.8.5.rc3 |
| |