[PATCH] platform/x86: int3472: make common part a separate module

Arnd Bergmann posted 1 patch 1 year, 6 months ago
drivers/platform/x86/intel/int3472/Makefile | 9 ++++++---
drivers/platform/x86/intel/int3472/common.c | 7 +++++++
2 files changed, 13 insertions(+), 3 deletions(-)
[PATCH] platform/x86: int3472: make common part a separate module
Posted by Arnd Bergmann 1 year, 6 months ago
From: Arnd Bergmann <arnd@arndb.de>

Linking an object file into multiple modules is not supported
and causes a W=1 warning:

scripts/Makefile.build:236: drivers/platform/x86/intel/int3472/Makefile: common.o is added to multiple modules: intel_skl_int3472_discrete intel_skl_int3472_tps68470

Split out the common part here into a separate module to make it
more reliable.

Fixes: a2f9fbc247ee ("platform/x86: int3472: Split into 2 drivers")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 drivers/platform/x86/intel/int3472/Makefile | 9 ++++++---
 drivers/platform/x86/intel/int3472/common.c | 7 +++++++
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/drivers/platform/x86/intel/int3472/Makefile b/drivers/platform/x86/intel/int3472/Makefile
index 9f16cb514397..a8aba07bf1dc 100644
--- a/drivers/platform/x86/intel/int3472/Makefile
+++ b/drivers/platform/x86/intel/int3472/Makefile
@@ -1,4 +1,7 @@
 obj-$(CONFIG_INTEL_SKL_INT3472)		+= intel_skl_int3472_discrete.o \
-					   intel_skl_int3472_tps68470.o
-intel_skl_int3472_discrete-y		:= discrete.o clk_and_regulator.o led.o common.o
-intel_skl_int3472_tps68470-y		:= tps68470.o tps68470_board_data.o common.o
+					   intel_skl_int3472_tps68470.o \
+					   intel_skl_int3472_common.o
+intel_skl_int3472_discrete-y		:= discrete.o clk_and_regulator.o led.o
+intel_skl_int3472_tps68470-y		:= tps68470.o tps68470_board_data.o
+
+intel_skl_int3472_common-y		+= common.o
diff --git a/drivers/platform/x86/intel/int3472/common.c b/drivers/platform/x86/intel/int3472/common.c
index 9db2bb0bbba4..8e4a782b2c35 100644
--- a/drivers/platform/x86/intel/int3472/common.c
+++ b/drivers/platform/x86/intel/int3472/common.c
@@ -29,6 +29,7 @@ union acpi_object *skl_int3472_get_acpi_buffer(struct acpi_device *adev, char *i
 
 	return obj;
 }
+EXPORT_SYMBOL_GPL(skl_int3472_get_acpi_buffer);
 
 int skl_int3472_fill_cldb(struct acpi_device *adev, struct int3472_cldb *cldb)
 {
@@ -52,6 +53,7 @@ int skl_int3472_fill_cldb(struct acpi_device *adev, struct int3472_cldb *cldb)
 	kfree(obj);
 	return ret;
 }
+EXPORT_SYMBOL_GPL(skl_int3472_fill_cldb);
 
 /* sensor_adev_ret may be NULL, name_ret must not be NULL */
 int skl_int3472_get_sensor_adev_and_name(struct device *dev,
@@ -80,3 +82,8 @@ int skl_int3472_get_sensor_adev_and_name(struct device *dev,
 
 	return ret;
 }
+EXPORT_SYMBOL_GPL(skl_int3472_get_sensor_adev_and_name);
+
+MODULE_DESCRIPTION("Intel SkyLake INT3472 ACPI Device Driver library");
+MODULE_AUTHOR("Daniel Scally <djrscally@gmail.com>");
+MODULE_LICENSE("GPL v2");
-- 
2.39.2
Re: [PATCH] platform/x86: int3472: make common part a separate module
Posted by Hans de Goede 1 year, 4 months ago
Hi,

On 5/29/24 11:49 AM, Arnd Bergmann wrote:
> From: Arnd Bergmann <arnd@arndb.de>
> 
> Linking an object file into multiple modules is not supported
> and causes a W=1 warning:
> 
> scripts/Makefile.build:236: drivers/platform/x86/intel/int3472/Makefile: common.o is added to multiple modules: intel_skl_int3472_discrete intel_skl_int3472_tps68470
> 
> Split out the common part here into a separate module to make it
> more reliable.
> 
> Fixes: a2f9fbc247ee ("platform/x86: int3472: Split into 2 drivers")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>

Thank you for your patch, I've applied this patch to my review-hans 
branch:
https://git.kernel.org/pub/scm/linux/kernel/git/pdx86/platform-drivers-x86.git/log/?h=review-hans

I've fixed the following checkpatch warning while applying this:

WARNING: Prefer "GPL" over "GPL v2" - see commit bf7fbeeae6db ("module: Cure the MODULE_LICENSE "GPL" vs. "GPL v2" bogosity")

Once I've run some tests on this branch the patches there will be
added to the platform-drivers-x86/for-next branch and eventually
will be included in the pdx86 pull-request to Linus for the next
merge-window.

Regards,

Hans



> ---
>  drivers/platform/x86/intel/int3472/Makefile | 9 ++++++---
>  drivers/platform/x86/intel/int3472/common.c | 7 +++++++
>  2 files changed, 13 insertions(+), 3 deletions(-)
> 
> diff --git a/drivers/platform/x86/intel/int3472/Makefile b/drivers/platform/x86/intel/int3472/Makefile
> index 9f16cb514397..a8aba07bf1dc 100644
> --- a/drivers/platform/x86/intel/int3472/Makefile
> +++ b/drivers/platform/x86/intel/int3472/Makefile
> @@ -1,4 +1,7 @@
>  obj-$(CONFIG_INTEL_SKL_INT3472)		+= intel_skl_int3472_discrete.o \
> -					   intel_skl_int3472_tps68470.o
> -intel_skl_int3472_discrete-y		:= discrete.o clk_and_regulator.o led.o common.o
> -intel_skl_int3472_tps68470-y		:= tps68470.o tps68470_board_data.o common.o
> +					   intel_skl_int3472_tps68470.o \
> +					   intel_skl_int3472_common.o
> +intel_skl_int3472_discrete-y		:= discrete.o clk_and_regulator.o led.o
> +intel_skl_int3472_tps68470-y		:= tps68470.o tps68470_board_data.o
> +
> +intel_skl_int3472_common-y		+= common.o
> diff --git a/drivers/platform/x86/intel/int3472/common.c b/drivers/platform/x86/intel/int3472/common.c
> index 9db2bb0bbba4..8e4a782b2c35 100644
> --- a/drivers/platform/x86/intel/int3472/common.c
> +++ b/drivers/platform/x86/intel/int3472/common.c
> @@ -29,6 +29,7 @@ union acpi_object *skl_int3472_get_acpi_buffer(struct acpi_device *adev, char *i
>  
>  	return obj;
>  }
> +EXPORT_SYMBOL_GPL(skl_int3472_get_acpi_buffer);
>  
>  int skl_int3472_fill_cldb(struct acpi_device *adev, struct int3472_cldb *cldb)
>  {
> @@ -52,6 +53,7 @@ int skl_int3472_fill_cldb(struct acpi_device *adev, struct int3472_cldb *cldb)
>  	kfree(obj);
>  	return ret;
>  }
> +EXPORT_SYMBOL_GPL(skl_int3472_fill_cldb);
>  
>  /* sensor_adev_ret may be NULL, name_ret must not be NULL */
>  int skl_int3472_get_sensor_adev_and_name(struct device *dev,
> @@ -80,3 +82,8 @@ int skl_int3472_get_sensor_adev_and_name(struct device *dev,
>  
>  	return ret;
>  }
> +EXPORT_SYMBOL_GPL(skl_int3472_get_sensor_adev_and_name);
> +
> +MODULE_DESCRIPTION("Intel SkyLake INT3472 ACPI Device Driver library");
> +MODULE_AUTHOR("Daniel Scally <djrscally@gmail.com>");
> +MODULE_LICENSE("GPL v2");
Re: [PATCH] platform/x86: int3472: make common part a separate module
Posted by Andy Shevchenko 1 year, 6 months ago
On Wed, May 29, 2024 at 12:50 PM Arnd Bergmann <arnd@kernel.org> wrote:
>
> From: Arnd Bergmann <arnd@arndb.de>
>
> Linking an object file into multiple modules is not supported
> and causes a W=1 warning:
>
> scripts/Makefile.build:236: drivers/platform/x86/intel/int3472/Makefile: common.o is added to multiple modules: intel_skl_int3472_discrete intel_skl_int3472_tps68470
>
> Split out the common part here into a separate module to make it
> more reliable.

...

>  obj-$(CONFIG_INTEL_SKL_INT3472)                += intel_skl_int3472_discrete.o \
> -                                          intel_skl_int3472_tps68470.o

> +                                          intel_skl_int3472_tps68470.o \
> +                                          intel_skl_int3472_common.o

A nit: Can this be put above instead?

...

> +EXPORT_SYMBOL_GPL(skl_int3472_get_sensor_adev_and_name);

Are these namespaced?

-- 
With Best Regards,
Andy Shevchenko