Skip to contentSkip to conversation

i2c: Fix module autoload for some i2c busses platform drivers

PATCH Applied Javier Martinez Canillas 3 participants 7 messages Oct 18, 2016 – Oct 25, 2016

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

cover i2c: Fix module autoload for some i2c busses platform drivers

Hello Wolfram,

I noticed that module autoload won't be working in some of the i2c busses drivers. This patch series contains the fixes for these.

Best regards,
Javier

Javier Martinez Canillas (4):
i2c: jz4780: Fix module autoload
i2c: xlp9xx: Fix module autoload
i2c: xlr: Fix module autoload for OF registration
i2c: digicolor: Fix module autoload

 drivers/i2c/busses/i2c-digicolor.c | 1 +
 drivers/i2c/busses/i2c-jz4780.c    | 1 +
 drivers/i2c/busses/i2c-xlp9xx.c    | 1 +
 drivers/i2c/busses/i2c-xlr.c       | 1 +
 4 files changed, 4 insertions(+)
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/4 i2c: jz4780: Fix module autoload

If the driver is built as a module, autoload won't work because the module alias information is not filled. So user-space can't match the registered device with the corresponding module.

Export the module alias information using the MODULE_DEVICE_TABLE() macro.

Before this patch:

$ modinfo drivers/i2c/busses/i2c-jz4780.ko | grep alias
$

After this patch:

$ modinfo drivers/i2c/busses/i2c-jz4780.ko | grep alias
alias:          of:N*T*Cingenic,jz4780-i2cC*
alias:          of:N*T*Cingenic,jz4780-i2c

---

 drivers/i2c/busses/i2c-jz4780.c | 1 +
 1 file changed, 1 insertion(+)
drivers/i2c/busses/i2c-jz4780.c +1 -0
index b8ea62105f42..30132c3957cd 100644
@@ -729,6 +729,7 @@ static const struct of_device_id jz4780_i2c_of_matches[] = {
 	{ .compatible = "ingenic,jz4780-i2c", },
 	{ /* sentinel */ }
 };
+MODULE_DEVICE_TABLE(of, jz4780_i2c_of_matches);
 
 static int jz4780_i2c_probe(struct platform_device *pdev)
 {
Signature · 1 line
2.7.4
#2 lore raw

PATCH 2/4 i2c: xlp9xx: Fix module autoload

In reply to Javier Martinez Canillas

If the driver is built as a module, autoload won't work because the module alias information is not filled. So user-space can't match the registered device with the corresponding module.

Export the module alias information using the MODULE_DEVICE_TABLE() macro.

Before this patch:

$ modinfo drivers/i2c/busses/i2c-xlp9xx.ko | grep alias
$

After this patch:

$ modinfo drivers/i2c/busses/i2c-xlp9xx.ko | grep alias
alias:          of:N*T*Cnetlogic,xlp980-i2cC*
alias:          of:N*T*Cnetlogic,xlp980-i2c

---

 drivers/i2c/busses/i2c-xlp9xx.c | 1 +
 1 file changed, 1 insertion(+)
drivers/i2c/busses/i2c-xlp9xx.c +1 -0
index 2a972ed7aa0d..e29ff37a43bd 100644
@@ -426,6 +426,7 @@ static const struct of_device_id xlp9xx_i2c_of_match[] = {
 	{ .compatible = "netlogic,xlp980-i2c", },
 	{ /* sentinel */ },
 };
+MODULE_DEVICE_TABLE(of, xlp9xx_i2c_of_match);
 
 #ifdef CONFIG_ACPI
 static const struct acpi_device_id xlp9xx_i2c_acpi_ids[] = {
Signature · 1 line
2.7.4
#3 lore raw

PATCH 3/4 i2c: xlr: Fix module autoload for OF registration

In reply to Javier Martinez Canillas

If the driver is built as a module, autoload won't work because the module alias information is not filled. So user-space can't match the registered device with the corresponding module.

Export the module alias information using the MODULE_DEVICE_TABLE() macro.

Before this patch:

$ modinfo drivers/i2c/busses/i2c-xlr.ko | grep alias
alias:          platform:xlr-i2cbus

After this patch:

$ modinfo drivers/i2c/busses/i2c-xlr.ko | grep alias
alias:          platform:xlr-i2cbus
alias:          of:N*T*Csigma,smp8642-i2cC*
alias:          of:N*T*Csigma,smp8642-i2c

---

 drivers/i2c/busses/i2c-xlr.c | 1 +
 1 file changed, 1 insertion(+)
drivers/i2c/busses/i2c-xlr.c +1 -0
index 0968f59b6df5..ad17d88d8573 100644
@@ -358,6 +358,7 @@ static const struct of_device_id xlr_i2c_dt_ids[] = {
 	},
 	{ }
 };
+MODULE_DEVICE_TABLE(of, xlr_i2c_dt_ids);
 
 static int xlr_i2c_probe(struct platform_device *pdev)
 {
Signature · 1 line
2.7.4
#4 lore raw

PATCH 4/4 i2c: digicolor: Fix module autoload

In reply to Javier Martinez Canillas

If the driver is built as a module, autoload won't work because the module alias information is not filled. So user-space can't match the registered device with the corresponding module.

Export the module alias information using the MODULE_DEVICE_TABLE() macro.

Before this patch:

$ modinfo drivers/i2c/busses/i2c-digicolor.ko | grep alias
$

After this patch:

$ modinfo drivers/i2c/busses/i2c-digicolor.ko | grep alias
alias:          of:N*T*Ccnxt,cx92755-i2cC*
alias:          of:N*T*Ccnxt,cx92755-i2c

---

 drivers/i2c/busses/i2c-digicolor.c | 1 +
 1 file changed, 1 insertion(+)
drivers/i2c/busses/i2c-digicolor.c +1 -0
index 9604024e0eb0..49f2084f7bb5 100644
@@ -368,6 +368,7 @@ static const struct of_device_id dc_i2c_match[] = {
 	{ .compatible = "cnxt,cx92755-i2c" },
 	{ },
 };
+MODULE_DEVICE_TABLE(of, dc_i2c_match);
 
 static struct platform_driver dc_i2c_driver = {
 	.probe   = dc_i2c_probe,
Signature · 1 line
2.7.4
maintainer Acked-by on v1 4/4
#5 lore raw

Re: [PATCH 4/4] i2c: digicolor: Fix module autoload

Hi Javier Martinez Canillas,

Quoted 11 lines · Javier Martinez Canillas

If the driver is built as a module, autoload won't work because the module alias information is not filled. So user-space can't match the registered device with the corresponding module.

Export the module alias information using the MODULE_DEVICE_TABLE() macro.

Before this patch:

$ modinfo drivers/i2c/busses/i2c-digicolor.ko | grep alias
$
Quoted 7 lines

After this patch:

$ modinfo drivers/i2c/busses/i2c-digicolor.ko | grep alias
alias:          of:N*T*Ccnxt,cx92755-i2cC*
alias:          of:N*T*Ccnxt,cx92755-i2c

Thanks,
baruch

Quoted 15 lines
 drivers/i2c/busses/i2c-digicolor.c | 1 +
 1 file changed, 1 insertion(+)
drivers/i2c/busses/i2c-digicolor.c +1 -0
index 9604024e0eb0..49f2084f7bb5 100644
@@ -368,6 +368,7 @@ static const struct of_device_id dc_i2c_match[] = {
 	{ .compatible = "cnxt,cx92755-i2c" },
 	{ },
 };
+MODULE_DEVICE_TABLE(of, dc_i2c_match);
 
 static struct platform_driver dc_i2c_driver = {
 	.probe   = dc_i2c_probe,
Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
Applied
#6 lore raw
In reply to Javier Martinez Canillas
Quoted 7 lines · Javier Martinez Canillas

Hello Wolfram,

I noticed that module autoload won't be working in some of the i2c busses drivers. This patch series contains the fixes for these.

Best regards,
Javier

Applied to for-current, thank you very much for doing this subsystem-wide!

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20161025/a53437d0/attachment.sig>