[Intel-gfx] [regression] drm/i915: cleanup per-pipe reg usage

Jesse Barnes jbarnes at virtuousgeek.org
Thu Feb 17 19:32:59 CET 2011


On Thu, 17 Feb 2011 08:26:20 +0100
Alexey Fisher <bug-track at fisher-privat.net> wrote:

> Am Mittwoch, den 16.02.2011, 10:57 -0800 schrieb Jesse Barnes:
> > On Sat, 12 Feb 2011 22:02:36 +0100
> > Alexey Fisher <bug-track at fisher-privat.net> wrote:
> > 
> > > In attachment are reg_dumps.
> > > 
> > > intel_1 - is gdm login screen, every thing is ok
> > > intel_2 - is after login, noise
> > > intel_3 - is after mouse pointer was placed to the upper left corner,
> > > image is ok again.
> > > 
> > > Am Samstag, den 12.02.2011, 18:09 +0000 schrieb Chris Wilson:
> > > > 
> > > > On Sat, 12 Feb 2011 15:16:16 +0100, Alexey Fisher
> > > > <bug-track at fisher-privat.net> wrote:
> > > > > Video is in attachment.
> > > > > 
> > > > > If mouse pointer is on the left top corner i get still image .. if
> > > > not -
> > > > > noise.
> > > > 
> > > > I think intel_reg_dumper before/after will be the best guide as to
> > > > where
> > > > the mistake crept in.
> > > > -Chris
> > 
> > Also, seeing the kernel messages from a clean boot after setting
> > drm.debug=4 would help; they'll tell us what FIFO watermarks we used
> > and might help me track down the flicker.
> 
> the bad files are from version 2.6.38-rc2-00090-g9db4a9c
> the good are 2.6.38-rc2-00079-g4a1dc3f

Hm watermarks actually look good, but the cursor b control reg is
different for some reason.

Oops, I see a problem.  Does this patch help?

Thanks,
-- 
Jesse Barnes, Intel Open Source Technology Center

diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_d
index 0dc5c6f..7bab2ef 100644
--- a/drivers/gpu/drm/i915/intel_display.c
+++ b/drivers/gpu/drm/i915/intel_display.c
@@ -5291,7 +5291,7 @@ static void i9xx_update_cursor(struct drm_crtc *crtc, u32 
        bool visible = base != 0;
 
        if (intel_crtc->cursor_visible != visible) {
-               uint32_t cntl = CURCNTR(pipe);
+               uint32_t cntl = I915_READ(CURCNTR(pipe));
                if (base) {
                        cntl &= ~(CURSOR_MODE | MCURSOR_PIPE_SELECT);
                        cntl |= CURSOR_MODE_64_ARGB_AX | MCURSOR_GAMMA_ENABLE;




More information about the Intel-gfx mailing list