Commit fa7b906e authored by Linus Torvalds's avatar Linus Torvalds

Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6

* 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6:
  i2c: Use snprintf to set adapter names
  Input: apanel - convert to new i2c binding
  i2c: Drop I2C_CLASS_CAM_DIGITAL
  i2c: Drop I2C_CLASS_CAM_ANALOG and I2C_CLASS_SOUND
  i2c: Drop I2C_CLASS_ALL
  i2c: Get rid of remaining bus_id access
  i2c: Replace bus_id with dev_name(), dev_set_name()
parents 08249903 66c7acf6
...@@ -399,8 +399,8 @@ static int __devinit ali1563_probe(struct pci_dev * dev, ...@@ -399,8 +399,8 @@ static int __devinit ali1563_probe(struct pci_dev * dev,
if ((error = ali1563_setup(dev))) if ((error = ali1563_setup(dev)))
goto exit; goto exit;
ali1563_adapter.dev.parent = &dev->dev; ali1563_adapter.dev.parent = &dev->dev;
sprintf(ali1563_adapter.name,"SMBus ALi 1563 Adapter @ %04x", snprintf(ali1563_adapter.name, sizeof(ali1563_adapter.name),
ali1563_smba); "SMBus ALi 1563 Adapter @ %04x", ali1563_smba);
if ((error = i2c_add_adapter(&ali1563_adapter))) if ((error = i2c_add_adapter(&ali1563_adapter)))
goto exit_shutdown; goto exit_shutdown;
return 0; return 0;
......
...@@ -197,8 +197,8 @@ static int __init amd756_s4882_init(void) ...@@ -197,8 +197,8 @@ static int __init amd756_s4882_init(void)
for (i = 1; i < 5; i++) { for (i = 1; i < 5; i++) {
s4882_algo[i] = *(amd756_smbus.algo); s4882_algo[i] = *(amd756_smbus.algo);
s4882_adapter[i] = amd756_smbus; s4882_adapter[i] = amd756_smbus;
sprintf(s4882_adapter[i].name, snprintf(s4882_adapter[i].name, sizeof(s4882_adapter[i].name),
"SMBus 8111 adapter (CPU%d)", i-1); "SMBus 8111 adapter (CPU%d)", i-1);
s4882_adapter[i].algo = s4882_algo+i; s4882_adapter[i].algo = s4882_algo+i;
s4882_adapter[i].dev.parent = amd756_smbus.dev.parent; s4882_adapter[i].dev.parent = amd756_smbus.dev.parent;
} }
......
...@@ -380,8 +380,9 @@ static int __devinit amd756_probe(struct pci_dev *pdev, ...@@ -380,8 +380,9 @@ static int __devinit amd756_probe(struct pci_dev *pdev,
/* set up the sysfs linkage to our parent device */ /* set up the sysfs linkage to our parent device */
amd756_smbus.dev.parent = &pdev->dev; amd756_smbus.dev.parent = &pdev->dev;
sprintf(amd756_smbus.name, "SMBus %s adapter at %04x", snprintf(amd756_smbus.name, sizeof(amd756_smbus.name),
chipname[id->driver_data], amd756_ioport); "SMBus %s adapter at %04x", chipname[id->driver_data],
amd756_ioport);
error = i2c_add_adapter(&amd756_smbus); error = i2c_add_adapter(&amd756_smbus);
if (error) { if (error) {
......
...@@ -222,7 +222,7 @@ static int __devinit at91_i2c_probe(struct platform_device *pdev) ...@@ -222,7 +222,7 @@ static int __devinit at91_i2c_probe(struct platform_device *pdev)
rc = -ENOMEM; rc = -ENOMEM;
goto fail2; goto fail2;
} }
sprintf(adapter->name, "AT91"); snprintf(adapter->name, sizeof(adapter->name), "AT91");
adapter->algo = &at91_algorithm; adapter->algo = &at91_algorithm;
adapter->class = I2C_CLASS_HWMON; adapter->class = I2C_CLASS_HWMON;
adapter->dev.parent = &pdev->dev; adapter->dev.parent = &pdev->dev;
......
...@@ -656,7 +656,7 @@ static int i2c_bfin_twi_probe(struct platform_device *pdev) ...@@ -656,7 +656,7 @@ static int i2c_bfin_twi_probe(struct platform_device *pdev)
strlcpy(p_adap->name, pdev->name, sizeof(p_adap->name)); strlcpy(p_adap->name, pdev->name, sizeof(p_adap->name));
p_adap->algo = &bfin_twi_algorithm; p_adap->algo = &bfin_twi_algorithm;
p_adap->algo_data = iface; p_adap->algo_data = iface;
p_adap->class = I2C_CLASS_ALL; p_adap->class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
p_adap->dev.parent = &pdev->dev; p_adap->dev.parent = &pdev->dev;
rc = peripheral_request_list(pin_req[pdev->id], "i2c-bfin-twi"); rc = peripheral_request_list(pin_req[pdev->id], "i2c-bfin-twi");
......
...@@ -64,7 +64,7 @@ ...@@ -64,7 +64,7 @@
#include <linux/init.h> #include <linux/init.h>
#include <linux/i2c.h> #include <linux/i2c.h>
#include <linux/acpi.h> #include <linux/acpi.h>
#include <asm/io.h> #include <linux/io.h>
/* I801 SMBus address offsets */ /* I801 SMBus address offsets */
#define SMBHSTSTS (0 + i801_smba) #define SMBHSTSTS (0 + i801_smba)
...@@ -583,6 +583,40 @@ static struct pci_device_id i801_ids[] = { ...@@ -583,6 +583,40 @@ static struct pci_device_id i801_ids[] = {
MODULE_DEVICE_TABLE (pci, i801_ids); MODULE_DEVICE_TABLE (pci, i801_ids);
#if defined CONFIG_INPUT_APANEL || defined CONFIG_INPUT_APANEL_MODULE
static unsigned char apanel_addr;
/* Scan the system ROM for the signature "FJKEYINF" */
static __init const void __iomem *bios_signature(const void __iomem *bios)
{
ssize_t offset;
const unsigned char signature[] = "FJKEYINF";
for (offset = 0; offset < 0x10000; offset += 0x10) {
if (check_signature(bios + offset, signature,
sizeof(signature)-1))
return bios + offset;
}
return NULL;
}
static void __init input_apanel_init(void)
{
void __iomem *bios;
const void __iomem *p;
bios = ioremap(0xF0000, 0x10000); /* Can't fail */
p = bios_signature(bios);
if (p) {
/* just use the first address */
apanel_addr = readb(p + 8 + 3) >> 1;
}
iounmap(bios);
}
#else
static void __init input_apanel_init(void) {}
#endif
static int __devinit i801_probe(struct pci_dev *dev, const struct pci_device_id *id) static int __devinit i801_probe(struct pci_dev *dev, const struct pci_device_id *id)
{ {
unsigned char temp; unsigned char temp;
...@@ -667,6 +701,19 @@ static int __devinit i801_probe(struct pci_dev *dev, const struct pci_device_id ...@@ -667,6 +701,19 @@ static int __devinit i801_probe(struct pci_dev *dev, const struct pci_device_id
dev_err(&dev->dev, "Failed to add SMBus adapter\n"); dev_err(&dev->dev, "Failed to add SMBus adapter\n");
goto exit_release; goto exit_release;
} }
/* Register optional slaves */
#if defined CONFIG_INPUT_APANEL || defined CONFIG_INPUT_APANEL_MODULE
if (apanel_addr) {
struct i2c_board_info info;
memset(&info, 0, sizeof(struct i2c_board_info));
info.addr = apanel_addr;
strlcpy(info.type, "fujitsu_apanel", I2C_NAME_SIZE);
i2c_new_device(&i801_adapter, &info);
}
#endif
return 0; return 0;
exit_release: exit_release:
...@@ -717,6 +764,7 @@ static struct pci_driver i801_driver = { ...@@ -717,6 +764,7 @@ static struct pci_driver i801_driver = {
static int __init i2c_i801_init(void) static int __init i2c_i801_init(void)
{ {
input_apanel_init();
return pci_register_driver(&i801_driver); return pci_register_driver(&i801_driver);
} }
......
...@@ -1076,10 +1076,10 @@ static int i2c_pxa_probe(struct platform_device *dev) ...@@ -1076,10 +1076,10 @@ static int i2c_pxa_probe(struct platform_device *dev)
#ifdef CONFIG_I2C_PXA_SLAVE #ifdef CONFIG_I2C_PXA_SLAVE
printk(KERN_INFO "I2C: %s: PXA I2C adapter, slave address %d\n", printk(KERN_INFO "I2C: %s: PXA I2C adapter, slave address %d\n",
i2c->adap.dev.bus_id, i2c->slave_addr); dev_name(&i2c->adap.dev), i2c->slave_addr);
#else #else
printk(KERN_INFO "I2C: %s: PXA I2C adapter\n", printk(KERN_INFO "I2C: %s: PXA I2C adapter\n",
i2c->adap.dev.bus_id); dev_name(&i2c->adap.dev));
#endif #endif
return 0; return 0;
......
...@@ -906,7 +906,7 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev) ...@@ -906,7 +906,7 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev)
platform_set_drvdata(pdev, i2c); platform_set_drvdata(pdev, i2c);
dev_info(&pdev->dev, "%s: S3C I2C adapter\n", i2c->adap.dev.bus_id); dev_info(&pdev->dev, "%s: S3C I2C adapter\n", dev_name(&i2c->adap.dev));
return 0; return 0;
err_cpufreq: err_cpufreq:
......
...@@ -475,7 +475,7 @@ static int __devinit sh7760_i2c_probe(struct platform_device *pdev) ...@@ -475,7 +475,7 @@ static int __devinit sh7760_i2c_probe(struct platform_device *pdev)
id->adap.nr = pdev->id; id->adap.nr = pdev->id;
id->adap.algo = &sh7760_i2c_algo; id->adap.algo = &sh7760_i2c_algo;
id->adap.class = I2C_CLASS_ALL; id->adap.class = I2C_CLASS_HWMON | I2C_CLASS_SPD;
id->adap.retries = 3; id->adap.retries = 3;
id->adap.algo_data = id; id->adap.algo_data = id;
id->adap.dev.parent = &pdev->dev; id->adap.dev.parent = &pdev->dev;
......
...@@ -500,7 +500,7 @@ static int sh_mobile_i2c_hook_irqs(struct platform_device *dev, int hook) ...@@ -500,7 +500,7 @@ static int sh_mobile_i2c_hook_irqs(struct platform_device *dev, int hook)
while ((res = platform_get_resource(dev, IORESOURCE_IRQ, k))) { while ((res = platform_get_resource(dev, IORESOURCE_IRQ, k))) {
for (n = res->start; hook && n <= res->end; n++) { for (n = res->start; hook && n <= res->end; n++) {
if (request_irq(n, sh_mobile_i2c_isr, IRQF_DISABLED, if (request_irq(n, sh_mobile_i2c_isr, IRQF_DISABLED,
dev->dev.bus_id, dev)) dev_name(&dev->dev), dev))
goto rollback; goto rollback;
} }
k++; k++;
......
...@@ -389,8 +389,8 @@ static int __devinit sis5595_probe(struct pci_dev *dev, const struct pci_device_ ...@@ -389,8 +389,8 @@ static int __devinit sis5595_probe(struct pci_dev *dev, const struct pci_device_
/* set up the sysfs linkage to our parent device */ /* set up the sysfs linkage to our parent device */
sis5595_adapter.dev.parent = &dev->dev; sis5595_adapter.dev.parent = &dev->dev;
sprintf(sis5595_adapter.name, "SMBus SIS5595 adapter at %04x", snprintf(sis5595_adapter.name, sizeof(sis5595_adapter.name),
sis5595_base + SMB_INDEX); "SMBus SIS5595 adapter at %04x", sis5595_base + SMB_INDEX);
err = i2c_add_adapter(&sis5595_adapter); err = i2c_add_adapter(&sis5595_adapter);
if (err) { if (err) {
release_region(sis5595_base + SMB_INDEX, 2); release_region(sis5595_base + SMB_INDEX, 2);
......
...@@ -487,8 +487,8 @@ static int __devinit sis630_probe(struct pci_dev *dev, const struct pci_device_i ...@@ -487,8 +487,8 @@ static int __devinit sis630_probe(struct pci_dev *dev, const struct pci_device_i
/* set up the sysfs linkage to our parent device */ /* set up the sysfs linkage to our parent device */
sis630_adapter.dev.parent = &dev->dev; sis630_adapter.dev.parent = &dev->dev;
sprintf(sis630_adapter.name, "SMBus SIS630 adapter at %04x", snprintf(sis630_adapter.name, sizeof(sis630_adapter.name),
acpi_base + SMB_STS); "SMBus SIS630 adapter at %04x", acpi_base + SMB_STS);
return i2c_add_adapter(&sis630_adapter); return i2c_add_adapter(&sis630_adapter);
} }
......
...@@ -459,7 +459,7 @@ static int i2c_register_adapter(struct i2c_adapter *adap) ...@@ -459,7 +459,7 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
pr_debug("I2C adapter driver [%s] forgot to specify " pr_debug("I2C adapter driver [%s] forgot to specify "
"physical device\n", adap->name); "physical device\n", adap->name);
} }
sprintf(adap->dev.bus_id, "i2c-%d", adap->nr); dev_set_name(&adap->dev, "i2c-%d", adap->nr);
adap->dev.release = &i2c_adapter_dev_release; adap->dev.release = &i2c_adapter_dev_release;
adap->dev.class = &i2c_adapter_class; adap->dev.class = &i2c_adapter_class;
res = device_register(&adap->dev); res = device_register(&adap->dev);
...@@ -845,8 +845,8 @@ int i2c_attach_client(struct i2c_client *client) ...@@ -845,8 +845,8 @@ int i2c_attach_client(struct i2c_client *client)
} else } else
client->dev.release = i2c_client_dev_release; client->dev.release = i2c_client_dev_release;
snprintf(&client->dev.bus_id[0], sizeof(client->dev.bus_id), dev_set_name(&client->dev, "%d-%04x", i2c_adapter_id(adapter),
"%d-%04x", i2c_adapter_id(adapter), client->addr); client->addr);
res = device_register(&client->dev); res = device_register(&client->dev);
if (res) if (res)
goto out_err; goto out_err;
...@@ -856,7 +856,7 @@ int i2c_attach_client(struct i2c_client *client) ...@@ -856,7 +856,7 @@ int i2c_attach_client(struct i2c_client *client)
mutex_unlock(&adapter->clist_lock); mutex_unlock(&adapter->clist_lock);
dev_dbg(&adapter->dev, "client [%s] registered with bus id %s\n", dev_dbg(&adapter->dev, "client [%s] registered with bus id %s\n",
client->name, client->dev.bus_id); client->name, dev_name(&client->dev));
if (adapter->client_register) { if (adapter->client_register) {
if (adapter->client_register(client)) { if (adapter->client_register(client)) {
......
...@@ -57,7 +57,7 @@ static enum apanel_chip device_chip[APANEL_DEV_MAX]; ...@@ -57,7 +57,7 @@ static enum apanel_chip device_chip[APANEL_DEV_MAX];
struct apanel { struct apanel {
struct input_polled_dev *ipdev; struct input_polled_dev *ipdev;
struct i2c_client client; struct i2c_client *client;
unsigned short keymap[MAX_PANEL_KEYS]; unsigned short keymap[MAX_PANEL_KEYS];
u16 nkeys; u16 nkeys;
u16 led_bits; u16 led_bits;
...@@ -66,16 +66,7 @@ struct apanel { ...@@ -66,16 +66,7 @@ struct apanel {
}; };
static int apanel_probe(struct i2c_adapter *, int, int); static int apanel_probe(struct i2c_client *, const struct i2c_device_id *);
/* for now, we only support one address */
static unsigned short normal_i2c[] = {0, I2C_CLIENT_END};
static unsigned short ignore = I2C_CLIENT_END;
static struct i2c_client_address_data addr_data = {
.normal_i2c = normal_i2c,
.probe = &ignore,
.ignore = &ignore,
};
static void report_key(struct input_dev *input, unsigned keycode) static void report_key(struct input_dev *input, unsigned keycode)
{ {
...@@ -103,12 +94,12 @@ static void apanel_poll(struct input_polled_dev *ipdev) ...@@ -103,12 +94,12 @@ static void apanel_poll(struct input_polled_dev *ipdev)
s32 data; s32 data;
int i; int i;
data = i2c_smbus_read_word_data(&ap->client, cmd); data = i2c_smbus_read_word_data(ap->client, cmd);
if (data < 0) if (data < 0)
return; /* ignore errors (due to ACPI??) */ return; /* ignore errors (due to ACPI??) */
/* write back to clear latch */ /* write back to clear latch */
i2c_smbus_write_word_data(&ap->client, cmd, 0); i2c_smbus_write_word_data(ap->client, cmd, 0);
if (!data) if (!data)
return; return;
...@@ -124,7 +115,7 @@ static void led_update(struct work_struct *work) ...@@ -124,7 +115,7 @@ static void led_update(struct work_struct *work)
{ {
struct apanel *ap = container_of(work, struct apanel, led_work); struct apanel *ap = container_of(work, struct apanel, led_work);
i2c_smbus_write_word_data(&ap->client, 0x10, ap->led_bits); i2c_smbus_write_word_data(ap->client, 0x10, ap->led_bits);
} }
static void mail_led_set(struct led_classdev *led, static void mail_led_set(struct led_classdev *led,
...@@ -140,7 +131,7 @@ static void mail_led_set(struct led_classdev *led, ...@@ -140,7 +131,7 @@ static void mail_led_set(struct led_classdev *led,
schedule_work(&ap->led_work); schedule_work(&ap->led_work);
} }
static int apanel_detach_client(struct i2c_client *client) static int apanel_remove(struct i2c_client *client)
{ {
struct apanel *ap = i2c_get_clientdata(client); struct apanel *ap = i2c_get_clientdata(client);
...@@ -148,43 +139,33 @@ static int apanel_detach_client(struct i2c_client *client) ...@@ -148,43 +139,33 @@ static int apanel_detach_client(struct i2c_client *client)
led_classdev_unregister(&ap->mail_led); led_classdev_unregister(&ap->mail_led);
input_unregister_polled_device(ap->ipdev); input_unregister_polled_device(ap->ipdev);
i2c_detach_client(&ap->client);
input_free_polled_device(ap->ipdev); input_free_polled_device(ap->ipdev);
return 0; return 0;
} }
/* Function is invoked for every i2c adapter. */
static int apanel_attach_adapter(struct i2c_adapter *adap)
{
dev_dbg(&adap->dev, APANEL ": attach adapter id=%d\n", adap->id);
/* Our device is connected only to i801 on laptop */
if (adap->id != I2C_HW_SMBUS_I801)
return -ENODEV;
return i2c_probe(adap, &addr_data, apanel_probe);
}
static void apanel_shutdown(struct i2c_client *client) static void apanel_shutdown(struct i2c_client *client)
{ {
apanel_detach_client(client); apanel_remove(client);
} }
static struct i2c_device_id apanel_id[] = {
{ "fujitsu_apanel", 0 },
{ }
};
MODULE_DEVICE_TABLE(i2c, apanel_id);
static struct i2c_driver apanel_driver = { static struct i2c_driver apanel_driver = {
.driver = { .driver = {
.name = APANEL, .name = APANEL,
}, },
.attach_adapter = &apanel_attach_adapter, .probe = &apanel_probe,
.detach_client = &apanel_detach_client, .remove = &apanel_remove,
.shutdown = &apanel_shutdown, .shutdown = &apanel_shutdown,
.id_table = apanel_id,
}; };
static struct apanel apanel = { static struct apanel apanel = {
.client = {
.driver = &apanel_driver,
.name = APANEL,
},
.keymap = { .keymap = {
[0] = KEY_MAIL, [0] = KEY_MAIL,
[1] = KEY_WWW, [1] = KEY_WWW,
...@@ -204,7 +185,8 @@ static struct apanel apanel = { ...@@ -204,7 +185,8 @@ static struct apanel apanel = {
}; };
/* NB: Only one panel on the i2c. */ /* NB: Only one panel on the i2c. */
static int apanel_probe(struct i2c_adapter *bus, int address, int kind) static int apanel_probe(struct i2c_client *client,
const struct i2c_device_id *id)
{ {
struct apanel *ap; struct apanel *ap;
struct input_polled_dev *ipdev; struct input_polled_dev *ipdev;
...@@ -212,9 +194,6 @@ static int apanel_probe(struct i2c_adapter *bus, int address, int kind) ...@@ -212,9 +194,6 @@ static int apanel_probe(struct i2c_adapter *bus, int address, int kind)
u8 cmd = device_chip[APANEL_DEV_APPBTN] == CHIP_OZ992C ? 0 : 8; u8 cmd = device_chip[APANEL_DEV_APPBTN] == CHIP_OZ992C ? 0 : 8;
int i, err = -ENOMEM; int i, err = -ENOMEM;
dev_dbg(&bus->dev, APANEL ": probe adapter %p addr %d kind %d\n",
bus, address, kind);
ap = &apanel; ap = &apanel;
ipdev = input_allocate_polled_device(); ipdev = input_allocate_polled_device();
...@@ -222,18 +201,13 @@ static int apanel_probe(struct i2c_adapter *bus, int address, int kind) ...@@ -222,18 +201,13 @@ static int apanel_probe(struct i2c_adapter *bus, int address, int kind)
goto out1; goto out1;
ap->ipdev = ipdev; ap->ipdev = ipdev;
ap->client.adapter = bus; ap->client = client;
ap->client.addr = address;
i2c_set_clientdata(&ap->client, ap);
err = i2c_attach_client(&ap->client); i2c_set_clientdata(client, ap);
if (err)
goto out2;
err = i2c_smbus_write_word_data(&ap->client, cmd, 0); err = i2c_smbus_write_word_data(client, cmd, 0);
if (err) { if (err) {
dev_warn(&ap->client.dev, APANEL ": smbus write error %d\n", dev_warn(&client->dev, APANEL ": smbus write error %d\n",
err); err);
goto out3; goto out3;
} }
...@@ -246,7 +220,7 @@ static int apanel_probe(struct i2c_adapter *bus, int address, int kind) ...@@ -246,7 +220,7 @@ static int apanel_probe(struct i2c_adapter *bus, int address, int kind)
idev->name = APANEL_NAME " buttons"; idev->name = APANEL_NAME " buttons";
idev->phys = "apanel/input0"; idev->phys = "apanel/input0";
idev->id.bustype = BUS_HOST; idev->id.bustype = BUS_HOST;
idev->dev.parent = &ap->client.dev; idev->dev.parent = &client->dev;
set_bit(EV_KEY, idev->evbit); set_bit(EV_KEY, idev->evbit);
...@@ -264,7 +238,7 @@ static int apanel_probe(struct i2c_adapter *bus, int address, int kind) ...@@ -264,7 +238,7 @@ static int apanel_probe(struct i2c_adapter *bus, int address, int kind)
INIT_WORK(&ap->led_work, led_update); INIT_WORK(&ap->led_work, led_update);
if (device_chip[APANEL_DEV_LED] != CHIP_NONE) { if (device_chip[APANEL_DEV_LED] != CHIP_NONE) {
err = led_classdev_register(&ap->client.dev, &ap->mail_led); err = led_classdev_register(&client->dev, &ap->mail_led);
if (err) if (err)
goto out4; goto out4;
} }
...@@ -273,8 +247,6 @@ static int apanel_probe(struct i2c_adapter *bus, int address, int kind) ...@@ -273,8 +247,6 @@ static int apanel_probe(struct i2c_adapter *bus, int address, int kind)
out4: out4:
input_unregister_polled_device(ipdev); input_unregister_polled_device(ipdev);
out3: out3:
i2c_detach_client(&ap->client);
out2:
input_free_polled_device(ipdev); input_free_polled_device(ipdev);
out1: out1:
return err; return err;
...@@ -301,6 +273,7 @@ static int __init apanel_init(void) ...@@ -301,6 +273,7 @@ static int __init apanel_init(void)
void __iomem *bios; void __iomem *bios;
const void __iomem *p; const void __iomem *p;
u8 devno; u8 devno;
unsigned char i2c_addr;
int found = 0; int found = 0;
bios = ioremap(0xF0000, 0x10000); /* Can't fail */ bios = ioremap(0xF0000, 0x10000); /* Can't fail */
...@@ -313,7 +286,7 @@ static int __init apanel_init(void) ...@@ -313,7 +286,7 @@ static int __init apanel_init(void)
/* just use the first address */ /* just use the first address */
p += 8; p += 8;
normal_i2c[0] = readb(p+3) >> 1; i2c_addr = readb(p + 3) >> 1;
for ( ; (devno = readb(p)) & 0x7f; p += 4) { for ( ; (devno = readb(p)) & 0x7f; p += 4) {
unsigned char method, slave, chip; unsigned char method, slave, chip;
...@@ -322,7 +295,7 @@ static int __init apanel_init(void) ...@@ -322,7 +295,7 @@ static int __init apanel_init(void)
chip = readb(p + 2); chip = readb(p + 2);
slave = readb(p + 3) >> 1; slave = readb(p + 3) >> 1;
if (slave != normal_i2c[0]) { if (slave != i2c_addr) {
pr_notice(APANEL ": only one SMBus slave " pr_notice(APANEL ": only one SMBus slave "
"address supported, skiping device...\n"); "address supported, skiping device...\n");
continue; continue;
......
...@@ -569,7 +569,6 @@ static int cafe_smbus_setup(struct cafe_camera *cam) ...@@ -569,7 +569,6 @@ static int cafe_smbus_setup(struct cafe_camera *cam)
cafe_smbus_enable_irq(cam); cafe_smbus_enable_irq(cam);
adap->id = I2C_HW_SMBUS_CAFE; adap->id = I2C_HW_SMBUS_CAFE;
adap->class = I2C_CLASS_CAM_DIGITAL;
adap->owner = THIS_MODULE; adap->owner = THIS_MODULE;
adap->client_register = cafe_smbus_attach; adap->client_register = cafe_smbus_attach;
adap->client_unregister = cafe_smbus_detach; adap->client_unregister = cafe_smbus_detach;
......
...@@ -1347,7 +1347,6 @@ static struct i2c_driver ov7670_driver = { ...@@ -1347,7 +1347,6 @@ static struct i2c_driver ov7670_driver = {
.name = "ov7670", .name = "ov7670",
}, },
.id = I2C_DRIVERID_OV7670, .id = I2C_DRIVERID_OV7670,
.class = I2C_CLASS_CAM_DIGITAL,
.attach_adapter = ov7670_attach, .attach_adapter = ov7670_attach,
.detach_client = ov7670_detach, .detach_client = ov7670_detach,
.command = ov7670_command, .command = ov7670_command,
......
...@@ -405,7 +405,6 @@ static struct i2c_driver driver = { ...@@ -405,7 +405,6 @@ static struct i2c_driver driver = {
.name = "ovcamchip", .name = "ovcamchip",
}, },
.id = I2C_DRIVERID_OVCAMCHIP, .id = I2C_DRIVERID_OVCAMCHIP,
.class = I2C_CLASS_CAM_DIGITAL,
.attach_adapter = ovcamchip_attach, .attach_adapter = ovcamchip_attach,
.detach_client = ovcamchip_detach, .detach_client = ovcamchip_detach,
.command = ovcamchip_command, .command = ovcamchip_command,
......
...@@ -1553,7 +1553,6 @@ static int w9968cf_i2c_init(struct w9968cf_device* cam) ...@@ -1553,7 +1553,6 @@ static int w9968cf_i2c_init(struct w9968cf_device* cam)
static struct i2c_adapter adap = { static struct i2c_adapter adap = {
.id = I2C_HW_SMBUS_W9968CF, .id = I2C_HW_SMBUS_W9968CF,
.class = I2C_CLASS_CAM_DIGITAL,
.owner = THIS_MODULE, .owner = THIS_MODULE,
.client_register = w9968cf_i2c_attach_inform, .client_register = w9968cf_i2c_attach_inform,
.client_unregister = w9968cf_i2c_detach_inform, .client_unregister = w9968cf_i2c_detach_inform,
......
...@@ -393,11 +393,7 @@ static inline void i2c_set_adapdata(struct i2c_adapter *dev, void *data) ...@@ -393,11 +393,7 @@ static inline void i2c_set_adapdata(struct i2c_adapter *dev, void *data)
#define I2C_CLASS_TV_ANALOG (1<<1) /* bttv + friends */ #define I2C_CLASS_TV_ANALOG (1<<1) /* bttv + friends */
#define I2C_CLASS_TV_DIGITAL (1<<2) /* dvb cards */ #define I2C_CLASS_TV_DIGITAL (1<<2) /* dvb cards */
#define I2C_CLASS_DDC (1<<3) /* DDC bus on graphics adapters */ #define I2C_CLASS_DDC (1<<3) /* DDC bus on graphics adapters */
#define I2C_CLASS_CAM_ANALOG (1<<4) /* camera with analog CCD */
#define I2C_CLASS_CAM_DIGITAL (1<<5) /* most webcams */
#define I2C_CLASS_SOUND (1<<6) /* sound devices */
#define I2C_CLASS_SPD (1<<7) /* SPD EEPROMs and similar */ #define I2C_CLASS_SPD (1<<7) /* SPD EEPROMs and similar */
#define I2C_CLASS_ALL (UINT_MAX) /* all of the above */
/* i2c_client_address_data is the struct for holding default client /* i2c_client_address_data is the struct for holding default client
* addresses for a driver and for the parameters supplied on the * addresses for a driver and for the parameters supplied on the
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment