[i2c] [patch 2.6.25-rc8] i2c: fix platform driver hotplug/coldplug
David Brownell
david-b at pacbell.net
Wed Apr 9 22:54:07 CEST 2008
From: Kay Sievers <kay.sievers at vrfy.org>
Since 43cc71eed1250755986da4c0f9898f9a635cb3bf, the platform
modalias is prefixed with "platform:". Add MODULE_ALIAS() to the
hotpluggable I2C platform drivers, to allow module auto loading.
[ db: add some more drivers ]
Signed-off-by: Kay Sievers <kay.sievers at vrfy.org>
Signed-off-by: David Brownell <dbrownell at users.sourceforge.net>
---
drivers/i2c/busses/i2c-at91.c | 2 +-
drivers/i2c/busses/i2c-au1550.c | 1 +
drivers/i2c/busses/i2c-bfin-twi.c | 1 +
drivers/i2c/busses/i2c-davinci.c | 3 +++
drivers/i2c/busses/i2c-gpio.c | 1 +
drivers/i2c/busses/i2c-iop3xx.c | 1 +
drivers/i2c/busses/i2c-ixp2000.c | 1 +
drivers/i2c/busses/i2c-mpc.c | 3 +++
drivers/i2c/busses/i2c-ocores.c | 3 +++
drivers/i2c/busses/i2c-omap.c | 1 +
drivers/i2c/busses/i2c-pmcmsp.c | 3 +++
drivers/i2c/busses/i2c-pnx.c | 1 +
drivers/i2c/busses/i2c-powermac.c | 3 +++
drivers/i2c/busses/i2c-pxa.c | 1 +
drivers/i2c/busses/i2c-s3c2410.c | 1 +
drivers/i2c/busses/i2c-simtec.c | 3 +++
drivers/i2c/busses/i2c-versatile.c | 1 +
17 files changed, 29 insertions(+), 1 deletion(-)
--- g26.orig/drivers/i2c/busses/i2c-at91.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-at91.c 2008-04-09 13:13:24.000000000 -0700
@@ -298,7 +298,7 @@ static int at91_i2c_resume(struct platfo
#endif
/* work with "modprobe at91_i2c" from hotplugging or coldplugging */
-MODULE_ALIAS("at91_i2c");
+MODULE_ALIAS("platform:at91_i2c");
static struct platform_driver at91_i2c_driver = {
.probe = at91_i2c_probe,
--- g26.orig/drivers/i2c/busses/i2c-au1550.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-au1550.c 2008-04-09 13:13:24.000000000 -0700
@@ -472,6 +472,7 @@ i2c_au1550_exit(void)
MODULE_AUTHOR("Dan Malek, Embedded Edge, LLC.");
MODULE_DESCRIPTION("SMBus adapter Alchemy pb1550");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:au1xpsc_smbus");
module_init (i2c_au1550_init);
module_exit (i2c_au1550_exit);
--- g26.orig/drivers/i2c/busses/i2c-bfin-twi.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-bfin-twi.c 2008-04-09 13:13:24.000000000 -0700
@@ -624,6 +624,7 @@ static void __exit i2c_bfin_twi_exit(voi
MODULE_AUTHOR("Sonic Zhang <sonic.zhang at analog.com>");
MODULE_DESCRIPTION("I2C-Bus adapter routines for Blackfin TWI");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:i2c-bfin-twi");
module_init(i2c_bfin_twi_init);
module_exit(i2c_bfin_twi_exit);
--- g26.orig/drivers/i2c/busses/i2c-davinci.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-davinci.c 2008-04-09 13:13:24.000000000 -0700
@@ -558,6 +558,9 @@ static int davinci_i2c_remove(struct pla
return 0;
}
+/* work with hotplug and coldplug */
+MODULE_ALIAS("platform:i2c_davinci");
+
static struct platform_driver davinci_i2c_driver = {
.probe = davinci_i2c_probe,
.remove = davinci_i2c_remove,
--- g26.orig/drivers/i2c/busses/i2c-gpio.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-gpio.c 2008-04-09 13:13:24.000000000 -0700
@@ -226,3 +226,4 @@ module_exit(i2c_gpio_exit);
MODULE_AUTHOR("Haavard Skinnemoen <hskinnemoen at atmel.com>");
MODULE_DESCRIPTION("Platform-independent bitbanging I2C driver");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:i2c-gpio");
--- g26.orig/drivers/i2c/busses/i2c-iop3xx.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-iop3xx.c 2008-04-09 13:13:24.000000000 -0700
@@ -550,3 +550,4 @@ module_exit (i2c_iop3xx_exit);
MODULE_AUTHOR("D-TACQ Solutions Ltd <www.d-tacq.com>");
MODULE_DESCRIPTION("IOP3xx iic algorithm and driver");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:IOP3xx-I2C");
--- g26.orig/drivers/i2c/busses/i2c-ixp2000.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-ixp2000.c 2008-04-09 13:13:24.000000000 -0700
@@ -164,4 +164,5 @@ module_exit(ixp2000_i2c_exit);
MODULE_AUTHOR ("Deepak Saxena <dsaxena at plexity.net>");
MODULE_DESCRIPTION("IXP2000 GPIO-based I2C bus driver");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:IXP2000-I2C");
--- g26.orig/drivers/i2c/busses/i2c-mpc.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-mpc.c 2008-04-09 13:13:24.000000000 -0700
@@ -392,6 +392,9 @@ static int fsl_i2c_remove(struct platfor
return 0;
};
+/* work with hotplug and coldplug */
+MODULE_ALIAS("platform:fsl-i2c");
+
/* Structure for a device driver */
static struct platform_driver fsl_i2c_driver = {
.probe = fsl_i2c_probe,
--- g26.orig/drivers/i2c/busses/i2c-ocores.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-ocores.c 2008-04-09 13:13:24.000000000 -0700
@@ -312,6 +312,9 @@ static int __devexit ocores_i2c_remove(s
return 0;
}
+/* work with hotplug and coldplug */
+MODULE_ALIAS("platform:ocores-i2c");
+
static struct platform_driver ocores_i2c_driver = {
.probe = ocores_i2c_probe,
.remove = __devexit_p(ocores_i2c_remove),
--- g26.orig/drivers/i2c/busses/i2c-omap.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-omap.c 2008-04-09 13:13:24.000000000 -0700
@@ -693,3 +693,4 @@ module_exit(omap_i2c_exit_driver);
MODULE_AUTHOR("MontaVista Software, Inc. (and others)");
MODULE_DESCRIPTION("TI OMAP I2C bus adapter");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:i2c_omap");
--- g26.orig/drivers/i2c/busses/i2c-pmcmsp.c 2008-04-09 13:03:24.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-pmcmsp.c 2008-04-09 13:13:24.000000000 -0700
@@ -627,6 +627,9 @@ static struct i2c_adapter pmcmsptwi_adap
.name = DRV_NAME,
};
+/* work with hotplug and coldplug */
+MODULE_ALIAS("platform:" DRV_NAME);
+
static struct platform_driver pmcmsptwi_driver = {
.probe = pmcmsptwi_probe,
.remove = __devexit_p(pmcmsptwi_remove),
--- g26.orig/drivers/i2c/busses/i2c-pnx.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-pnx.c 2008-04-09 13:13:24.000000000 -0700
@@ -697,6 +697,7 @@ static void __exit i2c_adap_pnx_exit(voi
MODULE_AUTHOR("Vitaly Wool, Dennis Kovalev <source at mvista.com>");
MODULE_DESCRIPTION("I2C driver for Philips IP3204-based I2C busses");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:pnx-i2c");
/* We need to make sure I2C is initialized before USB */
subsys_initcall(i2c_adap_pnx_init);
--- g26.orig/drivers/i2c/busses/i2c-powermac.c 2008-04-09 13:03:24.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-powermac.c 2008-04-09 13:13:24.000000000 -0700
@@ -263,6 +263,9 @@ static int __devexit i2c_powermac_probe(
}
+/* work with hotplug and coldplug */
+MODULE_ALIAS("platform:i2c-powermac");
+
static struct platform_driver i2c_powermac_driver = {
.probe = i2c_powermac_probe,
.remove = __devexit_p(i2c_powermac_remove),
--- g26.orig/drivers/i2c/busses/i2c-pxa.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-pxa.c 2008-04-09 13:13:24.000000000 -0700
@@ -1131,6 +1131,7 @@ static void __exit i2c_adap_pxa_exit(voi
}
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:pxa2xx-i2c");
module_init(i2c_adap_pxa_init);
module_exit(i2c_adap_pxa_exit);
--- g26.orig/drivers/i2c/busses/i2c-s3c2410.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-s3c2410.c 2008-04-09 13:13:24.000000000 -0700
@@ -948,3 +948,4 @@ module_exit(i2c_adap_s3c_exit);
MODULE_DESCRIPTION("S3C24XX I2C Bus driver");
MODULE_AUTHOR("Ben Dooks, <ben at simtec.co.uk>");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:s3c2410-i2c");
--- g26.orig/drivers/i2c/busses/i2c-simtec.c 2008-04-09 13:03:24.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-simtec.c 2008-04-09 13:13:24.000000000 -0700
@@ -159,6 +159,9 @@ static int simtec_i2c_remove(struct plat
/* device driver */
+/* work with hotplug and coldplug */
+MODULE_ALIAS("platform:simtec-i2c");
+
static struct platform_driver simtec_i2c_driver = {
.driver = {
.name = "simtec-i2c",
--- g26.orig/drivers/i2c/busses/i2c-versatile.c 2008-04-09 13:12:59.000000000 -0700
+++ g26/drivers/i2c/busses/i2c-versatile.c 2008-04-09 13:13:24.000000000 -0700
@@ -151,3 +151,4 @@ module_exit(i2c_versatile_exit);
MODULE_DESCRIPTION("ARM Versatile I2C bus driver");
MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:versatile-i2c");
More information about the i2c
mailing list