Skip to content

Commit

Permalink
[PATCH] I2C: Kill i2c_algorithm.id (6/7)
Browse files Browse the repository at this point in the history
In theory, there should be no more users of I2C_ALGO_* at this point.
However, it happens that several drivers were using I2C_ALGO_* for
adapter ids, so we need to correct these before we can get rid of all
the I2C_ALGO_* definitions.

Note that this also fixes a bug in media/video/tvaudio.c:

	/* don't attach on saa7146 based cards,
	   because dedicated drivers are used */
	if ((adap->id & I2C_ALGO_SAA7146))
		return 0;

This test was plain broken, as it would succeed for many more adapters
than just the saa7146: any those id would share at least one bit with
the saa7146 id. We are really lucky that the few other adapters we want
this driver to work with did not fulfill that condition.

Signed-off-by: Jean Delvare <khali@linux-fr.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Jean Delvare authored and Greg Kroah-Hartman committed Sep 5, 2005
1 parent c7a4653 commit 1684a98
Show file tree
Hide file tree
Showing 20 changed files with 21 additions and 27 deletions.
1 change: 0 additions & 1 deletion drivers/i2c/busses/i2c-keywest.c
Original file line number Diff line number Diff line change
Expand Up @@ -619,7 +619,6 @@ create_iface(struct device_node *np, struct device *dev)
sprintf(chan->adapter.name, "%s %d", np->parent->name, i);
chan->iface = iface;
chan->chan_no = i;
chan->adapter.id = I2C_ALGO_SMBUS;
chan->adapter.algo = &keywest_algorithm;
chan->adapter.algo_data = NULL;
chan->adapter.client_register = NULL;
Expand Down
2 changes: 1 addition & 1 deletion drivers/i2c/busses/scx200_acb.c
Original file line number Diff line number Diff line change
Expand Up @@ -454,7 +454,7 @@ static int __init scx200_acb_create(int base, int index)
i2c_set_adapdata(adapter, iface);
snprintf(adapter->name, I2C_NAME_SIZE, "SCx200 ACB%d", index);
adapter->owner = THIS_MODULE;
adapter->id = I2C_ALGO_SMBUS;
adapter->id = I2C_HW_SMBUS_SCX200;
adapter->algo = &scx200_acb_algorithm;
adapter->class = I2C_CLASS_HWMON;

Expand Down
2 changes: 1 addition & 1 deletion drivers/media/common/saa7146_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -410,7 +410,7 @@ int saa7146_i2c_adapter_prepare(struct saa7146_dev *dev, struct i2c_adapter *i2c
#endif
i2c_adapter->algo = &saa7146_algo;
i2c_adapter->algo_data = NULL;
i2c_adapter->id = I2C_ALGO_SAA7146;
i2c_adapter->id = I2C_HW_SAA7146;
i2c_adapter->timeout = SAA7146_I2C_TIMEOUT;
i2c_adapter->retries = SAA7146_I2C_RETRIES;
}
Expand Down
1 change: 0 additions & 1 deletion drivers/media/dvb/b2c2/flexcop-i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,6 @@ int flexcop_i2c_init(struct flexcop_device *fc)
fc->i2c_adap.class = I2C_CLASS_TV_DIGITAL;
fc->i2c_adap.algo = &flexcop_algo;
fc->i2c_adap.algo_data = NULL;
fc->i2c_adap.id = I2C_ALGO_BIT;

if ((ret = i2c_add_adapter(&fc->i2c_adap)) < 0)
return ret;
Expand Down
1 change: 0 additions & 1 deletion drivers/media/dvb/dvb-usb/dvb-usb-i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ int dvb_usb_i2c_init(struct dvb_usb_device *d)
#endif
d->i2c_adap.algo = d->props.i2c_algo;
d->i2c_adap.algo_data = NULL;
d->i2c_adap.id = I2C_ALGO_BIT;

i2c_set_adapdata(&d->i2c_adap, d);

Expand Down
1 change: 0 additions & 1 deletion drivers/media/dvb/pluto2/pluto2.c
Original file line number Diff line number Diff line change
Expand Up @@ -633,7 +633,6 @@ static int __devinit pluto2_probe(struct pci_dev *pdev,
i2c_set_adapdata(&pluto->i2c_adap, pluto);
strcpy(pluto->i2c_adap.name, DRIVER_NAME);
pluto->i2c_adap.owner = THIS_MODULE;
pluto->i2c_adap.id = I2C_ALGO_BIT;
pluto->i2c_adap.class = I2C_CLASS_TV_DIGITAL;
pluto->i2c_adap.dev.parent = &pdev->dev;
pluto->i2c_adap.algo_data = &pluto->i2c_bit;
Expand Down
1 change: 0 additions & 1 deletion drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c
Original file line number Diff line number Diff line change
Expand Up @@ -1523,7 +1523,6 @@ static int ttusb_probe(struct usb_interface *intf, const struct usb_device_id *i
#endif
ttusb->i2c_adap.algo = &ttusb_dec_algo;
ttusb->i2c_adap.algo_data = NULL;
ttusb->i2c_adap.id = I2C_ALGO_BIT;

result = i2c_add_adapter(&ttusb->i2c_adap);
if (result) {
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/ir-kbd-i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,7 @@ static int ir_probe(struct i2c_adapter *adap)
case I2C_HW_B_BT848:
probe = probe_bttv;
break;
case I2C_ALGO_SAA7134:
case I2C_HW_SAA7134:
probe = probe_saa7134;
break;
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/saa7134/saa7134-i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -381,7 +381,7 @@ static struct i2c_adapter saa7134_adap_template = {
.class = I2C_CLASS_TV_ANALOG,
#endif
I2C_DEVNAME("saa7134"),
.id = I2C_ALGO_SAA7134,
.id = I2C_HW_SAA7134,
.algo = &saa7134_algo,
.client_register = attach_inform,
};
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/tda9840.c
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ static int detect(struct i2c_adapter *adapter, int address, int kind)
static int attach(struct i2c_adapter *adapter)
{
/* let's see whether this is a know adapter we can attach to */
if (adapter->id != I2C_ALGO_SAA7146) {
if (adapter->id != I2C_HW_SAA7146) {
dprintk("refusing to probe on unknown adapter [name='%s',id=0x%x]\n", adapter->name, adapter->id);
return -ENODEV;
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/tda9887.c
Original file line number Diff line number Diff line change
Expand Up @@ -620,7 +620,7 @@ static int tda9887_probe(struct i2c_adapter *adap)
switch (adap->id) {
case I2C_HW_B_BT848:
case I2C_HW_B_RIVA:
case I2C_ALGO_SAA7134:
case I2C_HW_SAA7134:
return i2c_probe(adap, &addr_data, tda9887_attach);
break;
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/tea6415c.c
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ static int detect(struct i2c_adapter *adapter, int address, int kind)
static int attach(struct i2c_adapter *adapter)
{
/* let's see whether this is a know adapter we can attach to */
if (adapter->id != I2C_ALGO_SAA7146) {
if (adapter->id != I2C_HW_SAA7146) {
dprintk("refusing to probe on unknown adapter [name='%s',id=0x%x]\n", adapter->name, adapter->id);
return -ENODEV;
}
Expand Down
2 changes: 1 addition & 1 deletion drivers/media/video/tea6420.c
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ static int tea6420_detect(struct i2c_adapter *adapter, int address, int kind)
static int attach(struct i2c_adapter *adapter)
{
/* let's see whether this is a know adapter we can attach to */
if (adapter->id != I2C_ALGO_SAA7146) {
if (adapter->id != I2C_HW_SAA7146) {
dprintk("refusing to probe on unknown adapter [name='%s',id=0x%x]\n", adapter->name, adapter->id);
return -ENODEV;
}
Expand Down
4 changes: 2 additions & 2 deletions drivers/media/video/tvaudio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1548,7 +1548,7 @@ static int chip_probe(struct i2c_adapter *adap)
{
/* don't attach on saa7146 based cards,
because dedicated drivers are used */
if ((adap->id & I2C_ALGO_SAA7146))
if (adap->id == I2C_HW_SAA7146)
return 0;
#ifdef I2C_CLASS_TV_ANALOG
if (adap->class & I2C_CLASS_TV_ANALOG)
Expand All @@ -1557,7 +1557,7 @@ static int chip_probe(struct i2c_adapter *adap)
switch (adap->id) {
case I2C_HW_B_BT848:
case I2C_HW_B_RIVA:
case I2C_ALGO_SAA7134:
case I2C_HW_SAA7134:
return i2c_probe(adap, &addr_data, chip_attach);
}
#endif
Expand Down
2 changes: 1 addition & 1 deletion drivers/video/aty/radeon_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ static int radeon_setup_i2c_bus(struct radeon_i2c_chan *chan, const char *name)

strcpy(chan->adapter.name, name);
chan->adapter.owner = THIS_MODULE;
chan->adapter.id = I2C_ALGO_ATI;
chan->adapter.id = I2C_HW_B_RADEON;
chan->adapter.algo_data = &chan->algo;
chan->adapter.dev.parent = &chan->rinfo->pdev->dev;
chan->algo.setsda = radeon_gpio_setsda;
Expand Down
3 changes: 1 addition & 2 deletions drivers/video/nvidia/nv_i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -90,14 +90,13 @@ static int nvidia_gpio_getsda(void *data)
return val;
}

#define I2C_ALGO_NVIDIA 0x0e0000
static int nvidia_setup_i2c_bus(struct nvidia_i2c_chan *chan, const char *name)
{
int rc;

strcpy(chan->adapter.name, name);
chan->adapter.owner = THIS_MODULE;
chan->adapter.id = I2C_ALGO_NVIDIA;
chan->adapter.id = I2C_HW_B_NVIDIA;
chan->adapter.algo_data = &chan->algo;
chan->adapter.dev.parent = &chan->par->pci_dev->dev;
chan->algo.setsda = nvidia_gpio_setsda;
Expand Down
3 changes: 1 addition & 2 deletions drivers/video/riva/rivafb-i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -92,14 +92,13 @@ static int riva_gpio_getsda(void* data)
return val;
}

#define I2C_ALGO_RIVA 0x0e0000
static int riva_setup_i2c_bus(struct riva_i2c_chan *chan, const char *name)
{
int rc;

strcpy(chan->adapter.name, name);
chan->adapter.owner = THIS_MODULE;
chan->adapter.id = I2C_ALGO_RIVA;
chan->adapter.id = I2C_HW_B_RIVA;
chan->adapter.algo_data = &chan->algo;
chan->adapter.dev.parent = &chan->par->pdev->dev;
chan->algo.setsda = riva_gpio_setsda;
Expand Down
3 changes: 1 addition & 2 deletions drivers/video/savage/savagefb-i2c.c
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,6 @@ static int prosavage_gpio_getsda(void* data)
return (0 != (GET_CR_DATA(chan->ioaddr) & PROSAVAGE_I2C_SDA_IN));
}

#define I2C_ALGO_SAVAGE 0x0f0000
static int savage_setup_i2c_bus(struct savagefb_i2c_chan *chan,
const char *name)
{
Expand All @@ -147,7 +146,7 @@ static int savage_setup_i2c_bus(struct savagefb_i2c_chan *chan,
if (add_bus && chan->par) {
strcpy(chan->adapter.name, name);
chan->adapter.owner = THIS_MODULE;
chan->adapter.id = I2C_ALGO_SAVAGE;
chan->adapter.id = I2C_HW_B_SAVAGE;
chan->adapter.algo_data = &chan->algo;
chan->adapter.dev.parent = &chan->par->pcidev->dev;
chan->algo.udelay = 40;
Expand Down
7 changes: 7 additions & 0 deletions include/linux/i2c-id.h
Original file line number Diff line number Diff line change
Expand Up @@ -245,6 +245,9 @@
#define I2C_HW_B_ZR36067 0x010019 /* Zoran-36057/36067 based boards */
#define I2C_HW_B_PCILYNX 0x01001a /* TI PCILynx I2C adapter */
#define I2C_HW_B_CX2388x 0x01001b /* connexant 2388x based tv cards */
#define I2C_HW_B_NVIDIA 0x01001c /* nvidia framebuffer driver */
#define I2C_HW_B_SAVAGE 0x01001d /* savage framebuffer driver */
#define I2C_HW_B_RADEON 0x01001e /* radeon framebuffer driver */

/* --- PCF 8584 based algorithms */
#define I2C_HW_P_LP 0x020000 /* Parallel port interface */
Expand Down Expand Up @@ -317,4 +320,8 @@
/* --- Marvell mv64xxx i2c adapter */
#define I2C_HW_MV64XXX 0x190000

/* --- Miscellaneous adapters */
#define I2C_HW_SAA7146 0x060000 /* SAA7146 video decoder bus */
#define I2C_HW_SAA7134 0x090000 /* SAA7134 video decoder bus */

#endif /* LINUX_I2C_ID_H */
5 changes: 0 additions & 5 deletions include/media/id.h
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,3 @@
#ifndef I2C_DRIVERID_SAA6752HS
# define I2C_DRIVERID_SAA6752HS I2C_DRIVERID_EXP0+8
#endif

/* algorithms */
#ifndef I2C_ALGO_SAA7134
# define I2C_ALGO_SAA7134 0x090000
#endif

0 comments on commit 1684a98

Please sign in to comment.