From: David Brownell Date: Tue, 14 Oct 2008 15:30:06 +0000 (+0200) Subject: i2c: Do earlier driver model init X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=a10f9e7caf8d3028d8fb1d4c3d590492cde3df3e;p=openwrt%2Fstaging%2Fblogic.git i2c: Do earlier driver model init Move I2C driver model init earlier in the boot sequence. This avoids oopsing in statically linked systems when some subsystems register I2C drivers in subsys_initcall() code, but those subsystems are linked (and initialized) before I2C. Signed-off-by: David Brownell Signed-off-by: Jean Delvare --- diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index a96e1bf27649..80ae12048e85 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c @@ -986,7 +986,10 @@ static void __exit i2c_exit(void) bus_unregister(&i2c_bus_type); } -subsys_initcall(i2c_init); +/* We must initialize early, because some subsystems register i2c drivers + * in subsys_initcall() code, but are linked (and initialized) before i2c. + */ +postcore_initcall(i2c_init); module_exit(i2c_exit); /* ----------------------------------------------------