[Openchrome-devel] xf86-video-openchrome: 4 commits - configure.ac src/via_analog.c src/via_display.c src/via_driver.c src/via_driver.h src/via_fp.c src/via_i2c.c src/via_tmds.c src/via_tv.c src/via_ums.c src/via_ums.h src/via_vt1632.c

Kevin Brace kevinbrace at kemper.freedesktop.org
Tue Jun 27 19:08:23 UTC 2017


 configure.ac      |    2 +-
 src/via_analog.c  |    5 +++--
 src/via_display.c |   11 ++++++-----
 src/via_driver.c  |    1 -
 src/via_driver.h  |   11 -----------
 src/via_fp.c      |    4 ++--
 src/via_i2c.c     |   25 +++++++++++++------------
 src/via_tmds.c    |   18 ++++++++++--------
 src/via_tv.c      |   20 ++++++++++----------
 src/via_ums.c     |   18 ++++++++++--------
 src/via_ums.h     |   11 ++++++++++-
 src/via_vt1632.c  |    9 +++++----
 12 files changed, 70 insertions(+), 65 deletions(-)

New commits:
commit 980c8be59591b6d10c96cf069922368cd063f590
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Tue Jun 27 14:06:55 2017 -0500

    Version bumped to 0.6.142
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/configure.ac b/configure.ac
index 28e1a07..b6d7c43 100644
--- a/configure.ac
+++ b/configure.ac
@@ -23,7 +23,7 @@
 # Initialize Autoconf
 AC_PREREQ(2.57)
 AC_INIT([xf86-video-openchrome],
-        [0.6.141],
+        [0.6.142],
         [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg&component=Driver/openchrome],
         [xf86-video-openchrome])
 
commit c04d0e54c18fced88f351b1abe60f74390e69fc9
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Tue Jun 27 13:47:36 2017 -0500

    Moved originalCR3B through originalCR3F into VIADisplayRec struct
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_display.c b/src/via_display.c
index 04ed559..29114b2 100644
--- a/src/via_display.c
+++ b/src/via_display.c
@@ -705,6 +705,7 @@ viaIGAInitCommon(ScrnInfoPtr pScrn)
 {
     vgaHWPtr hwp = VGAHWPTR(pScrn);
     VIAPtr pVia = VIAPTR(pScrn);
+    VIADisplayPtr pVIADisplay = pVia->pVIADisplay;
     CARD8 i;
 #ifdef HAVE_DEBUG
     CARD8 temp;
@@ -1038,11 +1039,11 @@ viaIGAInitCommon(ScrnInfoPtr pScrn)
     ViaCrtcMask(hwp, 0x36, 0x01, 0x01);
 
     /* 3X5.3B through 3X5.3F are scratch pad registers. */
-    ViaCrtcMask(hwp, 0x3B, pVia->originalCR3B, 0xFF);
-    ViaCrtcMask(hwp, 0x3C, pVia->originalCR3C, 0xFF);
-    ViaCrtcMask(hwp, 0x3D, pVia->originalCR3D, 0xFF);
-    ViaCrtcMask(hwp, 0x3E, pVia->originalCR3E, 0xFF);
-    ViaCrtcMask(hwp, 0x3F, pVia->originalCR3F, 0xFF);
+    ViaCrtcMask(hwp, 0x3B, pVIADisplay->originalCR3B, 0xFF);
+    ViaCrtcMask(hwp, 0x3C, pVIADisplay->originalCR3C, 0xFF);
+    ViaCrtcMask(hwp, 0x3D, pVIADisplay->originalCR3D, 0xFF);
+    ViaCrtcMask(hwp, 0x3E, pVIADisplay->originalCR3E, 0xFF);
+    ViaCrtcMask(hwp, 0x3F, pVIADisplay->originalCR3F, 0xFF);
 
     /* 3X5.47[5] - Peep at the PCI-bus
      *             0: Disable
diff --git a/src/via_driver.h b/src/via_driver.h
index 7f8e6c7..4ec363b 100644
--- a/src/via_driver.h
+++ b/src/via_driver.h
@@ -343,10 +343,6 @@ typedef struct _VIA {
 #endif /* HAVE_DEBUG */
 
     video_via_regs*     VideoRegs;
-
-    /* Shadow copy of CR3B through CR3F. */
-    CARD8       originalCR3B, originalCR3C, originalCR3D,
-                originalCR3E, originalCR3F;
 } VIARec, *VIAPtr;
 
 #define VIAPTR(p) ((VIAPtr)((p)->driverPrivate))
diff --git a/src/via_ums.c b/src/via_ums.c
index 985fe31..02b004b 100644
--- a/src/via_ums.c
+++ b/src/via_ums.c
@@ -1063,11 +1063,11 @@ umsCrtcInit(ScrnInfoPtr pScrn)
     xf86CrtcPtr iga1, iga2;
 
     /* 3X5.3B through 3X5.3F are scratch pad registers. */
-    pVia->originalCR3B = hwp->readCrtc(hwp, 0x3B);
-    pVia->originalCR3C = hwp->readCrtc(hwp, 0x3C);
-    pVia->originalCR3D = hwp->readCrtc(hwp, 0x3D);
-    pVia->originalCR3E = hwp->readCrtc(hwp, 0x3E);
-    pVia->originalCR3F = hwp->readCrtc(hwp, 0x3F);
+    pVIADisplay->originalCR3B = hwp->readCrtc(hwp, 0x3B);
+    pVIADisplay->originalCR3C = hwp->readCrtc(hwp, 0x3C);
+    pVIADisplay->originalCR3D = hwp->readCrtc(hwp, 0x3D);
+    pVIADisplay->originalCR3E = hwp->readCrtc(hwp, 0x3E);
+    pVIADisplay->originalCR3F = hwp->readCrtc(hwp, 0x3F);
 
     /* Read memory bandwidth from registers. */
     pVia->MemClk = hwp->readCrtc(hwp, 0x3D) >> 4;
diff --git a/src/via_ums.h b/src/via_ums.h
index 37da882..db19e27 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -196,6 +196,10 @@ typedef struct _VIADISPLAY {
     /* OLPC XO-1.5 */
     Bool                isOLPCXO15;
 
+    /* Shadow copy of CR3B through CR3F. */
+    CARD8       originalCR3B, originalCR3C, originalCR3D,
+                originalCR3E, originalCR3F;
+
     xf86OutputPtr tv;
 
     CARD32      Clock; /* register value for the dotclock */
commit ceee9f2143c8be31da72c500709dac50889f88ae
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Tue Jun 27 13:36:01 2017 -0500

    Moved pI2CBus1 through pI2CBus3 into VIADisplayRec struct
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_analog.c b/src/via_analog.c
index af94bba..0170fd2 100644
--- a/src/via_analog.c
+++ b/src/via_analog.c
@@ -352,6 +352,7 @@ via_analog_detect(xf86OutputPtr output)
     xf86OutputStatus status = XF86OutputStatusDisconnected;
     I2CBusPtr pI2CBus;
     VIAPtr pVia = VIAPTR(pScrn);
+    VIADisplayPtr pVIADisplay = pVia->pVIADisplay;
     VIAAnalogPtr pVIAAnalog = (VIAAnalogPtr) output->driver_private;
     Bool connectorDetected;
 
@@ -373,7 +374,7 @@ via_analog_detect(xf86OutputPtr output)
                 "VGA connector detected.\n");
 
     if (pVIAAnalog->analogI2CBus & VIA_I2C_BUS1) {
-        pI2CBus = pVia->pI2CBus1;
+        pI2CBus = pVIADisplay->pI2CBus1;
     } else {
         pI2CBus = NULL;
     }
@@ -389,7 +390,7 @@ via_analog_detect(xf86OutputPtr output)
     }
 
     if (pVIAAnalog->analogI2CBus & VIA_I2C_BUS2) {
-        pI2CBus = pVia->pI2CBus2;
+        pI2CBus = pVIADisplay->pI2CBus2;
     } else {
         pI2CBus = NULL;
     }
diff --git a/src/via_driver.h b/src/via_driver.h
index 213ba9d..7f8e6c7 100644
--- a/src/via_driver.h
+++ b/src/via_driver.h
@@ -284,11 +284,6 @@ typedef struct _VIA {
     /* Display Record Pointer */
     VIADisplayPtr      pVIADisplay;
 
-    /* I2C & DDC */
-    I2CBusPtr           pI2CBus1;
-    I2CBusPtr           pI2CBus2;
-    I2CBusPtr           pI2CBus3;
-
     /* MHS */
     Bool                IsSecondary;
     Bool                HasSecondary;
diff --git a/src/via_fp.c b/src/via_fp.c
index f7ce4f9..4daa6f7 100644
--- a/src/via_fp.c
+++ b/src/via_fp.c
@@ -941,9 +941,9 @@ via_fp_detect(xf86OutputPtr output)
     }
 
     if (pVIAFP->i2cBus & VIA_I2C_BUS2) {
-        pI2CBus = pVia->pI2CBus2;
+        pI2CBus = pVIADisplay->pI2CBus2;
     } else if (pVIAFP->i2cBus & VIA_I2C_BUS3) {
-        pI2CBus = pVia->pI2CBus3;
+        pI2CBus = pVIADisplay->pI2CBus3;
     } else {
         pI2CBus = NULL;
     }
diff --git a/src/via_i2c.c b/src/via_i2c.c
index 13579cb..d0710b2 100644
--- a/src/via_i2c.c
+++ b/src/via_i2c.c
@@ -480,19 +480,19 @@ ViaI2CInit(ScrnInfoPtr pScrn)
                         "Entered ViaI2CInit.\n"));
 
     if (pVIADisplay->I2CDevices & VIA_I2C_BUS1)
-        pVia->pI2CBus1 = ViaI2CBus1Init(pScrn);
+        pVIADisplay->pI2CBus1 = ViaI2CBus1Init(pScrn);
     if (pVIADisplay->I2CDevices & VIA_I2C_BUS2)
-        pVia->pI2CBus2 = ViaI2CBus2Init(pScrn);
+        pVIADisplay->pI2CBus2 = ViaI2CBus2Init(pScrn);
     if (pVIADisplay->I2CDevices & VIA_I2C_BUS3)
-        pVia->pI2CBus3 = ViaI2CBus3Init(pScrn);
+        pVIADisplay->pI2CBus3 = ViaI2CBus3Init(pScrn);
 
 #ifdef HAVE_DEBUG
-    if (pVia->pI2CBus1)
-        ViaI2CScan(pVia->pI2CBus1);
-    if (pVia->pI2CBus2)
-        ViaI2CScan(pVia->pI2CBus2);
-    if (pVia->pI2CBus3)
-        ViaI2CScan(pVia->pI2CBus3);
+    if (pVIADisplay->pI2CBus1)
+        ViaI2CScan(pVIADisplay->pI2CBus1);
+    if (pVIADisplay->pI2CBus2)
+        ViaI2CScan(pVIADisplay->pI2CBus2);
+    if (pVIADisplay->pI2CBus3)
+        ViaI2CScan(pVIADisplay->pI2CBus3);
 #endif
 
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
diff --git a/src/via_tmds.c b/src/via_tmds.c
index 94d449c..d7aacec 100644
--- a/src/via_tmds.c
+++ b/src/via_tmds.c
@@ -870,15 +870,16 @@ via_tmds_detect(xf86OutputPtr output)
     xf86OutputStatus status = XF86OutputStatusDisconnected;
     I2CBusPtr pI2CBus;
     VIAPtr pVia = VIAPTR(pScrn);
+    VIADisplayPtr pVIADisplay = pVia->pVIADisplay;
     VIATMDSPtr pVIATMDS = (VIATMDSPtr) output->driver_private;
 
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                         "Entered via_tmds_detect.\n"));
 
     if (pVIATMDS->i2cBus & VIA_I2C_BUS2) {
-        pI2CBus = pVia->pI2CBus2;
+        pI2CBus = pVIADisplay->pI2CBus2;
     } else if (pVIATMDS->i2cBus & VIA_I2C_BUS3) {
-        pI2CBus = pVia->pI2CBus3;
+        pI2CBus = pVIADisplay->pI2CBus3;
     } else {
         pI2CBus = NULL;
     }
@@ -1060,8 +1061,8 @@ viaExtTMDSProbe(ScrnInfoPtr pScrn)
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                         "Entered viaExtTMDSProbe.\n"));
 
-    if (pVia->pI2CBus2) {
-        if (viaVT1632Probe(pScrn, pVia->pI2CBus2)) {
+    if (pVIADisplay->pI2CBus2) {
+        if (viaVT1632Probe(pScrn, pVIADisplay->pI2CBus2)) {
             pVIADisplay->extTMDSPresence = TRUE;
             pVIADisplay->extTMDSI2CBus = VIA_I2C_BUS2;
             pVIADisplay->extTMDSTransmitter = VIA_TMDS_VT1632;
@@ -1071,8 +1072,8 @@ viaExtTMDSProbe(ScrnInfoPtr pScrn)
             pVIADisplay->extTMDSI2CBus = VIA_I2C_NONE;
             pVIADisplay->extTMDSTransmitter = VIA_TMDS_NONE;
         }
-    } else if (pVia->pI2CBus3) {
-        if (viaVT1632Probe(pScrn, pVia->pI2CBus3)) {
+    } else if (pVIADisplay->pI2CBus3) {
+        if (viaVT1632Probe(pScrn, pVIADisplay->pI2CBus3)) {
             pVIADisplay->extTMDSPresence = TRUE;
             pVIADisplay->extTMDSI2CBus = VIA_I2C_BUS3;
             pVIADisplay->extTMDSTransmitter = VIA_TMDS_VT1632;
@@ -1235,6 +1236,7 @@ void
 via_dvi_init(ScrnInfoPtr pScrn)
 {
     VIAPtr pVia = VIAPTR(pScrn);
+    VIADisplayPtr pVIADisplay = pVia->pVIADisplay;
 
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                         "Entered via_dvi_init.\n"));
@@ -1243,7 +1245,7 @@ via_dvi_init(ScrnInfoPtr pScrn)
 
     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                 "Probing I2C Bus 2 for SiI 164.\n");
-    if (!viaSiI164Init(pScrn, pVia->pI2CBus2)) {
+    if (!viaSiI164Init(pScrn, pVIADisplay->pI2CBus2)) {
         xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                     "I2C Bus 2 was not initialized for DVI use.\n");
     } else {
@@ -1254,7 +1256,7 @@ via_dvi_init(ScrnInfoPtr pScrn)
 
     xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                 "Probing I2C Bus 3 for SiI 164.\n");
-    if (!viaSiI164Init(pScrn, pVia->pI2CBus3)) {
+    if (!viaSiI164Init(pScrn, pVIADisplay->pI2CBus3)) {
         xf86DrvMsg(pScrn->scrnIndex, X_INFO,
                     "I2C Bus 3 was not initialized for DVI use.\n");
     } else {
diff --git a/src/via_tv.c b/src/via_tv.c
index 6d50751..a3fd91a 100644
--- a/src/via_tv.c
+++ b/src/via_tv.c
@@ -801,16 +801,16 @@ via_tv_init(ScrnInfoPtr pScrn)
      * On an SK43G (KM400/Ch7011), false positive detections at a VT162x
      * chip were observed, so try to detect the Ch7011 first.
      */
-    if (pVia->pI2CBus2 && xf86I2CProbeAddress(pVia->pI2CBus2, 0xEC))
-        pVIADisplay->TVI2CDev = ViaCH7xxxDetect(pScrn, pVia->pI2CBus2, 0xEC);
-    else if (pVia->pI2CBus2 && xf86I2CProbeAddress(pVia->pI2CBus2, 0x40))
-        pVIADisplay->TVI2CDev = ViaVT162xDetect(pScrn, pVia->pI2CBus2, 0x40);
-    else if (pVia->pI2CBus3 && xf86I2CProbeAddress(pVia->pI2CBus3, 0x40))
-        pVIADisplay->TVI2CDev = ViaVT162xDetect(pScrn, pVia->pI2CBus3, 0x40);
-    else if (pVia->pI2CBus2 && xf86I2CProbeAddress(pVia->pI2CBus2, 0xEA))
-        pVIADisplay->TVI2CDev = ViaCH7xxxDetect(pScrn, pVia->pI2CBus2, 0xEA);
-    else if (pVia->pI2CBus3 && xf86I2CProbeAddress(pVia->pI2CBus3, 0xEA))
-        pVIADisplay->TVI2CDev = ViaCH7xxxDetect(pScrn, pVia->pI2CBus3, 0xEA);
+    if (pVIADisplay->pI2CBus2 && xf86I2CProbeAddress(pVIADisplay->pI2CBus2, 0xEC))
+        pVIADisplay->TVI2CDev = ViaCH7xxxDetect(pScrn, pVIADisplay->pI2CBus2, 0xEC);
+    else if (pVIADisplay->pI2CBus2 && xf86I2CProbeAddress(pVIADisplay->pI2CBus2, 0x40))
+        pVIADisplay->TVI2CDev = ViaVT162xDetect(pScrn, pVIADisplay->pI2CBus2, 0x40);
+    else if (pVIADisplay->pI2CBus3 && xf86I2CProbeAddress(pVIADisplay->pI2CBus3, 0x40))
+        pVIADisplay->TVI2CDev = ViaVT162xDetect(pScrn, pVIADisplay->pI2CBus3, 0x40);
+    else if (pVIADisplay->pI2CBus2 && xf86I2CProbeAddress(pVIADisplay->pI2CBus2, 0xEA))
+        pVIADisplay->TVI2CDev = ViaCH7xxxDetect(pScrn, pVIADisplay->pI2CBus2, 0xEA);
+    else if (pVIADisplay->pI2CBus3 && xf86I2CProbeAddress(pVIADisplay->pI2CBus3, 0xEA))
+        pVIADisplay->TVI2CDev = ViaCH7xxxDetect(pScrn, pVIADisplay->pI2CBus3, 0xEA);
 
     if (!pVIADisplay->TVI2CDev) {
         xf86DrvMsg(pScrn->scrnIndex, X_PROBED,
diff --git a/src/via_ums.h b/src/via_ums.h
index 304345a..37da882 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -183,6 +183,10 @@ typedef struct _VIADISPLAY {
     CARD8       I2CDevices;
     CARD8       mappedI2CBus;
 
+    I2CBusPtr       pI2CBus1;
+    I2CBusPtr       pI2CBus2;
+    I2CBusPtr       pI2CBus3;
+
     /* VIA Technologies NanoBook reference design.
      * Examples include Everex CloudBook and Sylvania g netbook.
      * It is also called FIC CE260 and CE261 by its ODM (Original
diff --git a/src/via_vt1632.c b/src/via_vt1632.c
index 01a80ee..c5739d5 100644
--- a/src/via_vt1632.c
+++ b/src/via_vt1632.c
@@ -309,6 +309,7 @@ via_vt1632_detect(xf86OutputPtr output)
     xf86OutputStatus status = XF86OutputStatusDisconnected;
     I2CBusPtr pI2CBus;
     VIAPtr pVia = VIAPTR(pScrn);
+    VIADisplayPtr pVIADisplay = pVia->pVIADisplay;
     VIAVT1632Ptr pVIAVT1632 = (VIAVT1632Ptr) output->driver_private;
     Bool connectorDetected;
 
@@ -330,9 +331,9 @@ via_vt1632_detect(xf86OutputPtr output)
                 "DVI connector detected.\n");
 
     if (pVIAVT1632->i2cBus & VIA_I2C_BUS2) {
-        pI2CBus = pVia->pI2CBus2;
+        pI2CBus = pVIADisplay->pI2CBus2;
     } else if (pVIAVT1632->i2cBus & VIA_I2C_BUS3) {
-        pI2CBus = pVia->pI2CBus3;
+        pI2CBus = pVIADisplay->pI2CBus3;
     } else {
         pI2CBus = NULL;
     }
@@ -495,9 +496,9 @@ viaVT1632Init(ScrnInfoPtr pScrn)
     }
 
     if (pVIADisplay->extTMDSI2CBus & VIA_I2C_BUS2) {
-        pI2CBus = pVia->pI2CBus2;
+        pI2CBus = pVIADisplay->pI2CBus2;
     } else if (pVIADisplay->extTMDSI2CBus & VIA_I2C_BUS3) {
-        pI2CBus = pVia->pI2CBus3;
+        pI2CBus = pVIADisplay->pI2CBus3;
     } else {
         goto exit;
     }
commit 8b269af0ad7247084f8fd45b468e59510b124077
Author: Kevin Brace <kevinbrace at gmx.com>
Date:   Mon Jun 26 15:57:39 2017 -0500

    Moving I2CDevices to VIADisplayRec struct
    
    Signed-off-by: Kevin Brace <kevinbrace at gmx.com>

diff --git a/src/via_driver.c b/src/via_driver.c
index 54bb068..52e0cb1 100644
--- a/src/via_driver.c
+++ b/src/via_driver.c
@@ -643,7 +643,6 @@ VIASetupDefaultOptions(ScrnInfoPtr pScrn)
 #endif
     pVia->maxDriSize = 0;
     pVia->agpMem = AGP_SIZE / 1024;
-    pVia->I2CDevices = VIA_I2C_BUS1 | VIA_I2C_BUS2 | VIA_I2C_BUS3;
     pVia->VideoEngine = VIDEO_ENGINE_CLE;
 #ifdef HAVE_DEBUG
     pVia->PrintVGARegs = FALSE;
diff --git a/src/via_driver.h b/src/via_driver.h
index 48b3353..213ba9d 100644
--- a/src/via_driver.h
+++ b/src/via_driver.h
@@ -340,8 +340,6 @@ typedef struct _VIA {
     void                *displayMap;
     CARD32              displayOffset;
 
-    CARD8               I2CDevices;	/* Option */
-
 #ifdef HAVE_DEBUG
     Bool                disableXvBWCheck;
     Bool                DumpVGAROM;
diff --git a/src/via_i2c.c b/src/via_i2c.c
index 6beae8e..13579cb 100644
--- a/src/via_i2c.c
+++ b/src/via_i2c.c
@@ -474,15 +474,16 @@ void
 ViaI2CInit(ScrnInfoPtr pScrn)
 {
     VIAPtr pVia = VIAPTR(pScrn);
+    VIADisplayPtr pVIADisplay = pVia->pVIADisplay;
 
     DEBUG(xf86DrvMsg(pScrn->scrnIndex, X_INFO, 
                         "Entered ViaI2CInit.\n"));
 
-    if (pVia->I2CDevices & VIA_I2C_BUS1)
+    if (pVIADisplay->I2CDevices & VIA_I2C_BUS1)
         pVia->pI2CBus1 = ViaI2CBus1Init(pScrn);
-    if (pVia->I2CDevices & VIA_I2C_BUS2)
+    if (pVIADisplay->I2CDevices & VIA_I2C_BUS2)
         pVia->pI2CBus2 = ViaI2CBus2Init(pScrn);
-    if (pVia->I2CDevices & VIA_I2C_BUS3)
+    if (pVIADisplay->I2CDevices & VIA_I2C_BUS3)
         pVia->pI2CBus3 = ViaI2CBus3Init(pScrn);
 
 #ifdef HAVE_DEBUG
diff --git a/src/via_ums.c b/src/via_ums.c
index ba56878..985fe31 100644
--- a/src/via_ums.c
+++ b/src/via_ums.c
@@ -1053,13 +1053,13 @@ umsCrtcInit(ScrnInfoPtr pScrn)
     drmmode_crtc_private_ptr iga1_rec = NULL, iga2_rec = NULL;
     vgaHWPtr hwp = VGAHWPTR(pScrn);
     VIAPtr pVia = VIAPTR(pScrn);
+    VIADisplayPtr pVIADisplay = pVia->pVIADisplay;
 #if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,8,0,0,0)
     ClockRangePtr clockRanges;
 #else
     ClockRangesPtr clockRanges;
 #endif
     int max_pitch, max_height;
-    VIADisplayPtr pVIADisplay;
     xf86CrtcPtr iga1, iga2;
 
     /* 3X5.3B through 3X5.3F are scratch pad registers. */
@@ -1078,7 +1078,7 @@ umsCrtcInit(ScrnInfoPtr pScrn)
                    "Unknown Memory clock: %d\n", pVia->MemClk);
         pVia->MemClk = VIA_MEM_END - 1;
     }
-    pVIADisplay = pVia->pVIADisplay;
+
     pVIADisplay->Bandwidth = ViaGetMemoryBandwidth(pScrn);
 
     if (pVIADisplay->TVType == TVTYPE_NONE) {
@@ -1094,8 +1094,10 @@ umsCrtcInit(ScrnInfoPtr pScrn)
         }
     }
 
+    pVIADisplay->I2CDevices = VIA_I2C_BUS1 | VIA_I2C_BUS2 | VIA_I2C_BUS3;
+
     if (pVIADisplay->isOLPCXO15) {
-        pVia->I2CDevices &= ~VIA_I2C_BUS2;
+        pVIADisplay->I2CDevices &= ~VIA_I2C_BUS2;
     }
 
     if (pVia->drmmode.hwcursor) {
diff --git a/src/via_ums.h b/src/via_ums.h
index bbf7a8f..304345a 100644
--- a/src/via_ums.h
+++ b/src/via_ums.h
@@ -180,7 +180,8 @@ typedef struct _VIADISPLAY {
     /* Keeping track of the number of FP (Flat Panel) connectors. */
     unsigned int        numberFP;
 
-   CARD8       mappedI2CBus;
+    CARD8       I2CDevices;
+    CARD8       mappedI2CBus;
 
     /* VIA Technologies NanoBook reference design.
      * Examples include Everex CloudBook and Sylvania g netbook.


More information about the Openchrome-devel mailing list