2016-10-18 21:02:01

by Javier Martinez Canillas

[permalink] [raw]
Subject: [PATCH 0/4] 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(+)

--
2.7.4


2016-10-18 21:02:03

by Javier Martinez Canillas

[permalink] [raw]
Subject: [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

Signed-off-by: Javier Martinez Canillas <[email protected]>
---

drivers/i2c/busses/i2c-jz4780.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/i2c/busses/i2c-jz4780.c b/drivers/i2c/busses/i2c-jz4780.c
index b8ea62105f42..30132c3957cd 100644
--- a/drivers/i2c/busses/i2c-jz4780.c
+++ b/drivers/i2c/busses/i2c-jz4780.c
@@ -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)
{
--
2.7.4

2016-10-18 21:02:07

by Javier Martinez Canillas

[permalink] [raw]
Subject: [PATCH 2/4] i2c: xlp9xx: 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-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

Signed-off-by: Javier Martinez Canillas <[email protected]>
---

drivers/i2c/busses/i2c-xlp9xx.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/i2c/busses/i2c-xlp9xx.c b/drivers/i2c/busses/i2c-xlp9xx.c
index 2a972ed7aa0d..e29ff37a43bd 100644
--- a/drivers/i2c/busses/i2c-xlp9xx.c
+++ b/drivers/i2c/busses/i2c-xlp9xx.c
@@ -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[] = {
--
2.7.4

2016-10-18 21:02:15

by Javier Martinez Canillas

[permalink] [raw]
Subject: [PATCH 3/4] i2c: xlr: Fix module autoload for OF registration

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

Signed-off-by: Javier Martinez Canillas <[email protected]>
---

drivers/i2c/busses/i2c-xlr.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/i2c/busses/i2c-xlr.c b/drivers/i2c/busses/i2c-xlr.c
index 0968f59b6df5..ad17d88d8573 100644
--- a/drivers/i2c/busses/i2c-xlr.c
+++ b/drivers/i2c/busses/i2c-xlr.c
@@ -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)
{
--
2.7.4

2016-10-18 21:02:12

by Javier Martinez Canillas

[permalink] [raw]
Subject: [PATCH 4/4] i2c: digicolor: 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-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

Signed-off-by: Javier Martinez Canillas <[email protected]>

---

drivers/i2c/busses/i2c-digicolor.c | 1 +
1 file changed, 1 insertion(+)

diff --git a/drivers/i2c/busses/i2c-digicolor.c b/drivers/i2c/busses/i2c-digicolor.c
index 9604024e0eb0..49f2084f7bb5 100644
--- a/drivers/i2c/busses/i2c-digicolor.c
+++ b/drivers/i2c/busses/i2c-digicolor.c
@@ -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,
--
2.7.4

2016-10-19 05:05:45

by Baruch Siach

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

Hi Javier Martinez Canillas,

On Tue, Oct 18, 2016 at 06:01:48PM -0300, Javier Martinez Canillas wrote:
> 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
>
> Signed-off-by: Javier Martinez Canillas <[email protected]>

Acked-by: Baruch Siach <[email protected]>

Thanks,
baruch

> drivers/i2c/busses/i2c-digicolor.c | 1 +
> 1 file changed, 1 insertion(+)
>
> diff --git a/drivers/i2c/busses/i2c-digicolor.c b/drivers/i2c/busses/i2c-digicolor.c
> index 9604024e0eb0..49f2084f7bb5 100644
> --- a/drivers/i2c/busses/i2c-digicolor.c
> +++ b/drivers/i2c/busses/i2c-digicolor.c
> @@ -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,

--
http://baruch.siach.name/blog/ ~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- [email protected] - tel: +972.52.368.4656, http://www.tkos.co.il -

2016-10-25 09:32:09

by Wolfram Sang

[permalink] [raw]
Subject: Re: [PATCH 0/4] i2c: Fix module autoload for some i2c busses platform drivers

On Tue, Oct 18, 2016 at 06:01:44PM -0300, Javier Martinez Canillas wrote:
> 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!


Attachments:
(No filename) (334.00 B)
signature.asc (819.00 B)
Download all attachments