Subject: Re: Initcall ordering

From: Wolfram Sang <[email-masked]>
Date: Sat, 24 Apr 2010 03:24:27 +0200

Hi Gary,

(adding linux-i2c)

On Fri, Apr 23, 2010 at 09:56:07AM -0600, Gary Thomas wrote:
> I'm having trouble with the I2C devices on my 8347 platform.
> The problem is that I2C device probe() functions are only called
> once, as the I2C bus is being initialized (in this case fsl_i2c_init())
> I have 2 devices on this bus, one device gets it's initcall
> before fsl_i2c_init, the second one does not :-(  This means
> that the second device is never probed.

Can you try this patch?

From: Wolfram Sang <[email-masked]>
Date: Sat, 24 Apr 2010 03:18:16 +0200
Subject: [PATCH] i2c/mpc: use subsys_initcall() to allow early usage of devices

Signed-off-by: Wolfram Sang <[email-masked]>
---
 drivers/i2c/busses/i2c-mpc.c |    3 +--
 1 files changed, 1 insertions(+), 2 deletions(-)

diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c
index f1321f7..32a3bae 100644
--- a/drivers/i2c/busses/i2c-mpc.c
+++ b/drivers/i2c/busses/i2c-mpc.c
@@ -693,13 +693,12 @@ static int __init fsl_i2c_init(void)
 		       " of_register_platform_driver failed (%i)\n", rv);
 	return rv;
 }
+subsys_initcall(fsl_i2c_init);
 
 static void __exit fsl_i2c_exit(void)
 {
 	of_unregister_platform_driver(&mpc_i2c_driver);
 }
-
-module_init(fsl_i2c_init);
 module_exit(fsl_i2c_exit);
 
 MODULE_AUTHOR("Adrian Cox <[email-masked]>");

-- 
Pengutronix e.K.                           | Wolfram Sang                |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |