Skip to contentSkip to conversation

i2c: fix platform driver hotplug/coldplug

PATCH In review David Brownell 3 participants 6 messages Apr 9, 2008 – Apr 10, 2008 4 messages not in the archive

Subsystems (13)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 i2c: fix platform driver hotplug/coldplug

From: Kay Sievers <[email protected]>

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 ]

---
 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(-)
drivers/i2c/busses/i2c-at91.c +1 -1
@@ -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,
drivers/i2c/busses/i2c-au1550.c +1 -0
@@ -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);
drivers/i2c/busses/i2c-bfin-twi.c +1 -0
@@ -624,6 +624,7 @@ static void __exit i2c_bfin_twi_exit(voi
 MODULE_AUTHOR("Sonic Zhang <[email protected]>");
 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);
drivers/i2c/busses/i2c-davinci.c +3 -0
@@ -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,
drivers/i2c/busses/i2c-gpio.c +1 -0
@@ -226,3 +226,4 @@ module_exit(i2c_gpio_exit);
 MODULE_AUTHOR("Haavard Skinnemoen <[email protected]>");
 MODULE_DESCRIPTION("Platform-independent bitbanging I2C driver");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:i2c-gpio");
drivers/i2c/busses/i2c-iop3xx.c +1 -0
@@ -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");
drivers/i2c/busses/i2c-ixp2000.c +1 -0
@@ -164,4 +164,5 @@ module_exit(ixp2000_i2c_exit);
 MODULE_AUTHOR ("Deepak Saxena <[email protected]>");
 MODULE_DESCRIPTION("IXP2000 GPIO-based I2C bus driver");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:IXP2000-I2C");
 
drivers/i2c/busses/i2c-mpc.c +3 -0
@@ -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,
drivers/i2c/busses/i2c-ocores.c +3 -0
@@ -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),
drivers/i2c/busses/i2c-omap.c +1 -0
@@ -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");
drivers/i2c/busses/i2c-pmcmsp.c +3 -0
@@ -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),
drivers/i2c/busses/i2c-pnx.c +1 -0
@@ -697,6 +697,7 @@ static void __exit i2c_adap_pnx_exit(voi
 MODULE_AUTHOR("Vitaly Wool, Dennis Kovalev <[email protected]>");
 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);
drivers/i2c/busses/i2c-powermac.c +3 -0
@@ -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),
drivers/i2c/busses/i2c-pxa.c +1 -0
@@ -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);
drivers/i2c/busses/i2c-s3c2410.c +1 -0
@@ -948,3 +948,4 @@ module_exit(i2c_adap_s3c_exit);
 MODULE_DESCRIPTION("S3C24XX I2C Bus driver");
 MODULE_AUTHOR("Ben Dooks, <ben-Y5A6D6n0/[email protected]>");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:s3c2410-i2c");
drivers/i2c/busses/i2c-simtec.c +3 -0
@@ -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",
drivers/i2c/busses/i2c-versatile.c +1 -0
@@ -151,3 +151,4 @@ module_exit(i2c_versatile_exit);
 
 MODULE_DESCRIPTION("ARM Versatile I2C bus driver");
 MODULE_LICENSE("GPL");
+MODULE_ALIAS("platform:versatile-i2c");

_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c

A message that is not in the archive (sent off-list or not yet received): 200804091354.07807.david-b-yBeKhBN/[email protected]

#2 lore raw
Quoted 21 lines · David Brownell

From: Kay Sievers <[email protected]>

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 ]

---
 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 +
Quoted 8 lines
 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(-)

<snip>

OK... Is this a regression we need to fix in 2.6.25, or can this patch wait until 2.6.26?

Signature · 6 lines
Jean Delvare

_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c

A message that is not in the archive (sent off-list or not yet received): [email protected]

#4 lore raw
Quoted 15 lines · Jean Delvare
Quoted 6 lines · David Brownell

From: Kay Sievers <[email protected]>

Since 43cc71eed1250755986da4c0f9898f9a635cb3bf, the platform modalias is prefixed with "platform:". Add MODULE_ALIAS() to the hotpluggable I2C platform drivers, to allow module auto loading.

Quoted 7 lines

[ db: add some more drivers ]

---
drivers/i2c/busses/...

 17 files changed, 29 insertions(+), 1 deletion(-)
Quoted 4 lines

<snip>

OK... Is this a regression we need to fix in 2.6.25, or can this patch wait until 2.6.26?

It was a regresssion as of 2.6.24, for 200+ drivers; every platform_bus driver used have hotplug/coldplug support, but that patch stopped that from working.

The thing is, that had only been working for a few releases at that time, so not many folk were relying on it yet. They would just have been able to start doing so when that mechanism stopped working.

So I can't see a rush to get this into 2.6.25 now. I think the 200+ drivers will hotplug/coldplug again in 2.6.26 ... I've pushed almost a hundred such driver updates by now (sigh).

- Dave

_______________________________________________
i2c mailing list [email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c

A message that is not in the archive (sent off-list or not yet received): 200804100949.10255.david-b-yBeKhBN/[email protected]

#6 lore raw
Quoted 30 lines · On Thu, 10 Apr 2008 09:49:09 -0700 David Brownell…
Quoted 15 lines · Jean Delvare
Quoted 6 lines · David Brownell

From: Kay Sievers <[email protected]>

Since 43cc71eed1250755986da4c0f9898f9a635cb3bf, the platform modalias is prefixed with "platform:". Add MODULE_ALIAS() to the hotpluggable I2C platform drivers, to allow module auto loading.

Quoted 7 lines

[ db: add some more drivers ]

---
drivers/i2c/busses/...

 17 files changed, 29 insertions(+), 1 deletion(-)
Quoted 4 lines

<snip>

OK... Is this a regression we need to fix in 2.6.25, or can this patch wait until 2.6.26?

It was a regresssion as of 2.6.24, for 200+ drivers; every platform_bus driver used have hotplug/coldplug support, but that patch stopped that from working.

The thing is, that had only been working for a few releases at that time, so not many folk were relying on it yet. They would just have been able to start doing so when that mechanism stopped working.

Quoted 5 lines

So I can't see a rush to get this into 2.6.25 now. I think the 200+ drivers will hotplug/coldplug again in 2.6.26 ... I've pushed almost a hundred such driver updates by now (sigh).

Oh. I was thinking we should slam all these fixes into 2.6.25. If a couple fo them cause problems then we can patch things up in 2.6.25.x, but that's beter than having hundreds of broken drivers.

Or does your "as of" above mean that 2.6.24 is also busted?

_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c

A message that is not in the archive (sent off-list or not yet received): 20080410103009.0d3f39ec.akpm-de/[email protected]

#8 lore raw
Quoted 11 lines · Andrew Morton
Quoted 9 lines · On Thu, 10 Apr 2008 09:49:09 -0700 David Brownell…

It was a regresssion as of 2.6.24, for 200+ drivers; every platform_bus driver used have hotplug/coldplug support, but that patch stopped that from working.

The thing is, that had only been working for a few releases at that time, so not many folk were relying on it yet. They would just have been able to start doing so when that mechanism stopped working.

Quoted 7 lines
Quoted 5 lines

So I can't see a rush to get this into 2.6.25 now. I think the 200+ drivers will hotplug/coldplug again in 2.6.26 ... I've pushed almost a hundred such driver updates by now (sigh).

Oh. I was thinking we should slam all these fixes into 2.6.25.

I would not object to that. I can't see the patches I signed off on could break anything, and I dislike the notion of regression fixes getting deferred even longer.

(That includes I2C, RTC, SPI, USB, and Watchdog patches I posted yesterday, and the earlier EHCI one ... fixing about 90 drivers, and those entire subsystems.)

It's just that one kind of gets the feeling 2.6.25-final was just around the corner... and there's still the 122 drivers from Kay's patch to review, plus the ones missing from those patches. (Another 15-20 percent if numbers from the subsystems I looked at continue to hold.)

Quoted 4 lines

If a couple fo them cause problems then we can patch things up in 2.6.25.x, but that's beter than having hundreds of broken drivers.

Or does your "as of" above mean that 2.6.24 is also busted?

Yes, that "platform:" change broke hotplug/coldplug for most platform_bus drivers on 2.6.24 kernels too.

- Dave

_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c

#9 lore raw
In reply to a message not in the archive
Quoted 30 lines · David Brownell
Quoted 15 lines · Jean Delvare
Quoted 6 lines · David Brownell

From: Kay Sievers <[email protected]>

Since 43cc71eed1250755986da4c0f9898f9a635cb3bf, the platform modalias is prefixed with "platform:". Add MODULE_ALIAS() to the hotpluggable I2C platform drivers, to allow module auto loading.

Quoted 7 lines

[ db: add some more drivers ]

---
drivers/i2c/busses/...

 17 files changed, 29 insertions(+), 1 deletion(-)
Quoted 4 lines

<snip>

OK... Is this a regression we need to fix in 2.6.25, or can this patch wait until 2.6.26?

It was a regresssion as of 2.6.24, for 200+ drivers; every platform_bus driver used have hotplug/coldplug support, but that patch stopped that from working.

The thing is, that had only been working for a few releases at that time, so not many folk were relying on it yet. They would just have been able to start doing so when that mechanism stopped working.

Quoted 4 lines

So I can't see a rush to get this into 2.6.25 now. I think the 200+ drivers will hotplug/coldplug again in 2.6.26 ... I've pushed almost a hundred such driver updates by now (sigh).

OK, patch queued up for 2.6.26, thanks.

Signature · 6 lines
Jean Delvare

_______________________________________________
i2c mailing list
[email protected]
http://lists.lm-sensors.org/mailman/listinfo/i2c