drivers/platform/x86/intel/int3472/Makefile | 9 ++++++--- drivers/platform/x86/intel/int3472/common.c | 7 +++++++ 2 files changed, 13 insertions(+), 3 deletions(-)
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
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");
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
© 2016 - 2025 Red Hat, Inc.