[Intel-gfx] [PATCH 2/2]IGD: workaround i2c bus issue in gfx driver side

Shaohua Li shaohua.li at intel.com
Mon Mar 16 08:23:26 CET 2009


On Mon, Mar 16, 2009 at 03:02:28PM +0800, Wang, Zhenyu Z wrote:
> On 2009.03.16 14:45:28 +0800, Shaohua Li wrote:
> > In IGD, DPCUNIT_CLOCK_GATE_DISABLE bit should be set, otherwise i2c
> > access will be wrong.
> > 
> > Signed-off-by: Shaohua Li <shaohua.li at intel.com>
> > ---
> >  src/i830_driver.c |    5 +++++
> >  1 file changed, 5 insertions(+)
> > 
> > Index: xf86_video_intel/src/i830_driver.c
> > ===================================================================
> > --- xf86_video_intel.orig/src/i830_driver.c
> > +++ xf86_video_intel/src/i830_driver.c
> > @@ -1057,6 +1057,11 @@ I830PreInitDDC(ScrnInfoPtr pScrn)
> >  	 pI830->ddc2 = FALSE;
> >        }
> >     }
> > +
> > +  if (IS_IGD(pI830)) {
> > +        /* Driver is using bit bashing for I2C, this bit should be set to 1 */
> > +        OUTREG(DSPCLK_GATE_D, INREG(DSPCLK_GATE_D) | DPCUNIT_CLOCK_GATE_DISABLE);
> > +    }
> >  }
> >  
> >  static void
> 
> Looks this should be in i830_init_clock_gating(), and KMS needs to be ported as well. 
i830_init_clock_gating() is called a little later. The bit must be set
before any I2C access.



More information about the Intel-gfx mailing list