On Mon, Nov 28, 2011 at 04:15:21PM -0200, Eugeni Dodonov wrote:
> This is based on original Keith Packard's patch for enabling rc6 by
> default, with the only change that we do only enable RC6 by default on IVB
> onwards.
> 
> Due to the random issues related to RC6 on SNB when VTd is enabled, we'll
> not enable them by default on this platform yet. It can always be enabled
> by the i915.i915_enable_rc6=1 kernel parameter though.
> 
> CC: Daniel Vetter <[email protected]>
> CC: Ben Widawsky <[email protected]>
> CC: Keith Packard <[email protected]>
> CC: Jesse Barnes <[email protected]>
> CC: Chris Wilson <[email protected]>
> Signed-off-by: Keith Packard <[email protected]>
> Signed-off-by: Eugeni Dodonov <[email protected]>
> ---
>  drivers/gpu/drm/i915/i915_drv.c      |    4 ++--
>  drivers/gpu/drm/i915/i915_drv.h      |    2 +-
>  drivers/gpu/drm/i915/intel_display.c |   13 +++++++++++--
>  3 files changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
> index a472851..9b16843 100644
> --- a/drivers/gpu/drm/i915/i915_drv.c
> +++ b/drivers/gpu/drm/i915/i915_drv.c
> @@ -63,10 +63,10 @@ module_param_named(semaphores, i915_semaphores, int, 
> 0600);
>  MODULE_PARM_DESC(semaphores,
>               "Use semaphores for inter-ring sync (default: -1 (use per-chip 
> defaults))");
>  
> -unsigned int i915_enable_rc6 __read_mostly = 0;
> +int i915_enable_rc6 __read_mostly = 0;

Looks like the -1 default value got lost ...

>  module_param_named(i915_enable_rc6, i915_enable_rc6, int, 0600);
>  MODULE_PARM_DESC(i915_enable_rc6,
> -             "Enable power-saving render C-state 6 (default: true)");
> +             "Enable power-saving render C-state 6 (default: -1 (use 
> per-chip defaults))");
>  
>  int i915_enable_fbc __read_mostly = -1;
>  module_param_named(i915_enable_fbc, i915_enable_fbc, int, 0600);
> diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
> index 14e8307..e283a1d 100644
> --- a/drivers/gpu/drm/i915/i915_drv.h
> +++ b/drivers/gpu/drm/i915/i915_drv.h
> @@ -1002,7 +1002,7 @@ extern int i915_semaphores __read_mostly;
>  extern unsigned int i915_lvds_downclock __read_mostly;
>  extern unsigned int i915_panel_use_ssc __read_mostly;
>  extern int i915_vbt_sdvo_panel_type __read_mostly;
> -extern unsigned int i915_enable_rc6 __read_mostly;
> +extern int i915_enable_rc6 __read_mostly;
>  extern int i915_enable_fbc __read_mostly;
>  extern bool i915_enable_hangcheck __read_mostly;
>  
> diff --git a/drivers/gpu/drm/i915/intel_display.c 
> b/drivers/gpu/drm/i915/intel_display.c
> index 981b1f1..8d392b7 100644
> --- a/drivers/gpu/drm/i915/intel_display.c
> +++ b/drivers/gpu/drm/i915/intel_display.c
> @@ -7886,6 +7886,15 @@ void intel_init_emon(struct drm_device *dev)
>       dev_priv->corr = (lcfuse & LCFUSE_HIV_MASK);
>  }
>  
> +static bool intel_enable_rc6(struct drm_device *dev)
> +{
> +     if (i915_enable_rc6 >= 0)
> +             return i915_enable_rc6;
> +     if (INTEL_INFO(dev)->gen >= 7)
> +             return 1;
> +     return 0;
> +}
> +
>  void gen6_enable_rps(struct drm_i915_private *dev_priv)
>  {
>       u32 rp_state_cap = I915_READ(GEN6_RP_STATE_CAP);
> @@ -7922,7 +7931,7 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
>       I915_WRITE(GEN6_RC6p_THRESHOLD, 100000);
>       I915_WRITE(GEN6_RC6pp_THRESHOLD, 64000); /* unused */
>  
> -     if (i915_enable_rc6)
> +     if (intel_enable_rc6(dev_priv->dev))
>               rc6_mask = GEN6_RC_CTL_RC6p_ENABLE |
>                       GEN6_RC_CTL_RC6_ENABLE;
>  
> @@ -8357,7 +8366,7 @@ void ironlake_enable_rc6(struct drm_device *dev)
>       /* rc6 disabled by default due to repeated reports of hanging during
>        * boot and resume.
>        */
> -     if (!i915_enable_rc6)
> +     if (!intel_enable_rc6(dev))
>               return;
>  
>       mutex_lock(&dev->struct_mutex);
> -- 
> 1.7.7.4
> 

-- 
Daniel Vetter
Mail: [email protected]
Mobile: +41 (0)79 365 57 48
_______________________________________________
Intel-gfx mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to