i2c: pasemi: split driver into two separate modules

Message ID 20240212111933.963985-1-arnd@kernel.org
State New
Headers
Series i2c: pasemi: split driver into two separate modules |

Commit Message

Arnd Bergmann Feb. 12, 2024, 11:19 a.m. UTC
  From: Arnd Bergmann <arnd@arndb.de>

On powerpc, it is possible to compile test both the new apple (arm) and
old pasemi (powerpc) drivers for the i2c hardware at the same time,
which leads to a warning about linking the same object file twice:

scripts/Makefile.build:244: drivers/i2c/busses/Makefile: i2c-pasemi-core.o is added to multiple modules: i2c-apple i2c-pasemi

Rework the driver to have an explicit helper module, letting Kbuild
take care of whether this should be built-in or a loadable driver.

Fixes: 9bc5f4f660ff ("i2c: pasemi: Split pci driver to its own file")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/i2c/busses/Makefile          | 6 ++----
 drivers/i2c/busses/i2c-pasemi-core.c | 6 ++++++
 2 files changed, 8 insertions(+), 4 deletions(-)
  

Comments

Sven Peter Feb. 13, 2024, 7:13 p.m. UTC | #1
> 
> On 12. Feb 2024, at 12:19, Arnd Bergmann <arnd@kernel.org> wrote:
> 
> From: Arnd Bergmann <arnd@arndb.de>
> 
> On powerpc, it is possible to compile test both the new apple (arm) and
> old pasemi (powerpc) drivers for the i2c hardware at the same time,
> which leads to a warning about linking the same object file twice:
> 
> scripts/Makefile.build:244: drivers/i2c/busses/Makefile: i2c-pasemi-core.o is added to multiple modules: i2c-apple i2c-pasemi
> 
> Rework the driver to have an explicit helper module, letting Kbuild
> take care of whether this should be built-in or a loadable driver.
> 
> Fixes: 9bc5f4f660ff ("i2c: pasemi: Split pci driver to its own file")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---

Reviewed-by: Sven Peter <sven@svenpeter.dev>

thanks, totally forgot about this!


Sven


> drivers/i2c/busses/Makefile          | 6 ++----
> drivers/i2c/busses/i2c-pasemi-core.c | 6 ++++++
> 2 files changed, 8 insertions(+), 4 deletions(-)
> 
> diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
> index 3757b9391e60..aa0ee8ecd6f2 100644
> --- a/drivers/i2c/busses/Makefile
> +++ b/drivers/i2c/busses/Makefile
> @@ -90,10 +90,8 @@ obj-$(CONFIG_I2C_NPCM)        += i2c-npcm7xx.o
> obj-$(CONFIG_I2C_OCORES)    += i2c-ocores.o
> obj-$(CONFIG_I2C_OMAP)        += i2c-omap.o
> obj-$(CONFIG_I2C_OWL)        += i2c-owl.o
> -i2c-pasemi-objs := i2c-pasemi-core.o i2c-pasemi-pci.o
> -obj-$(CONFIG_I2C_PASEMI)    += i2c-pasemi.o
> -i2c-apple-objs := i2c-pasemi-core.o i2c-pasemi-platform.o
> -obj-$(CONFIG_I2C_APPLE)    += i2c-apple.o
> +obj-$(CONFIG_I2C_PASEMI)    += i2c-pasemi-core.o i2c-pasemi-pci.o
> +obj-$(CONFIG_I2C_APPLE)        += i2c-pasemi-core.o i2c-pasemi-platformo
> obj-$(CONFIG_I2C_PCA_PLATFORM)    += i2c-pca-platform.o
> obj-$(CONFIG_I2C_PNX)        += i2c-pnx.o
> obj-$(CONFIG_I2C_PXA)        += i2c-pxa.o
> diff --git a/drivers/i2c/busses/i2c-pasemi-core.c b/drivers/i2c/busses/i2c-pasemi-core.c
> index 7d54a9f34c74..bd8becbdeeb2 100644
> --- a/drivers/i2c/busses/i2c-pasemi-core.c
> +++ b/drivers/i2c/busses/i2c-pasemi-core.c
> @@ -369,6 +369,7 @@ int pasemi_i2c_common_probe(struct pasemi_smbus *smbus)
> 
>   return 0;
> }
> +EXPORT_SYMBOL_GPL(pasemi_i2c_common_probe);
> 
> irqreturn_t pasemi_irq_handler(int irq, void *dev_id)
> {
> @@ -378,3 +379,8 @@ irqreturn_t pasemi_irq_handler(int irq, void *dev_id)
>   complete(&smbus->irq_completion);
>   return IRQ_HANDLED;
> }
> +EXPORT_SYMBOL_GPL(pasemi_irq_handler);
> +
> +MODULE_LICENSE("GPL");
> +MODULE_AUTHOR("Olof Johansson <olof@lixom.net>");
> +MODULE_DESCRIPTION("PA Semi PWRficient SMBus driver");
> --
> 2.39.2
  
Andi Shyti Feb. 14, 2024, 9:42 p.m. UTC | #2
Hi

On Mon, 12 Feb 2024 12:19:04 +0100, Arnd Bergmann wrote:
> On powerpc, it is possible to compile test both the new apple (arm) and
> old pasemi (powerpc) drivers for the i2c hardware at the same time,
> which leads to a warning about linking the same object file twice:
> 
> scripts/Makefile.build:244: drivers/i2c/busses/Makefile: i2c-pasemi-core.o is added to multiple modules: i2c-apple i2c-pasemi
> 
> Rework the driver to have an explicit helper module, letting Kbuild
> take care of whether this should be built-in or a loadable driver.
> 
> [...]

Applied to i2c/i2c-host-fixes on

git://git.kernel.org/pub/scm/linux/kernel/git/andi.shyti/linux.git

Thank you,
Andi

Patches applied
===============
[1/1] i2c: pasemi: split driver into two separate modules
      commit: 3fab8a74c71a4ba32b2fa1dca7340f9107ff8dfc
  

Patch

diff --git a/drivers/i2c/busses/Makefile b/drivers/i2c/busses/Makefile
index 3757b9391e60..aa0ee8ecd6f2 100644
--- a/drivers/i2c/busses/Makefile
+++ b/drivers/i2c/busses/Makefile
@@ -90,10 +90,8 @@  obj-$(CONFIG_I2C_NPCM)		+= i2c-npcm7xx.o
 obj-$(CONFIG_I2C_OCORES)	+= i2c-ocores.o
 obj-$(CONFIG_I2C_OMAP)		+= i2c-omap.o
 obj-$(CONFIG_I2C_OWL)		+= i2c-owl.o
-i2c-pasemi-objs := i2c-pasemi-core.o i2c-pasemi-pci.o
-obj-$(CONFIG_I2C_PASEMI)	+= i2c-pasemi.o
-i2c-apple-objs := i2c-pasemi-core.o i2c-pasemi-platform.o
-obj-$(CONFIG_I2C_APPLE)	+= i2c-apple.o
+obj-$(CONFIG_I2C_PASEMI)	+= i2c-pasemi-core.o i2c-pasemi-pci.o
+obj-$(CONFIG_I2C_APPLE)		+= i2c-pasemi-core.o i2c-pasemi-platform.o
 obj-$(CONFIG_I2C_PCA_PLATFORM)	+= i2c-pca-platform.o
 obj-$(CONFIG_I2C_PNX)		+= i2c-pnx.o
 obj-$(CONFIG_I2C_PXA)		+= i2c-pxa.o
diff --git a/drivers/i2c/busses/i2c-pasemi-core.c b/drivers/i2c/busses/i2c-pasemi-core.c
index 7d54a9f34c74..bd8becbdeeb2 100644
--- a/drivers/i2c/busses/i2c-pasemi-core.c
+++ b/drivers/i2c/busses/i2c-pasemi-core.c
@@ -369,6 +369,7 @@  int pasemi_i2c_common_probe(struct pasemi_smbus *smbus)
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(pasemi_i2c_common_probe);
 
 irqreturn_t pasemi_irq_handler(int irq, void *dev_id)
 {
@@ -378,3 +379,8 @@  irqreturn_t pasemi_irq_handler(int irq, void *dev_id)
 	complete(&smbus->irq_completion);
 	return IRQ_HANDLED;
 }
+EXPORT_SYMBOL_GPL(pasemi_irq_handler);
+
+MODULE_LICENSE("GPL");
+MODULE_AUTHOR("Olof Johansson <olof@lixom.net>");
+MODULE_DESCRIPTION("PA Semi PWRficient SMBus driver");