[Intel-gfx] [PATCH 1/2] drm/i915/gen6+: Clear upper data byte during PCODE write

Ville Syrjälä ville.syrjala at linux.intel.com
Thu Nov 24 15:47:22 UTC 2016


On Thu, Nov 24, 2016 at 05:32:58PM +0200, Imre Deak wrote:
> The spec calls for the upper data byte to be cleared before most of the
> PCODE write commands, for others like IPS control it doesn't say
> anything about this byte. Let's clear it in case it's clobbered somehow,
> especially that there are places where we only do a PCODE write without
> a preceeding PCODE read.
> 
> Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> Signed-off-by: Imre Deak <imre.deak at intel.com>
> ---
>  drivers/gpu/drm/i915/intel_pm.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 29b6653..66c62f3 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -7838,6 +7838,7 @@ int sandybridge_pcode_write(struct drm_i915_private *dev_priv,
>  	}
>  
>  	I915_WRITE_FW(GEN6_PCODE_DATA, val);
> +	I915_WRITE_FW(GEN6_PCODE_DATA1, 0);
>  	I915_WRITE_FW(GEN6_PCODE_MAILBOX, GEN6_PCODE_READY | mbox);

Hmm. Somehow we missed it in dddab346d828 ("drm/i915: Clear PCODE_DATA1 on SNB+")
even though my ramblings (which were quoted in the commit msg) stated that we
should do it in both the read and write functions.

Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

>  
>  	if (intel_wait_for_register_fw(dev_priv,
> -- 
> 2.5.0

-- 
Ville Syrjälä
Intel OTC


More information about the Intel-gfx mailing list