[Intel-gfx] [PATCH] drm/i915: Clear the existing watermarks for g4x when modifying the cursor sr
Paulo Zanoni
przanoni at gmail.com
Tue Dec 4 20:48:53 CET 2012
Hi
2012/12/4 Chris Wilson <chris at chris-wilson.co.uk>:
> In a couple of places we attempt to adjust the existing watermark
> registers to update them for the new cursor watermarks. This goes
> horribly wrong as instead of clearing the cursor bits prior to or'ing in
> the new values, we clear the rest of the register with the result that
> the watermark registers contain bogus values.
>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=47034
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
Reviewed-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
Nice catch...
> ---
> drivers/gpu/drm/i915/intel_pm.c | 9 +++++----
> 1 file changed, 5 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/i915/intel_pm.c b/drivers/gpu/drm/i915/intel_pm.c
> index 20daf58..f6b4697 100644
> --- a/drivers/gpu/drm/i915/intel_pm.c
> +++ b/drivers/gpu/drm/i915/intel_pm.c
> @@ -1334,10 +1334,11 @@ static void valleyview_update_wm(struct drm_device *dev)
> (planeb_wm << DSPFW_PLANEB_SHIFT) |
> planea_wm);
> I915_WRITE(DSPFW2,
> - (I915_READ(DSPFW2) & DSPFW_CURSORA_MASK) |
> + (I915_READ(DSPFW2) & ~DSPFW_CURSORA_MASK) |
> (cursora_wm << DSPFW_CURSORA_SHIFT));
> I915_WRITE(DSPFW3,
> - (I915_READ(DSPFW3) | (cursor_sr << DSPFW_CURSOR_SR_SHIFT)));
> + (I915_READ(DSPFW3) & ~DSPFW_CURSOR_SR_MASK) |
> + (cursor_sr << DSPFW_CURSOR_SR_SHIFT));
> }
>
> static void g4x_update_wm(struct drm_device *dev)
> @@ -1383,11 +1384,11 @@ static void g4x_update_wm(struct drm_device *dev)
> (planeb_wm << DSPFW_PLANEB_SHIFT) |
> planea_wm);
> I915_WRITE(DSPFW2,
> - (I915_READ(DSPFW2) & DSPFW_CURSORA_MASK) |
> + (I915_READ(DSPFW2) & ~DSPFW_CURSORA_MASK) |
> (cursora_wm << DSPFW_CURSORA_SHIFT));
> /* HPLL off in SR has some issues on G4x... disable it */
> I915_WRITE(DSPFW3,
> - (I915_READ(DSPFW3) & ~DSPFW_HPLL_SR_EN) |
> + (I915_READ(DSPFW3) & ~(DSPFW_HPLL_SR_EN | DSPFW_CURSOR_SR_MASK)) |
> (cursor_sr << DSPFW_CURSOR_SR_SHIFT));
> }
>
> --
> 1.7.10.4
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
--
Paulo Zanoni
More information about the Intel-gfx
mailing list