diff options
author | Jean Delvare <khali@linux-fr.org> | 2007-02-13 16:09:03 -0500 |
---|---|---|
committer | Jean Delvare <khali@arrakis.delvare> | 2007-02-13 16:09:03 -0500 |
commit | 12a917f69d1468c91d646dbad8408dd0d39d6207 (patch) | |
tree | 3336f373d174600d0981d8a34de4cf0e26eab79f | |
parent | beb58aa39e6e5a52875defe12c7697b0bfa95d4c (diff) |
i2c: Declare more i2c_adapter parent devices
Declare the parent device of i2c_adapter devices each time we can
easily do so. It makes the i2c_adapter appear at the right place in
the device tree, rather than as a platform device.
Signed-off-by: Jean Delvare <khali@linux-fr.org>
Cc: David Brownell <dbrownell@users.sourceforge.net>
Cc: Len Brown <len.brown@intel.com>
Cc: Jordan Crouse <jordan.crouse@amd.com>
Cc: Jody McIntyre <scjody@modernduck.com>
Cc: Stefan Richter <stefanr@s5r6.in-berlin.de>
Cc: v4l-dvb-maintainer@linuxtv.org
Cc: Petr Vandrovec <vandrove@vc.cvut.cz>
-rw-r--r-- | drivers/acpi/i2c_ec.c | 1 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-amd756-s4882.c | 2 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-ibm_iic.c | 1 | ||||
-rw-r--r-- | drivers/i2c/busses/i2c-mv64xxx.c | 1 | ||||
-rw-r--r-- | drivers/i2c/busses/scx200_acb.c | 7 | ||||
-rw-r--r-- | drivers/ieee1394/pcilynx.c | 1 | ||||
-rw-r--r-- | drivers/media/dvb/b2c2/flexcop-i2c.c | 1 | ||||
-rw-r--r-- | drivers/media/dvb/dvb-usb/dvb-usb-i2c.c | 1 | ||||
-rw-r--r-- | drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c | 1 | ||||
-rw-r--r-- | drivers/media/video/cafe_ccic.c | 1 | ||||
-rw-r--r-- | drivers/media/video/pvrusb2/pvrusb2-i2c-core.c | 1 | ||||
-rw-r--r-- | drivers/media/video/usbvision/usbvision-i2c.c | 1 | ||||
-rw-r--r-- | drivers/media/video/w9968cf.c | 1 | ||||
-rw-r--r-- | drivers/media/video/zoran_card.c | 1 | ||||
-rw-r--r-- | drivers/video/matrox/i2c-matroxfb.c | 1 |
15 files changed, 19 insertions, 3 deletions
diff --git a/drivers/acpi/i2c_ec.c b/drivers/acpi/i2c_ec.c index 8338be0990b..bb54b6cdb30 100644 --- a/drivers/acpi/i2c_ec.c +++ b/drivers/acpi/i2c_ec.c | |||
@@ -340,6 +340,7 @@ static int acpi_ec_hc_add(struct acpi_device *device) | |||
340 | smbus->adapter.owner = THIS_MODULE; | 340 | smbus->adapter.owner = THIS_MODULE; |
341 | smbus->adapter.algo = &acpi_ec_smbus_algorithm; | 341 | smbus->adapter.algo = &acpi_ec_smbus_algorithm; |
342 | smbus->adapter.algo_data = smbus; | 342 | smbus->adapter.algo_data = smbus; |
343 | smbus->adapter.dev.parent = &device->dev; | ||
343 | 344 | ||
344 | if (i2c_add_adapter(&smbus->adapter)) { | 345 | if (i2c_add_adapter(&smbus->adapter)) { |
345 | ACPI_DEBUG_PRINT((ACPI_DB_WARN, | 346 | ACPI_DEBUG_PRINT((ACPI_DB_WARN, |
diff --git a/drivers/i2c/busses/i2c-amd756-s4882.c b/drivers/i2c/busses/i2c-amd756-s4882.c index 08e915730ca..e5e96c81756 100644 --- a/drivers/i2c/busses/i2c-amd756-s4882.c +++ b/drivers/i2c/busses/i2c-amd756-s4882.c | |||
@@ -184,12 +184,14 @@ static int __init amd756_s4882_init(void) | |||
184 | s4882_algo[0].smbus_xfer = amd756_access_virt0; | 184 | s4882_algo[0].smbus_xfer = amd756_access_virt0; |
185 | s4882_adapter[0] = amd756_smbus; | 185 | s4882_adapter[0] = amd756_smbus; |
186 | s4882_adapter[0].algo = s4882_algo; | 186 | s4882_adapter[0].algo = s4882_algo; |
187 | s4882_adapter[0].dev.parent = amd756_smbus.dev.parent; | ||
187 | for (i = 1; i < 5; i++) { | 188 | for (i = 1; i < 5; i++) { |
188 | s4882_algo[i] = *(amd756_smbus.algo); | 189 | s4882_algo[i] = *(amd756_smbus.algo); |
189 | s4882_adapter[i] = amd756_smbus; | 190 | s4882_adapter[i] = amd756_smbus; |
190 | sprintf(s4882_adapter[i].name, | 191 | sprintf(s4882_adapter[i].name, |
191 | "SMBus 8111 adapter (CPU%d)", i-1); | 192 | "SMBus 8111 adapter (CPU%d)", i-1); |
192 | s4882_adapter[i].algo = s4882_algo+i; | 193 | s4882_adapter[i].algo = s4882_algo+i; |
194 | s4882_adapter[i].dev.parent = amd756_smbus.dev.parent; | ||
193 | } | 195 | } |
194 | s4882_algo[1].smbus_xfer = amd756_access_virt1; | 196 | s4882_algo[1].smbus_xfer = amd756_access_virt1; |
195 | s4882_algo[2].smbus_xfer = amd756_access_virt2; | 197 | s4882_algo[2].smbus_xfer = amd756_access_virt2; |
diff --git a/drivers/i2c/busses/i2c-ibm_iic.c b/drivers/i2c/busses/i2c-ibm_iic.c index 1898e998702..8b14d14e60c 100644 --- a/drivers/i2c/busses/i2c-ibm_iic.c +++ b/drivers/i2c/busses/i2c-ibm_iic.c | |||
@@ -727,6 +727,7 @@ static int __devinit iic_probe(struct ocp_device *ocp){ | |||
727 | 727 | ||
728 | /* Register it with i2c layer */ | 728 | /* Register it with i2c layer */ |
729 | adap = &dev->adap; | 729 | adap = &dev->adap; |
730 | adap->dev.parent = &ocp->dev; | ||
730 | strcpy(adap->name, "IBM IIC"); | 731 | strcpy(adap->name, "IBM IIC"); |
731 | i2c_set_adapdata(adap, dev); | 732 | i2c_set_adapdata(adap, dev); |
732 | adap->id = I2C_HW_OCP; | 733 | adap->id = I2C_HW_OCP; |
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c index 490173611d6..a3283b907eb 100644 --- a/drivers/i2c/busses/i2c-mv64xxx.c +++ b/drivers/i2c/busses/i2c-mv64xxx.c | |||
@@ -520,6 +520,7 @@ mv64xxx_i2c_probe(struct platform_device *pd) | |||
520 | rc = -ENXIO; | 520 | rc = -ENXIO; |
521 | goto exit_unmap_regs; | 521 | goto exit_unmap_regs; |
522 | } | 522 | } |
523 | drv_data->adapter.dev.parent = &pd->dev; | ||
523 | drv_data->adapter.id = I2C_HW_MV64XXX; | 524 | drv_data->adapter.id = I2C_HW_MV64XXX; |
524 | drv_data->adapter.algo = &mv64xxx_i2c_algo; | 525 | drv_data->adapter.algo = &mv64xxx_i2c_algo; |
525 | drv_data->adapter.owner = THIS_MODULE; | 526 | drv_data->adapter.owner = THIS_MODULE; |
diff --git a/drivers/i2c/busses/scx200_acb.c b/drivers/i2c/busses/scx200_acb.c index 714bae78095..0b082c5a019 100644 --- a/drivers/i2c/busses/scx200_acb.c +++ b/drivers/i2c/busses/scx200_acb.c | |||
@@ -428,7 +428,7 @@ static __init int scx200_acb_probe(struct scx200_acb_iface *iface) | |||
428 | } | 428 | } |
429 | 429 | ||
430 | static __init struct scx200_acb_iface *scx200_create_iface(const char *text, | 430 | static __init struct scx200_acb_iface *scx200_create_iface(const char *text, |
431 | int index) | 431 | struct device *dev, int index) |
432 | { | 432 | { |
433 | struct scx200_acb_iface *iface; | 433 | struct scx200_acb_iface *iface; |
434 | struct i2c_adapter *adapter; | 434 | struct i2c_adapter *adapter; |
@@ -446,6 +446,7 @@ static __init struct scx200_acb_iface *scx200_create_iface(const char *text, | |||
446 | adapter->id = I2C_HW_SMBUS_SCX200; | 446 | adapter->id = I2C_HW_SMBUS_SCX200; |
447 | adapter->algo = &scx200_acb_algorithm; | 447 | adapter->algo = &scx200_acb_algorithm; |
448 | adapter->class = I2C_CLASS_HWMON; | 448 | adapter->class = I2C_CLASS_HWMON; |
449 | adapter->dev.parent = dev; | ||
449 | 450 | ||
450 | mutex_init(&iface->mutex); | 451 | mutex_init(&iface->mutex); |
451 | 452 | ||
@@ -486,7 +487,7 @@ static __init int scx200_create_pci(const char *text, struct pci_dev *pdev, | |||
486 | struct scx200_acb_iface *iface; | 487 | struct scx200_acb_iface *iface; |
487 | int rc; | 488 | int rc; |
488 | 489 | ||
489 | iface = scx200_create_iface(text, 0); | 490 | iface = scx200_create_iface(text, &pdev->dev, 0); |
490 | 491 | ||
491 | if (iface == NULL) | 492 | if (iface == NULL) |
492 | return -ENOMEM; | 493 | return -ENOMEM; |
@@ -524,7 +525,7 @@ static int __init scx200_create_isa(const char *text, unsigned long base, | |||
524 | struct scx200_acb_iface *iface; | 525 | struct scx200_acb_iface *iface; |
525 | int rc; | 526 | int rc; |
526 | 527 | ||
527 | iface = scx200_create_iface(text, index); | 528 | iface = scx200_create_iface(text, NULL, index); |
528 | 529 | ||
529 | if (iface == NULL) | 530 | if (iface == NULL) |
530 | return -ENOMEM; | 531 | return -ENOMEM; |
diff --git a/drivers/ieee1394/pcilynx.c b/drivers/ieee1394/pcilynx.c index fbb7f14ec50..0742befe922 100644 --- a/drivers/ieee1394/pcilynx.c +++ b/drivers/ieee1394/pcilynx.c | |||
@@ -1434,6 +1434,7 @@ static int __devinit add_card(struct pci_dev *dev, | |||
1434 | i2c_adapter_data = bit_data; | 1434 | i2c_adapter_data = bit_data; |
1435 | i2c_ad->algo_data = &i2c_adapter_data; | 1435 | i2c_ad->algo_data = &i2c_adapter_data; |
1436 | i2c_adapter_data.data = lynx; | 1436 | i2c_adapter_data.data = lynx; |
1437 | i2c_ad->dev.parent = &dev->dev; | ||
1437 | 1438 | ||
1438 | PRINTD(KERN_DEBUG, lynx->id,"original eeprom control: %d", | 1439 | PRINTD(KERN_DEBUG, lynx->id,"original eeprom control: %d", |
1439 | reg_read(lynx, SERIAL_EEPROM_CONTROL)); | 1440 | reg_read(lynx, SERIAL_EEPROM_CONTROL)); |
diff --git a/drivers/media/dvb/b2c2/flexcop-i2c.c b/drivers/media/dvb/b2c2/flexcop-i2c.c index e0bd2d8f0f0..5347a406fff 100644 --- a/drivers/media/dvb/b2c2/flexcop-i2c.c +++ b/drivers/media/dvb/b2c2/flexcop-i2c.c | |||
@@ -190,6 +190,7 @@ int flexcop_i2c_init(struct flexcop_device *fc) | |||
190 | fc->i2c_adap.class = I2C_CLASS_TV_DIGITAL; | 190 | fc->i2c_adap.class = I2C_CLASS_TV_DIGITAL; |
191 | fc->i2c_adap.algo = &flexcop_algo; | 191 | fc->i2c_adap.algo = &flexcop_algo; |
192 | fc->i2c_adap.algo_data = NULL; | 192 | fc->i2c_adap.algo_data = NULL; |
193 | fc->i2c_adap.dev.parent = fc->dev; | ||
193 | 194 | ||
194 | if ((ret = i2c_add_adapter(&fc->i2c_adap)) < 0) | 195 | if ((ret = i2c_add_adapter(&fc->i2c_adap)) < 0) |
195 | return ret; | 196 | return ret; |
diff --git a/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c b/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c index 55ba020386c..70df31b0a8a 100644 --- a/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c +++ b/drivers/media/dvb/dvb-usb/dvb-usb-i2c.c | |||
@@ -27,6 +27,7 @@ int dvb_usb_i2c_init(struct dvb_usb_device *d) | |||
27 | #endif | 27 | #endif |
28 | d->i2c_adap.algo = d->props.i2c_algo; | 28 | d->i2c_adap.algo = d->props.i2c_algo; |
29 | d->i2c_adap.algo_data = NULL; | 29 | d->i2c_adap.algo_data = NULL; |
30 | d->i2c_adap.dev.parent = &d->udev->dev; | ||
30 | 31 | ||
31 | i2c_set_adapdata(&d->i2c_adap, d); | 32 | i2c_set_adapdata(&d->i2c_adap, d); |
32 | 33 | ||
diff --git a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c index 60820deb900..b60cdc93d6d 100644 --- a/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c +++ b/drivers/media/dvb/ttusb-budget/dvb-ttusb-budget.c | |||
@@ -1690,6 +1690,7 @@ static int ttusb_probe(struct usb_interface *intf, const struct usb_device_id *i | |||
1690 | #endif | 1690 | #endif |
1691 | ttusb->i2c_adap.algo = &ttusb_dec_algo; | 1691 | ttusb->i2c_adap.algo = &ttusb_dec_algo; |
1692 | ttusb->i2c_adap.algo_data = NULL; | 1692 | ttusb->i2c_adap.algo_data = NULL; |
1693 | ttusb->i2c_adap.dev.parent = &udev->dev; | ||
1693 | 1694 | ||
1694 | result = i2c_add_adapter(&ttusb->i2c_adap); | 1695 | result = i2c_add_adapter(&ttusb->i2c_adap); |
1695 | if (result) { | 1696 | if (result) { |
diff --git a/drivers/media/video/cafe_ccic.c b/drivers/media/video/cafe_ccic.c index fb1410c6f86..4dae8925667 100644 --- a/drivers/media/video/cafe_ccic.c +++ b/drivers/media/video/cafe_ccic.c | |||
@@ -549,6 +549,7 @@ static int cafe_smbus_setup(struct cafe_camera *cam) | |||
549 | adap->client_unregister = cafe_smbus_detach; | 549 | adap->client_unregister = cafe_smbus_detach; |
550 | adap->algo = &cafe_smbus_algo; | 550 | adap->algo = &cafe_smbus_algo; |
551 | strcpy(adap->name, "cafe_ccic"); | 551 | strcpy(adap->name, "cafe_ccic"); |
552 | adap->dev.parent = &cam->pdev->dev; | ||
552 | i2c_set_adapdata(adap, cam); | 553 | i2c_set_adapdata(adap, cam); |
553 | ret = i2c_add_adapter(adap); | 554 | ret = i2c_add_adapter(adap); |
554 | if (ret) | 555 | if (ret) |
diff --git a/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c b/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c index f9bb41d8f4f..62a7cfca837 100644 --- a/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c +++ b/drivers/media/video/pvrusb2/pvrusb2-i2c-core.c | |||
@@ -977,6 +977,7 @@ void pvr2_i2c_core_init(struct pvr2_hdw *hdw) | |||
977 | memcpy(&hdw->i2c_adap,&pvr2_i2c_adap_template,sizeof(hdw->i2c_adap)); | 977 | memcpy(&hdw->i2c_adap,&pvr2_i2c_adap_template,sizeof(hdw->i2c_adap)); |
978 | memcpy(&hdw->i2c_algo,&pvr2_i2c_algo_template,sizeof(hdw->i2c_algo)); | 978 | memcpy(&hdw->i2c_algo,&pvr2_i2c_algo_template,sizeof(hdw->i2c_algo)); |
979 | strlcpy(hdw->i2c_adap.name,hdw->name,sizeof(hdw->i2c_adap.name)); | 979 | strlcpy(hdw->i2c_adap.name,hdw->name,sizeof(hdw->i2c_adap.name)); |
980 | hdw->i2c_adap.dev.parent = &hdw->usb_dev->dev; | ||
980 | hdw->i2c_adap.algo = &hdw->i2c_algo; | 981 | hdw->i2c_adap.algo = &hdw->i2c_algo; |
981 | hdw->i2c_adap.algo_data = hdw; | 982 | hdw->i2c_adap.algo_data = hdw; |
982 | hdw->i2c_pend_mask = 0; | 983 | hdw->i2c_pend_mask = 0; |
diff --git a/drivers/media/video/usbvision/usbvision-i2c.c b/drivers/media/video/usbvision/usbvision-i2c.c index 858252c1508..a242b76aea8 100644 --- a/drivers/media/video/usbvision/usbvision-i2c.c +++ b/drivers/media/video/usbvision/usbvision-i2c.c | |||
@@ -258,6 +258,7 @@ int usbvision_init_i2c(struct usb_usbvision *usbvision) | |||
258 | sprintf(usbvision->i2c_adap.name + strlen(usbvision->i2c_adap.name), | 258 | sprintf(usbvision->i2c_adap.name + strlen(usbvision->i2c_adap.name), |
259 | " #%d", usbvision->vdev->minor & 0x1f); | 259 | " #%d", usbvision->vdev->minor & 0x1f); |
260 | PDEBUG(DBG_I2C,"Adaptername: %s", usbvision->i2c_adap.name); | 260 | PDEBUG(DBG_I2C,"Adaptername: %s", usbvision->i2c_adap.name); |
261 | usbvision->i2c_adap.dev.parent = &usbvision->dev->dev; | ||
261 | 262 | ||
262 | i2c_set_adapdata(&usbvision->i2c_adap, usbvision); | 263 | i2c_set_adapdata(&usbvision->i2c_adap, usbvision); |
263 | i2c_set_clientdata(&usbvision->i2c_client, usbvision); | 264 | i2c_set_clientdata(&usbvision->i2c_client, usbvision); |
diff --git a/drivers/media/video/w9968cf.c b/drivers/media/video/w9968cf.c index 6e64af293be..8f31613b990 100644 --- a/drivers/media/video/w9968cf.c +++ b/drivers/media/video/w9968cf.c | |||
@@ -1573,6 +1573,7 @@ static int w9968cf_i2c_init(struct w9968cf_device* cam) | |||
1573 | 1573 | ||
1574 | memcpy(&cam->i2c_adapter, &adap, sizeof(struct i2c_adapter)); | 1574 | memcpy(&cam->i2c_adapter, &adap, sizeof(struct i2c_adapter)); |
1575 | strcpy(cam->i2c_adapter.name, "w9968cf"); | 1575 | strcpy(cam->i2c_adapter.name, "w9968cf"); |
1576 | cam->i2c_adapter.dev.parent = &cam->usbdev->dev; | ||
1576 | i2c_set_adapdata(&cam->i2c_adapter, cam); | 1577 | i2c_set_adapdata(&cam->i2c_adapter, cam); |
1577 | 1578 | ||
1578 | DBG(6, "Registering I2C adapter with kernel...") | 1579 | DBG(6, "Registering I2C adapter with kernel...") |
diff --git a/drivers/media/video/zoran_card.c b/drivers/media/video/zoran_card.c index 4d1eb2fba34..73162a3a61d 100644 --- a/drivers/media/video/zoran_card.c +++ b/drivers/media/video/zoran_card.c | |||
@@ -843,6 +843,7 @@ zoran_register_i2c (struct zoran *zr) | |||
843 | sizeof(I2C_NAME(&zr->i2c_adapter)) - 1); | 843 | sizeof(I2C_NAME(&zr->i2c_adapter)) - 1); |
844 | i2c_set_adapdata(&zr->i2c_adapter, zr); | 844 | i2c_set_adapdata(&zr->i2c_adapter, zr); |
845 | zr->i2c_adapter.algo_data = &zr->i2c_algo; | 845 | zr->i2c_adapter.algo_data = &zr->i2c_algo; |
846 | zr->i2c_adapter.dev.parent = &zr->pci_dev->dev; | ||
846 | return i2c_bit_add_bus(&zr->i2c_adapter); | 847 | return i2c_bit_add_bus(&zr->i2c_adapter); |
847 | } | 848 | } |
848 | 849 | ||
diff --git a/drivers/video/matrox/i2c-matroxfb.c b/drivers/video/matrox/i2c-matroxfb.c index f64c4a0984c..5ec718a5fe2 100644 --- a/drivers/video/matrox/i2c-matroxfb.c +++ b/drivers/video/matrox/i2c-matroxfb.c | |||
@@ -115,6 +115,7 @@ static int i2c_bus_reg(struct i2c_bit_adapter* b, struct matrox_fb_info* minfo, | |||
115 | minfo->fbcon.node); | 115 | minfo->fbcon.node); |
116 | i2c_set_adapdata(&b->adapter, b); | 116 | i2c_set_adapdata(&b->adapter, b); |
117 | b->adapter.algo_data = &b->bac; | 117 | b->adapter.algo_data = &b->bac; |
118 | b->adapter.dev.parent = &ACCESS_FBINFO(pcidev)->dev; | ||
118 | b->bac = matrox_i2c_algo_template; | 119 | b->bac = matrox_i2c_algo_template; |
119 | b->bac.data = b; | 120 | b->bac.data = b; |
120 | err = i2c_bit_add_bus(&b->adapter); | 121 | err = i2c_bit_add_bus(&b->adapter); |