[PATCH] ASoC: loongson: make loongson-i2s.o a separate module

Arnd Bergmann posted 1 patch 1 month, 1 week ago
sound/soc/loongson/Makefile       | 10 ++++++----
sound/soc/loongson/loongson_i2s.c |  5 +++++
2 files changed, 11 insertions(+), 4 deletions(-)
[PATCH] ASoC: loongson: make loongson-i2s.o a separate module
Posted by Arnd Bergmann 1 month, 1 week ago
From: Arnd Bergmann <arnd@arndb.de>

An object file should not be linked into multiple modules and/or
vmlinux:

scripts/Makefile.build:221: /home/arnd/arm-soc/sound/soc/loongson/Makefile: loongson_i2s.o is added to multiple modules: snd-soc-loongson-i2s-pci snd-soc-loongson-i2s-plat

Change this one to make it a library module with two exported symbols
that will work in any configuration.

Fixes: ba4c5fad598c ("ASoC: loongson: Add I2S controller driver as platform device")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
---
 sound/soc/loongson/Makefile       | 10 ++++++----
 sound/soc/loongson/loongson_i2s.c |  5 +++++
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/sound/soc/loongson/Makefile b/sound/soc/loongson/Makefile
index f396259244a3..c0cb1acb36e3 100644
--- a/sound/soc/loongson/Makefile
+++ b/sound/soc/loongson/Makefile
@@ -1,10 +1,12 @@
 # SPDX-License-Identifier: GPL-2.0
 #Platform Support
-snd-soc-loongson-i2s-pci-y := loongson_i2s_pci.o loongson_i2s.o loongson_dma.o
-obj-$(CONFIG_SND_SOC_LOONGSON_I2S_PCI) += snd-soc-loongson-i2s-pci.o
+snd-soc-loongson-i2s-pci-y := loongson_i2s_pci.o loongson_dma.o
+obj-$(CONFIG_SND_SOC_LOONGSON_I2S_PCI) += snd-soc-loongson-i2s-pci.o snd-soc-loongson-i2s.o
 
-snd-soc-loongson-i2s-plat-y := loongson_i2s_plat.o loongson_i2s.o
-obj-$(CONFIG_SND_SOC_LOONGSON_I2S_PLATFORM) += snd-soc-loongson-i2s-plat.o
+snd-soc-loongson-i2s-plat-y := loongson_i2s_plat.o
+obj-$(CONFIG_SND_SOC_LOONGSON_I2S_PLATFORM) += snd-soc-loongson-i2s-plat.o snd-soc-loongson-i2s.o
+
+snd-soc-loongson-i2s-y := loongson_i2s.o
 
 #Machine Support
 snd-soc-loongson-card-y := loongson_card.o
diff --git a/sound/soc/loongson/loongson_i2s.c b/sound/soc/loongson/loongson_i2s.c
index 40bbf3205391..e8852a30f213 100644
--- a/sound/soc/loongson/loongson_i2s.c
+++ b/sound/soc/loongson/loongson_i2s.c
@@ -246,6 +246,7 @@ struct snd_soc_dai_driver loongson_i2s_dai = {
 	.ops = &loongson_i2s_dai_ops,
 	.symmetric_rate = 1,
 };
+EXPORT_SYMBOL_GPL(loongson_i2s_dai);
 
 static int i2s_suspend(struct device *dev)
 {
@@ -268,3 +269,7 @@ static int i2s_resume(struct device *dev)
 const struct dev_pm_ops loongson_i2s_pm = {
 	SYSTEM_SLEEP_PM_OPS(i2s_suspend, i2s_resume)
 };
+EXPORT_SYMBOL_GPL(loongson_i2s_pm);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("Common functions for loongson I2S controller driver");
-- 
2.39.5
Re: [PATCH] ASoC: loongson: make loongson-i2s.o a separate module
Posted by Mark Brown 1 month, 1 week ago
On Tue, 15 Oct 2024 15:09:54 +0000, Arnd Bergmann wrote:
> An object file should not be linked into multiple modules and/or
> vmlinux:
> 
> scripts/Makefile.build:221: /home/arnd/arm-soc/sound/soc/loongson/Makefile: loongson_i2s.o is added to multiple modules: snd-soc-loongson-i2s-pci snd-soc-loongson-i2s-plat
> 
> Change this one to make it a library module with two exported symbols
> that will work in any configuration.
> 
> [...]

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] ASoC: loongson: make loongson-i2s.o a separate module
      commit: 43916d9288460bd76d47128898fdf5972dfdb87f

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark
Re: [PATCH] ASoC: loongson: make loongson-i2s.o a separate module
Posted by 周彬彬 1 month, 1 week ago
Hi Arnd:

Thanks for your patch.

> -----Original Messages-----
> From: "Arnd Bergmann" <arnd@kernel.org>
> Send time:Tuesday, 10/15/2024 23:09:54
> To: "Liam Girdwood" <lgirdwood@gmail.com>, "Mark Brown" <broonie@kernel.org>, "Jaroslav Kysela" <perex@perex.cz>, "Takashi Iwai" <tiwai@suse.com>, "Binbin Zhou" <zhoubinbin@loongson.cn>
> Cc: "Arnd Bergmann" <arnd@arndb.de>, tangbin <tangbin@cmss.chinamobile.com>, linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org
> Subject: [PATCH] ASoC: loongson: make loongson-i2s.o a separate module
> 
> From: Arnd Bergmann <arnd@arndb.de>
> 
> An object file should not be linked into multiple modules and/or
> vmlinux:
> 
> scripts/Makefile.build:221: /home/arnd/arm-soc/sound/soc/loongson/Makefile: loongson_i2s.o is added to multiple modules: snd-soc-loongson-i2s-pci snd-soc-loongson-i2s-plat

I would like to ask for some advice.
I didn't notice this warning before when I submitted the patch, is there some specific compilation option that needs to be turned on?

#
# SoC Audio for Loongson CPUs
#
CONFIG_SND_SOC_LOONGSON_CARD=m
CONFIG_SND_SOC_LOONGSON_I2S_PCI=m
CONFIG_SND_SOC_LOONGSON_I2S_PLATFORM=m
# end of SoC Audio for Loongson CPUs

Thanks.
Binbin
> 
> Change this one to make it a library module with two exported symbols
> that will work in any configuration.
> 
> Fixes: ba4c5fad598c ("ASoC: loongson: Add I2S controller driver as platform device")
> Signed-off-by: Arnd Bergmann <arnd@arndb.de>
> ---
>  sound/soc/loongson/Makefile       | 10 ++++++----
>  sound/soc/loongson/loongson_i2s.c |  5 +++++
>  2 files changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/sound/soc/loongson/Makefile b/sound/soc/loongson/Makefile
> index f396259244a3..c0cb1acb36e3 100644
> --- a/sound/soc/loongson/Makefile
> +++ b/sound/soc/loongson/Makefile
> @@ -1,10 +1,12 @@
>  # SPDX-License-Identifier: GPL-2.0
>  #Platform Support
> -snd-soc-loongson-i2s-pci-y := loongson_i2s_pci.o loongson_i2s.o loongson_dma.o
> -obj-$(CONFIG_SND_SOC_LOONGSON_I2S_PCI) += snd-soc-loongson-i2s-pci.o
> +snd-soc-loongson-i2s-pci-y := loongson_i2s_pci.o loongson_dma.o
> +obj-$(CONFIG_SND_SOC_LOONGSON_I2S_PCI) += snd-soc-loongson-i2s-pci.o snd-soc-loongson-i2s.o
>  
> -snd-soc-loongson-i2s-plat-y := loongson_i2s_plat.o loongson_i2s.o
> -obj-$(CONFIG_SND_SOC_LOONGSON_I2S_PLATFORM) += snd-soc-loongson-i2s-plat.o
> +snd-soc-loongson-i2s-plat-y := loongson_i2s_plat.o
> +obj-$(CONFIG_SND_SOC_LOONGSON_I2S_PLATFORM) += snd-soc-loongson-i2s-plat.o snd-soc-loongson-i2s.o
> +
> +snd-soc-loongson-i2s-y := loongson_i2s.o
>  
>  #Machine Support
>  snd-soc-loongson-card-y := loongson_card.o
> diff --git a/sound/soc/loongson/loongson_i2s.c b/sound/soc/loongson/loongson_i2s.c
> index 40bbf3205391..e8852a30f213 100644
> --- a/sound/soc/loongson/loongson_i2s.c
> +++ b/sound/soc/loongson/loongson_i2s.c
> @@ -246,6 +246,7 @@ struct snd_soc_dai_driver loongson_i2s_dai = {
>  	.ops = &loongson_i2s_dai_ops,
>  	.symmetric_rate = 1,
>  };
> +EXPORT_SYMBOL_GPL(loongson_i2s_dai);
>  
>  static int i2s_suspend(struct device *dev)
>  {
> @@ -268,3 +269,7 @@ static int i2s_resume(struct device *dev)
>  const struct dev_pm_ops loongson_i2s_pm = {
>  	SYSTEM_SLEEP_PM_OPS(i2s_suspend, i2s_resume)
>  };
> +EXPORT_SYMBOL_GPL(loongson_i2s_pm);
> +
> +MODULE_LICENSE("GPL");
> +MODULE_DESCRIPTION("Common functions for loongson I2S controller driver");
> -- 
> 2.39.5


本邮件及其附件含有龙芯中科的商业秘密信息,仅限于发送给上面地址中列出的个人或群组。禁止任何其他人以任何形式使用(包括但不限于全部或部分地泄露、复制或散发)本邮件及其附件中的信息。如果您错收本邮件,请您立即电话或邮件通知发件人并删除本邮件。 
This email and its attachments contain confidential information from Loongson Technology , which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this email in error, please notify the sender by phone or email immediately and delete it. 


Re: [PATCH] ASoC: loongson: make loongson-i2s.o a separate module
Posted by Arnd Bergmann 1 month, 1 week ago
On Wed, Oct 16, 2024, at 06:56, 周彬彬 wrote:
>> -----Original Messages-----
>> From: "Arnd Bergmann" <arnd@kernel.org>
>> Send time:Tuesday, 10/15/2024 23:09:54
>> To: "Liam Girdwood" <lgirdwood@gmail.com>, "Mark Brown" <broonie@kernel.org>, "Jaroslav Kysela" <perex@perex.cz>, "Takashi Iwai" <tiwai@suse.com>, "Binbin Zhou" <zhoubinbin@loongson.cn>
>> Cc: "Arnd Bergmann" <arnd@arndb.de>, tangbin <tangbin@cmss.chinamobile.com>, linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org
>> Subject: [PATCH] ASoC: loongson: make loongson-i2s.o a separate module
>> 
>> From: Arnd Bergmann <arnd@arndb.de>
>> 
>> An object file should not be linked into multiple modules and/or
>> vmlinux:
>> 
>> scripts/Makefile.build:221: /home/arnd/arm-soc/sound/soc/loongson/Makefile: loongson_i2s.o is added to multiple modules: snd-soc-loongson-i2s-pci snd-soc-loongson-i2s-plat
>
> I would like to ask for some advice.
> I didn't notice this warning before when I submitted the patch, is 
> there some specific compilation option that needs to be turned on?

I think this is one of the warnings that are currently
only enabled when building with "make W=1". I have this enabled
by default as I hope to make it a default warning soon.

In general, I would recommend to build new driver code with W=1
before submitting. 

     Arnd
Re: [PATCH] ASoC: loongson: make loongson-i2s.o a separate module
Posted by Binbin Zhou 1 month, 1 week ago
On Wed, Oct 16, 2024 at 1:02 PM Arnd Bergmann <arnd@arndb.de> wrote:
>
> On Wed, Oct 16, 2024, at 06:56, 周彬彬 wrote:
> >> -----Original Messages-----
> >> From: "Arnd Bergmann" <arnd@kernel.org>
> >> Send time:Tuesday, 10/15/2024 23:09:54
> >> To: "Liam Girdwood" <lgirdwood@gmail.com>, "Mark Brown" <broonie@kernel.org>, "Jaroslav Kysela" <perex@perex.cz>, "Takashi Iwai" <tiwai@suse.com>, "Binbin Zhou" <zhoubinbin@loongson.cn>
> >> Cc: "Arnd Bergmann" <arnd@arndb.de>, tangbin <tangbin@cmss.chinamobile.com>, linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org
> >> Subject: [PATCH] ASoC: loongson: make loongson-i2s.o a separate module
> >>
> >> From: Arnd Bergmann <arnd@arndb.de>
> >>
> >> An object file should not be linked into multiple modules and/or
> >> vmlinux:
> >>
> >> scripts/Makefile.build:221: /home/arnd/arm-soc/sound/soc/loongson/Makefile: loongson_i2s.o is added to multiple modules: snd-soc-loongson-i2s-pci snd-soc-loongson-i2s-plat
> >
> > I would like to ask for some advice.
> > I didn't notice this warning before when I submitted the patch, is
> > there some specific compilation option that needs to be turned on?
>
> I think this is one of the warnings that are currently
> only enabled when building with "make W=1". I have this enabled
> by default as I hope to make it a default warning soon.
>
> In general, I would recommend to build new driver code with W=1
> before submitting.
>

Okay, thanks for the advice.
I'll pay special attention to it when submitting code in the future.

Thanks.
Binbin
>      Arnd