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>
This commit is contained in:
parent
42db64efcd
commit
3c4ca58c12
|
@ -128,6 +128,10 @@ module_param_named(disable_power_well, i915_disable_power_well, int, 0600);
|
||||||
MODULE_PARM_DESC(disable_power_well,
|
MODULE_PARM_DESC(disable_power_well,
|
||||||
"Disable the power well when possible (default: false)");
|
"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;
|
static struct drm_driver driver;
|
||||||
extern int intel_agp_enabled;
|
extern int intel_agp_enabled;
|
||||||
|
|
||||||
|
|
|
@ -1470,6 +1470,7 @@ extern bool i915_enable_hangcheck __read_mostly;
|
||||||
extern int i915_enable_ppgtt __read_mostly;
|
extern int i915_enable_ppgtt __read_mostly;
|
||||||
extern unsigned int i915_preliminary_hw_support __read_mostly;
|
extern unsigned int i915_preliminary_hw_support __read_mostly;
|
||||||
extern int i915_disable_power_well __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_suspend(struct drm_device *dev, pm_message_t state);
|
||||||
extern int i915_resume(struct drm_device *dev);
|
extern int i915_resume(struct drm_device *dev);
|
||||||
|
|
|
@ -4034,7 +4034,8 @@ retry:
|
||||||
static void hsw_compute_ips_config(struct intel_crtc *crtc,
|
static void hsw_compute_ips_config(struct intel_crtc *crtc,
|
||||||
struct intel_crtc_config *pipe_config)
|
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;
|
pipe_config->pipe_bpp == 24;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue