[Intel-gfx] [PATCH] drm/i915: preserve pipe A quirk in i9xx_set_pipeconf
Chris Wilson
chris at chris-wilson.co.uk
Tue Sep 24 11:11:35 CEST 2013
On Tue, Sep 24, 2013 at 11:05:57AM +0200, Daniel Vetter wrote:
> On Mon, Sep 23, 2013 at 10:55:35AM +0100, Chris Wilson wrote:
> > On Mon, Sep 23, 2013 at 10:37:02AM +0200, Daniel Vetter wrote:
> > > On Mon, Sep 23, 2013 at 10:17 AM, Ville Syrjälä
> > > <ville.syrjala at linux.intel.com> wrote:
> > > > Hmm. Why not just this?
> > > >
> > > > pipeconf = 0;
> > > > if (pipe == PIPE_A && QUIRK)
> > > > pipeconf |= PIPECONF_ENABLE;
> > >
> > > After resume the bios might or might not have enabled pipe A already.
> > > We have a bit of magic to make sure that on resume we set up a decent
> > > mode for pipe A, but I fear if I just smash pipe A to always on we'd
> > > enable it in a bogus state and hang the hw. Hence the readback.
> >
> > Yet, the
> >
> > if (A)
> > pipeconf = READ() & MAGIC;
> > else
> > pipeconf = 0;
> > if (B)
> > pipeconf = READ() & MAGIC2;
>
> I don't see that 2nd READ() you're seeing ... Where is it?
Memory is failing, the pattern you propose is
if (A)
pipeconf = READ() & MAGIC;
else
pipeconf = 0;
if (B)
pipeconf |= DOUBLE_WIDE;
if (C)
pipeconf |= switch(bit);
if (D)
pipeconf |= ...
if (E)
pipeconf |= ...
if (F)
pipeconf |= ...
The smaller patch would lead to a more consistent style:
pipeconf = 0;
if (A)
pipeconf |= READ() & MAGIC;
if (B)
pipeconf |= DOUBLE_WIDE;
if (C)
pipeconf |= switch(bit);
...
--
Chris Wilson, Intel Open Source Technology Centre
More information about the Intel-gfx
mailing list