summaryrefslogtreecommitdiff
path: root/src/ivch
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2007-10-01 13:45:09 -0700
committerEric Anholt <eric@anholt.net>2007-10-01 13:48:48 -0700
commit29d3188ee9676f697f6fcb859c7f680f5df30318 (patch)
tree4108bc0a18bde800687492a0abef775c114263ec /src/ivch
parent6dd8228a386334d05836353672aae9f8c456e435 (diff)
downloadxf86-video-intel-frc-29d3188ee9676f697f6fcb859c7f680f5df30318.tar.gz
xf86-video-intel-frc-29d3188ee9676f697f6fcb859c7f680f5df30318.tar.bz2
Suppress I2C failure error messages during DVO device detection.
Otherwise, errors would be printed for every chip probed which wasn't present on the system.
Diffstat (limited to 'src/ivch')
-rw-r--r--src/ivch/ivch.c20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/ivch/ivch.c b/src/ivch/ivch.c
index bd11dd42..ac57ff3a 100644
--- a/src/ivch/ivch.c
+++ b/src/ivch/ivch.c
@@ -48,6 +48,7 @@ struct ivch_priv {
I2CDevRec d;
xf86OutputPtr output;
+ Bool quiet;
CARD16 width;
CARD16 height;
@@ -105,9 +106,11 @@ ivch_read(struct ivch_priv *priv, int addr, CARD16 *data)
return TRUE;
fail:
- xf86DrvMsg(priv->d.pI2CBus->scrnIndex, X_ERROR,
- "ivch: Unable to read register 0x%02x from %s:%02x.\n",
- addr, priv->d.pI2CBus->BusName, priv->d.SlaveAddr);
+ if (!priv->quiet) {
+ xf86DrvMsg(priv->d.pI2CBus->scrnIndex, X_ERROR,
+ "ivch: Unable to read register 0x%02x from %s:%02x.\n",
+ addr, priv->d.pI2CBus->BusName, priv->d.SlaveAddr);
+ }
b->I2CStop(&priv->d);
return FALSE;
@@ -140,9 +143,12 @@ ivch_write(struct ivch_priv *priv, int addr, CARD16 data)
fail:
b->I2CStop(&priv->d);
- xf86DrvMsg(priv->d.pI2CBus->scrnIndex, X_ERROR,
- "Unable to write register 0x%02x to %s:%d.\n",
- addr, priv->d.pI2CBus->BusName, priv->d.SlaveAddr);
+
+ if (!priv->quiet) {
+ xf86DrvMsg(priv->d.pI2CBus->scrnIndex, X_ERROR,
+ "Unable to write register 0x%02x to %s:%d.\n",
+ addr, priv->d.pI2CBus->BusName, priv->d.SlaveAddr);
+ }
return FALSE;
}
@@ -167,9 +173,11 @@ ivch_init(I2CBusPtr b, I2CSlaveAddr addr)
priv->d.AcknTimeout = b->AcknTimeout;
priv->d.ByteTimeout = b->ByteTimeout;
priv->d.DriverPrivate.ptr = priv;
+ priv->quiet = TRUE;
if (!ivch_read(priv, VR00, &temp))
goto out;
+ priv->quiet = FALSE;
/* Since the identification bits are probably zeroes, which doesn't seem
* very unique, check that the value in the base address field matches