提交 add8eda7 编写于 作者: K Kay Sievers 提交者: Jean Delvare

i2c: Fix platform driver hotplug/coldplug

Since 43cc71ee, 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: NKay Sievers <kay.sievers@vrfy.org>
Signed-off-by: NDavid Brownell <dbrownell@users.sourceforge.net>
Signed-off-by: NJean Delvare <khali@linux-fr.org>
上级 da672773
...@@ -298,7 +298,7 @@ static int at91_i2c_resume(struct platform_device *pdev) ...@@ -298,7 +298,7 @@ static int at91_i2c_resume(struct platform_device *pdev)
#endif #endif
/* work with "modprobe at91_i2c" from hotplugging or coldplugging */ /* 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 = { static struct platform_driver at91_i2c_driver = {
.probe = at91_i2c_probe, .probe = at91_i2c_probe,
......
...@@ -472,6 +472,7 @@ i2c_au1550_exit(void) ...@@ -472,6 +472,7 @@ i2c_au1550_exit(void)
MODULE_AUTHOR("Dan Malek, Embedded Edge, LLC."); MODULE_AUTHOR("Dan Malek, Embedded Edge, LLC.");
MODULE_DESCRIPTION("SMBus adapter Alchemy pb1550"); MODULE_DESCRIPTION("SMBus adapter Alchemy pb1550");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:au1xpsc_smbus");
module_init (i2c_au1550_init); module_init (i2c_au1550_init);
module_exit (i2c_au1550_exit); module_exit (i2c_au1550_exit);
...@@ -741,3 +741,4 @@ module_exit(i2c_bfin_twi_exit); ...@@ -741,3 +741,4 @@ module_exit(i2c_bfin_twi_exit);
MODULE_AUTHOR("Bryan Wu, Sonic Zhang"); MODULE_AUTHOR("Bryan Wu, Sonic Zhang");
MODULE_DESCRIPTION("Blackfin BF5xx on-chip I2C TWI Contoller Driver"); MODULE_DESCRIPTION("Blackfin BF5xx on-chip I2C TWI Contoller Driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:i2c-bfin-twi");
...@@ -553,6 +553,9 @@ static int davinci_i2c_remove(struct platform_device *pdev) ...@@ -553,6 +553,9 @@ static int davinci_i2c_remove(struct platform_device *pdev)
return 0; return 0;
} }
/* work with hotplug and coldplug */
MODULE_ALIAS("platform:i2c_davinci");
static struct platform_driver davinci_i2c_driver = { static struct platform_driver davinci_i2c_driver = {
.probe = davinci_i2c_probe, .probe = davinci_i2c_probe,
.remove = davinci_i2c_remove, .remove = davinci_i2c_remove,
......
...@@ -220,3 +220,4 @@ module_exit(i2c_gpio_exit); ...@@ -220,3 +220,4 @@ module_exit(i2c_gpio_exit);
MODULE_AUTHOR("Haavard Skinnemoen <hskinnemoen@atmel.com>"); MODULE_AUTHOR("Haavard Skinnemoen <hskinnemoen@atmel.com>");
MODULE_DESCRIPTION("Platform-independent bitbanging I2C driver"); MODULE_DESCRIPTION("Platform-independent bitbanging I2C driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:i2c-gpio");
...@@ -550,3 +550,4 @@ module_exit (i2c_iop3xx_exit); ...@@ -550,3 +550,4 @@ module_exit (i2c_iop3xx_exit);
MODULE_AUTHOR("D-TACQ Solutions Ltd <www.d-tacq.com>"); MODULE_AUTHOR("D-TACQ Solutions Ltd <www.d-tacq.com>");
MODULE_DESCRIPTION("IOP3xx iic algorithm and driver"); MODULE_DESCRIPTION("IOP3xx iic algorithm and driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:IOP3xx-I2C");
...@@ -164,4 +164,5 @@ module_exit(ixp2000_i2c_exit); ...@@ -164,4 +164,5 @@ module_exit(ixp2000_i2c_exit);
MODULE_AUTHOR ("Deepak Saxena <dsaxena@plexity.net>"); MODULE_AUTHOR ("Deepak Saxena <dsaxena@plexity.net>");
MODULE_DESCRIPTION("IXP2000 GPIO-based I2C bus driver"); MODULE_DESCRIPTION("IXP2000 GPIO-based I2C bus driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:IXP2000-I2C");
...@@ -392,6 +392,9 @@ static int fsl_i2c_remove(struct platform_device *pdev) ...@@ -392,6 +392,9 @@ static int fsl_i2c_remove(struct platform_device *pdev)
return 0; return 0;
}; };
/* work with hotplug and coldplug */
MODULE_ALIAS("platform:fsl-i2c");
/* Structure for a device driver */ /* Structure for a device driver */
static struct platform_driver fsl_i2c_driver = { static struct platform_driver fsl_i2c_driver = {
.probe = fsl_i2c_probe, .probe = fsl_i2c_probe,
......
...@@ -312,6 +312,9 @@ static int __devexit ocores_i2c_remove(struct platform_device* pdev) ...@@ -312,6 +312,9 @@ static int __devexit ocores_i2c_remove(struct platform_device* pdev)
return 0; return 0;
} }
/* work with hotplug and coldplug */
MODULE_ALIAS("platform:ocores-i2c");
static struct platform_driver ocores_i2c_driver = { static struct platform_driver ocores_i2c_driver = {
.probe = ocores_i2c_probe, .probe = ocores_i2c_probe,
.remove = __devexit_p(ocores_i2c_remove), .remove = __devexit_p(ocores_i2c_remove),
......
...@@ -693,3 +693,4 @@ module_exit(omap_i2c_exit_driver); ...@@ -693,3 +693,4 @@ module_exit(omap_i2c_exit_driver);
MODULE_AUTHOR("MontaVista Software, Inc. (and others)"); MODULE_AUTHOR("MontaVista Software, Inc. (and others)");
MODULE_DESCRIPTION("TI OMAP I2C bus adapter"); MODULE_DESCRIPTION("TI OMAP I2C bus adapter");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:i2c_omap");
...@@ -627,6 +627,9 @@ static struct i2c_adapter pmcmsptwi_adapter = { ...@@ -627,6 +627,9 @@ static struct i2c_adapter pmcmsptwi_adapter = {
.name = DRV_NAME, .name = DRV_NAME,
}; };
/* work with hotplug and coldplug */
MODULE_ALIAS("platform:" DRV_NAME);
static struct platform_driver pmcmsptwi_driver = { static struct platform_driver pmcmsptwi_driver = {
.probe = pmcmsptwi_probe, .probe = pmcmsptwi_probe,
.remove = __devexit_p(pmcmsptwi_remove), .remove = __devexit_p(pmcmsptwi_remove),
......
...@@ -697,6 +697,7 @@ static void __exit i2c_adap_pnx_exit(void) ...@@ -697,6 +697,7 @@ static void __exit i2c_adap_pnx_exit(void)
MODULE_AUTHOR("Vitaly Wool, Dennis Kovalev <source@mvista.com>"); MODULE_AUTHOR("Vitaly Wool, Dennis Kovalev <source@mvista.com>");
MODULE_DESCRIPTION("I2C driver for Philips IP3204-based I2C busses"); MODULE_DESCRIPTION("I2C driver for Philips IP3204-based I2C busses");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:pnx-i2c");
/* We need to make sure I2C is initialized before USB */ /* We need to make sure I2C is initialized before USB */
subsys_initcall(i2c_adap_pnx_init); subsys_initcall(i2c_adap_pnx_init);
......
...@@ -263,6 +263,9 @@ static int __devexit i2c_powermac_probe(struct platform_device *dev) ...@@ -263,6 +263,9 @@ static int __devexit i2c_powermac_probe(struct platform_device *dev)
} }
/* work with hotplug and coldplug */
MODULE_ALIAS("platform:i2c-powermac");
static struct platform_driver i2c_powermac_driver = { static struct platform_driver i2c_powermac_driver = {
.probe = i2c_powermac_probe, .probe = i2c_powermac_probe,
.remove = __devexit_p(i2c_powermac_remove), .remove = __devexit_p(i2c_powermac_remove),
......
...@@ -1132,6 +1132,7 @@ static void __exit i2c_adap_pxa_exit(void) ...@@ -1132,6 +1132,7 @@ static void __exit i2c_adap_pxa_exit(void)
} }
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:pxa2xx-i2c");
module_init(i2c_adap_pxa_init); module_init(i2c_adap_pxa_init);
module_exit(i2c_adap_pxa_exit); module_exit(i2c_adap_pxa_exit);
...@@ -948,3 +948,4 @@ module_exit(i2c_adap_s3c_exit); ...@@ -948,3 +948,4 @@ module_exit(i2c_adap_s3c_exit);
MODULE_DESCRIPTION("S3C24XX I2C Bus driver"); MODULE_DESCRIPTION("S3C24XX I2C Bus driver");
MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>"); MODULE_AUTHOR("Ben Dooks, <ben@simtec.co.uk>");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:s3c2410-i2c");
...@@ -159,6 +159,9 @@ static int simtec_i2c_remove(struct platform_device *dev) ...@@ -159,6 +159,9 @@ static int simtec_i2c_remove(struct platform_device *dev)
/* device driver */ /* device driver */
/* work with hotplug and coldplug */
MODULE_ALIAS("platform:simtec-i2c");
static struct platform_driver simtec_i2c_driver = { static struct platform_driver simtec_i2c_driver = {
.driver = { .driver = {
.name = "simtec-i2c", .name = "simtec-i2c",
......
...@@ -151,3 +151,4 @@ module_exit(i2c_versatile_exit); ...@@ -151,3 +151,4 @@ module_exit(i2c_versatile_exit);
MODULE_DESCRIPTION("ARM Versatile I2C bus driver"); MODULE_DESCRIPTION("ARM Versatile I2C bus driver");
MODULE_LICENSE("GPL"); MODULE_LICENSE("GPL");
MODULE_ALIAS("platform:versatile-i2c");
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册