LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
From: Takashi Iwai <tiwai@suse.de>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Cc: alsa-devel@alsa-project.org, rdunlap@infradead.org,
	YueHaibing <yuehaibing@huawei.com>,
	linux-kernel@vger.kernel.org, lgirdwood@gmail.com,
	broonie@kernel.org
Subject: Re: [alsa-devel] [PATCH] ASoC: SOF: Fix build error with CONFIG_SND_SOC_SOF_NOCODEC=m
Date: Fri, 10 May 2019 18:57:16 +0200	[thread overview]
Message-ID: <s5h1s16memr.wl-tiwai@suse.de> (raw)
In-Reply-To: <00aa3055-0b97-3ac4-f588-3665bfcb5811@linux.intel.com>

On Fri, 10 May 2019 17:29:58 +0200,
Pierre-Louis Bossart wrote:
> 
> 
> 
> On 5/10/19 8:56 AM, Takashi Iwai wrote:
> > On Fri, 10 May 2019 15:41:10 +0200,
> > Takashi Iwai wrote:
> >>
> >> On Fri, 10 May 2019 15:34:03 +0200,
> >> Pierre-Louis Bossart wrote:
> >>>
> >>> On 5/10/19 8:04 AM, Takashi Iwai wrote:
> >>>> On Fri, 10 May 2019 14:56:29 +0200,
> >>>> Pierre-Louis Bossart wrote:
> >>>>>
> >>>>> On 5/10/19 2:12 AM, Takashi Iwai wrote:
> >>>>>> On Fri, 10 May 2019 04:36:57 +0200,
> >>>>>> YueHaibing wrote:
> >>>>>>>
> >>>>>>> Fix gcc build error while CONFIG_SND_SOC_SOF_NOCODEC=m
> >>>>>>>
> >>>>>>> sound/soc/sof/core.o: In function `snd_sof_device_probe':
> >>>>>>> core.c:(.text+0x4af): undefined reference to `sof_nocodec_setup'
> >>>>>>>
> >>>>>>> Change SND_SOC_SOF_NOCODEC to bool to fix this.
> >>>>>>>
> >>>>>>> Reported-by: Hulk Robot <hulkci@huawei.com>
> >>>>>>> Fixes: c16211d6226d ("ASoC: SOF: Add Sound Open Firmware driver core")
> >>>>>>> Signed-off-by: YueHaibing <yuehaibing@huawei.com>
> >>>>>>
> >>>>>> This change would break things severely.  This won't allow to build it
> >>>>>> as a module any longer.
> >>>>>
> >>>>> Isn't this fixed already?
> >>>>> See the patch  'ASoC: SOF: core: fix undefined nocodec reference' and
> >>>>> Takashi's follow-up to fix the unused variable warning.
> >>>>
> >>>> Possibly the problem still persists although I haven't seen through my
> >>>> local build tests with randconfig.  You can set SND_SOC_SOF=y and
> >>>> SND_SOC_NOCODEC=m, i.e. built-in sof-core while nocodec is a module.
> >>>
> >>> YueHiabing, can you share the config and SHA1 so that we can double check?
> >>>
> >>> If the problem persists, we can do something like
> >>>
> >>> config SND_SOF_NOCODEC_SUPPORT
> >>> 	bool "SOF nocodec mode support"
> >>>
> >>> config SND_SOF_NOCODEC
> >>> 	tristate
> >>>
> >>> confir SND_SOC_SOF
> >>> 	tristate
> >>> 	select SND_SOF_NOCODEC if SND_SOF_NOCODEC_SUPPORT
> >>>
> >>> that way you propagate the required dependencies
> >>
> >> Yes, that would work.  OTOH, I see no merit to build an extra module
> >> for nocodec.  nocodec.c can be built together with sof-core stuff.
> 
> the module has its benefits. Today nocodec includes all possible DAIs,
> I wanted to add module parameters to restrict things a bit for
> tests/debug. It'll be e.g. very helpful for SoundWire to avoid
> exposing the SSP DAIs.
> 
> Also nocodec is incompatible with hdaudio/hdmi support at the moment,
> we had all sorts of issues with suspend/resume.

Well, in the case of SOF, the core code calls directly
soc_nocodec_setup(), hence it's rather a direct link.  So it makes
little sense to make the nocodec code split from sof-core, unless the
nocodec code is used / linked by components other than SOF.  I doubt
the possibility because the current DAI is clearly only for SOF...

The module option can be still be there; it'll be applied just to
sof-core instead of sof-nocodec.


thanks,

Takashi

> 
> >
> > I mean a patch like below.
> >
> >
> > Takashi
> >
> > diff --git a/include/sound/sof.h b/include/sound/sof.h
> > index 4640566b54fe..1af70800f6dc 100644
> > --- a/include/sound/sof.h
> > +++ b/include/sound/sof.h
> > @@ -92,9 +92,4 @@ struct sof_dev_desc {
> >   	const struct sof_arch_ops *arch_ops;
> >   };
> >   -int sof_nocodec_setup(struct device *dev,
> > -		      struct snd_sof_pdata *sof_pdata,
> > -		      struct snd_soc_acpi_mach *mach,
> > -		      const struct sof_dev_desc *desc,
> > -		      const struct snd_sof_dsp_ops *ops);
> >   #endif
> > diff --git a/sound/soc/sof/Kconfig b/sound/soc/sof/Kconfig
> > index b204c65698f9..9c280c977d55 100644
> > --- a/sound/soc/sof/Kconfig
> > +++ b/sound/soc/sof/Kconfig
> > @@ -44,7 +44,7 @@ config SND_SOC_SOF_OPTIONS
> >   if SND_SOC_SOF_OPTIONS
> >     config SND_SOC_SOF_NOCODEC
> > -	tristate "SOF nocodec mode Support"
> > +	bool "SOF nocodec mode Support"
> >   	help
> >   	  This adds support for a dummy/nocodec machine driver fallback
> >   	  option if no known codec is detected. This is typically only
> > diff --git a/sound/soc/sof/Makefile b/sound/soc/sof/Makefile
> > index 8f14c9d2950b..09222be6d1b8 100644
> > --- a/sound/soc/sof/Makefile
> > +++ b/sound/soc/sof/Makefile
> > @@ -2,14 +2,12 @@
> >     snd-sof-objs := core.o ops.o loader.o ipc.o pcm.o pm.o debug.o
> > topology.o\
> >   		control.o trace.o utils.o
> > +snd-sof-$(CONFIG_SND_SOC_SOF_NOCODEC) += nocodec.o
> >     snd-sof-pci-objs := sof-pci-dev.o
> >   snd-sof-acpi-objs := sof-acpi-dev.o
> > -snd-sof-nocodec-objs := nocodec.o
> >     obj-$(CONFIG_SND_SOC_SOF) += snd-sof.o
> > -obj-$(CONFIG_SND_SOC_SOF_NOCODEC) += snd-sof-nocodec.o
> > -
> >     obj-$(CONFIG_SND_SOC_SOF_ACPI) += sof-acpi-dev.o
> >   obj-$(CONFIG_SND_SOC_SOF_PCI) += sof-pci-dev.o
> > diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
> > index 32105e0fabe8..744f7f465173 100644
> > --- a/sound/soc/sof/core.c
> > +++ b/sound/soc/sof/core.c
> > @@ -502,6 +502,18 @@ int snd_sof_device_remove(struct device *dev)
> >   }
> >   EXPORT_SYMBOL(snd_sof_device_remove);
> >   +static int __init snd_sof_init(void)
> > +{
> > +	return platform_driver_register(&sof_nocodec_audio);
> > +}
> > +module_init(snd_sof_init);
> > +
> > +static void __exit snd_sof_exit(void)
> > +{
> > +	platform_driver_unregister(&sof_nocodec_audio);
> > +}
> > +module_exit(snd_sof_exit);
> > +
> >   MODULE_AUTHOR("Liam Girdwood");
> >   MODULE_DESCRIPTION("Sound Open Firmware (SOF) Core");
> >   MODULE_LICENSE("Dual BSD/GPL");
> > diff --git a/sound/soc/sof/nocodec.c b/sound/soc/sof/nocodec.c
> > index f84b4344dcc3..11811591bd81 100644
> > --- a/sound/soc/sof/nocodec.c
> > +++ b/sound/soc/sof/nocodec.c
> > @@ -8,7 +8,6 @@
> >   // Author: Liam Girdwood <liam.r.girdwood@linux.intel.com>
> >   //
> >   -#include <linux/module.h>
> >   #include <sound/sof.h>
> >   #include "sof-priv.h"
> >   @@ -77,7 +76,6 @@ int sof_nocodec_setup(struct device *dev,
> >   				    &sof_nocodec_card);
> >   	return ret;
> >   }
> > -EXPORT_SYMBOL(sof_nocodec_setup);
> >     static int sof_nocodec_probe(struct platform_device *pdev)
> >   {
> > @@ -93,7 +91,7 @@ static int sof_nocodec_remove(struct platform_device *pdev)
> >   	return 0;
> >   }
> >   -static struct platform_driver sof_nocodec_audio = {
> > +struct platform_driver sof_nocodec_audio = {
> >   	.probe = sof_nocodec_probe,
> >   	.remove = sof_nocodec_remove,
> >   	.driver = {
> > @@ -101,9 +99,3 @@ static struct platform_driver sof_nocodec_audio = {
> >   		.pm = &snd_soc_pm_ops,
> >   	},
> >   };
> > -module_platform_driver(sof_nocodec_audio)
> > -
> > -MODULE_DESCRIPTION("ASoC sof nocodec");
> > -MODULE_AUTHOR("Liam Girdwood");
> > -MODULE_LICENSE("Dual BSD/GPL");
> > -MODULE_ALIAS("platform:sof-nocodec");
> > diff --git a/sound/soc/sof/sof-priv.h b/sound/soc/sof/sof-priv.h
> > index 1e85d6f9c5c3..3ae55d15820f 100644
> > --- a/sound/soc/sof/sof-priv.h
> > +++ b/sound/soc/sof/sof-priv.h
> > @@ -559,6 +559,17 @@ int snd_sof_init_trace_ipc(struct snd_sof_dev *sdev);
> >    */
> >   extern struct snd_compr_ops sof_compressed_ops;
> >   +/*
> > + * nocodec platform binding
> > + */
> > +extern struct platform_driver sof_nocodec_audio;
> > +
> > +int sof_nocodec_setup(struct device *dev,
> > +		      struct snd_sof_pdata *sof_pdata,
> > +		      struct snd_soc_acpi_mach *mach,
> > +		      const struct sof_dev_desc *desc,
> > +		      const struct snd_sof_dsp_ops *ops);
> > +
> >   /*
> >    * Kcontrols.
> >    */
> > _______________________________________________
> > Alsa-devel mailing list
> > Alsa-devel@alsa-project.org
> > https://mailman.alsa-project.org/mailman/listinfo/alsa-devel
> >
> 

  reply	other threads:[~2019-05-10 16:57 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-10  2:36 YueHaibing
2019-05-10  7:12 ` Takashi Iwai
2019-05-10 12:56   ` Pierre-Louis Bossart
2019-05-10 13:04     ` Takashi Iwai
2019-05-10 13:34       ` [alsa-devel] " Pierre-Louis Bossart
2019-05-10 13:41         ` Takashi Iwai
2019-05-10 13:56           ` Takashi Iwai
2019-05-10 15:29             ` Pierre-Louis Bossart
2019-05-10 16:57               ` Takashi Iwai [this message]
2019-05-10 17:56                 ` Pierre-Louis Bossart
2019-05-10 18:05                   ` Takashi Iwai
2019-05-10 13:09   ` YueHaibing
2019-05-10 13:29 ` [PATCH V2] " YueHaibing
2019-05-10 13:36   ` Pierre-Louis Bossart
2019-05-10 13:50     ` YueHaibing
2019-05-10 16:24       ` Pierre-Louis Bossart

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=s5h1s16memr.wl-tiwai@suse.de \
    --to=tiwai@suse.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pierre-louis.bossart@linux.intel.com \
    --cc=rdunlap@infradead.org \
    --cc=yuehaibing@huawei.com \
    --subject='Re: [alsa-devel] [PATCH] ASoC: SOF: Fix build error with CONFIG_SND_SOC_SOF_NOCODEC=m' \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).