[i2c] Forcing an adapter onto a bus
Jon Smirl
jonsmirl at gmail.com
Thu Jan 3 18:09:27 CET 2008
If adapter->dev.parent is NULL the current i2c code forces the adapter
onto the platform bus. But this may not be what you want on the
powerpc since it mainly uses of_platform_bus. What about changing
this to an error condition and fixing the drivers that don't set it
right?
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c
index fce06fd..d0bb1e1 100644
--- a/drivers/i2c/i2c-core.c
+++ b/drivers/i2c/i2c-core.c
@@ -346,6 +346,11 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
struct list_head *item;
struct i2c_driver *driver;
+ if (adap->dev.parent == NULL) {
+ printk(KERN_ERR "I2C adapter driver [%s] forgot to specify "
+ "physical device\n", adap->name);
+ return -ENODEV;
+ }
mutex_init(&adap->bus_lock);
mutex_init(&adap->clist_lock);
INIT_LIST_HEAD(&adap->clients);
@@ -357,11 +362,6 @@ static int i2c_register_adapter(struct i2c_adapter *adap)
* If the parent pointer is not set up,
* we add this adapter to the host bus.
*/
- if (adap->dev.parent == NULL) {
- adap->dev.parent = &platform_bus;
- pr_debug("I2C adapter driver [%s] forgot to specify "
- "physical device\n", adap->name);
- }
sprintf(adap->dev.bus_id, "i2c-%d", adap->nr);
adap->dev.release = &i2c_adapter_dev_release;
adap->dev.class = &i2c_adapter_class;
--
Jon Smirl
jonsmirl at gmail.com
More information about the i2c
mailing list