public inbox for linux-i2c@vger.kernel.org
 help / color / mirror / Atom feed
* Forcing an adapter onto a bus
@ 2008-01-03 17:09 Jon Smirl
       [not found] ` <9e4733910801030909v70ddc068xfb658bf15c5f8924-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
  0 siblings, 1 reply; 5+ messages in thread
From: Jon Smirl @ 2008-01-03 17:09 UTC (permalink / raw)
  To: i2c-GZX6beZjE8VD60Wz+7aTrA

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-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org

^ permalink raw reply related	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2008-01-08 20:17 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-01-03 17:09 Forcing an adapter onto a bus Jon Smirl
     [not found] ` <9e4733910801030909v70ddc068xfb658bf15c5f8924-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-01-08 16:58   ` Jean Delvare
     [not found]     ` <20080108175804.2bb2671b-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-08 17:22       ` Jon Smirl
     [not found]         ` <9e4733910801080922p7f302876y34e1a10c27e68c45-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2008-01-08 19:52           ` Jean Delvare
     [not found]             ` <20080108205206.75b74fbb-ig7AzVSIIG7kN2dkZ6Wm7A@public.gmane.org>
2008-01-08 20:17               ` Jon Smirl

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox