summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linux/drivers/media/common/saa7146_core.c3
-rw-r--r--linux/drivers/media/video/mxb.c2
-rw-r--r--linux/drivers/media/video/saa7111.c8
-rw-r--r--linux/drivers/media/video/tda9840.c6
-rw-r--r--linux/drivers/media/video/tea6415c.c6
-rw-r--r--linux/drivers/media/video/tea6420.c6
6 files changed, 31 insertions, 0 deletions
diff --git a/linux/drivers/media/common/saa7146_core.c b/linux/drivers/media/common/saa7146_core.c
index c01d5eed1..8142adb55 100644
--- a/linux/drivers/media/common/saa7146_core.c
+++ b/linux/drivers/media/common/saa7146_core.c
@@ -332,6 +332,9 @@ int saa7146_init_one(struct pci_dev *pci, const struct pci_device_id *ent)
list_add_tail(&dev->item,&saa7146_devices);
saa7146_num++;
+ /* set some default values */
+ saa7146_write(dev, BCS_CTRL, 0x80400040);
+
err = 0;
goto out;
attach_error:
diff --git a/linux/drivers/media/video/mxb.c b/linux/drivers/media/video/mxb.c
index ae3b5a7c3..c9fe808d2 100644
--- a/linux/drivers/media/video/mxb.c
+++ b/linux/drivers/media/video/mxb.c
@@ -1015,6 +1015,8 @@ struct pci_device_id pci_tbl[] = {
.subvendor = 0x0000,
.subdevice = 0x0000,
.driver_data = (unsigned long)&mxb,
+ }, {
+ .vendor = 0,
}
};
diff --git a/linux/drivers/media/video/saa7111.c b/linux/drivers/media/video/saa7111.c
index 7dc3bae14..456e2fdf1 100644
--- a/linux/drivers/media/video/saa7111.c
+++ b/linux/drivers/media/video/saa7111.c
@@ -150,6 +150,14 @@ static int saa7111_attach(struct i2c_adapter *adap, int addr, unsigned short fla
}
static int saa7111_probe(struct i2c_adapter *adap)
{
+ /* probing unknown devices on any Matrox i2c-bus takes ages due to the
+ slow bit banging algorithm used. because of the fact a saa7111(a)
+ is *never* present on a Matrox gfx card, we can skip such adapters
+ here */
+ if( 0 != (adap->id & I2C_HW_B_G400)) {
+ return -ENODEV;
+ }
+
printk("saa7111: probing %s i2c adapter [id=0x%x]\n",
adap->name,adap->id);
return i2c_probe(adap, &addr_data, saa7111_attach);
diff --git a/linux/drivers/media/video/tda9840.c b/linux/drivers/media/video/tda9840.c
index 6da68d762..85295ac2d 100644
--- a/linux/drivers/media/video/tda9840.c
+++ b/linux/drivers/media/video/tda9840.c
@@ -234,6 +234,12 @@ static int tda9840_detect(struct i2c_adapter *adapter, int address, unsigned sho
static int tda9840_attach(struct i2c_adapter *adapter)
{
+ /* let's see whether this is a know adapter we can attach to */
+ if( adapter->id != I2C_ALGO_SAA7146 ) {
+ dprintk("tda9840.o: refusing to probe on unknown adapter [name='%s',id=0x%x]\n",adapter->name,adapter->id);
+ return -ENODEV;
+ }
+
return i2c_probe(adapter,&addr_data,&tda9840_detect);
}
diff --git a/linux/drivers/media/video/tea6415c.c b/linux/drivers/media/video/tea6415c.c
index 7cbc580de..7215c58f8 100644
--- a/linux/drivers/media/video/tea6415c.c
+++ b/linux/drivers/media/video/tea6415c.c
@@ -92,6 +92,12 @@ static int tea6415c_detect(struct i2c_adapter *adapter, int address, unsigned sh
static int tea6415c_attach(struct i2c_adapter *adapter)
{
+ /* let's see whether this is a know adapter we can attach to */
+ if( adapter->id != I2C_ALGO_SAA7146 ) {
+ dprintk("tea6415c.o: refusing to probe on unknown adapter [name='%s',id=0x%x]\n",adapter->name,adapter->id);
+ return -ENODEV;
+ }
+
return i2c_probe(adapter,&addr_data,&tea6415c_detect);
}
diff --git a/linux/drivers/media/video/tea6420.c b/linux/drivers/media/video/tea6420.c
index 3d8bf1e18..63aa2caa9 100644
--- a/linux/drivers/media/video/tea6420.c
+++ b/linux/drivers/media/video/tea6420.c
@@ -142,6 +142,12 @@ static int tea6420_detect(struct i2c_adapter *adapter, int address, unsigned sho
static int tea6420_attach(struct i2c_adapter *adapter)
{
+ /* let's see whether this is a know adapter we can attach to */
+ if( adapter->id != I2C_ALGO_SAA7146 ) {
+ dprintk("tea6420.o: refusing to probe on unknown adapter [name='%s',id=0x%x]\n",adapter->name,adapter->id);
+ return -ENODEV;
+ }
+
return i2c_probe(adapter,&addr_data,&tea6420_detect);
}