From: "Péter Ujfalusi" <peter.ujfalusi@linux.intel.com>
To: Chen-Yu Tsai <wenst@chromium.org>,
Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>,
Liam Girdwood <lgirdwood@gmail.com>,
Bard Liao <yung-chuan.liao@linux.intel.com>,
Ranjani Sridharan <ranjani.sridharan@linux.intel.com>,
Daniel Baluta <daniel.baluta@nxp.com>,
Kai Vehmanen <kai.vehmanen@linux.intel.com>,
Mark Brown <broonie@kernel.org>, Jaroslav Kysela <perex@perex.cz>,
Takashi Iwai <tiwai@suse.com>
Cc: sound-open-firmware@alsa-project.org,
linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH] ASoC: SOF: Move sof_of_machine_select() to core.c from sof-of-dev.c
Date: Mon, 4 Dec 2023 13:04:02 +0200 [thread overview]
Message-ID: <ff56d56b-4b5c-42fa-bf7f-78a5746ec3be@linux.intel.com> (raw)
In-Reply-To: <20231204033549.2020289-1-wenst@chromium.org>
On 04/12/2023 05:35, Chen-Yu Tsai wrote:
> This reverts commit 014fdeb0d747304111cfecf93df4407c1a0c80db.
>
> Commit 014fdeb0d747 ("ASoC: SOF: Move sof_of_machine_select() to
> sof-of-dev.c from sof-audio.c") caused a circular dependency between
> the snd_sof and snd_sof_of modules:
>
> depmod: ERROR: Cycle detected: snd_sof -> snd_sof_of -> snd_sof
> depmod: ERROR: Found 2 modules in dependency cycles!
>
> Move the function back with sof_machine_select().
>
> Fixes: 014fdeb0d747 ("ASoC: SOF: Move sof_of_machine_select() to sof-of-dev.c from sof-audio.c")
> Signed-off-by: Chen-Yu Tsai <wenst@chromium.org>
Oh, I have re-done the compile test and that does not detect this (I
don't have ARM device to runtime test it), but looks valid.
I wonder if we should do this similarly to acpi machine select via ops
to cut the circular dependency?
That can be done in a followup patch.
Acked-by: Peter Ujfalusi <peter.ujfalusi@linux.intel.com>
> ---
> Not sure what the proper arrangement would be, but this gets my builds
> going again.
>
> sound/soc/sof/core.c | 22 ++++++++++++++++++++++
> sound/soc/sof/sof-of-dev.c | 23 -----------------------
> sound/soc/sof/sof-of-dev.h | 9 ---------
> 3 files changed, 22 insertions(+), 32 deletions(-)
>
> diff --git a/sound/soc/sof/core.c b/sound/soc/sof/core.c
> index a2afec8f5879..425b023b03b4 100644
> --- a/sound/soc/sof/core.c
> +++ b/sound/soc/sof/core.c
> @@ -144,6 +144,28 @@ void sof_set_fw_state(struct snd_sof_dev *sdev, enum sof_fw_state new_state)
> }
> EXPORT_SYMBOL(sof_set_fw_state);
>
> +static struct snd_sof_of_mach *sof_of_machine_select(struct snd_sof_dev *sdev)
> +{
> + struct snd_sof_pdata *sof_pdata = sdev->pdata;
> + const struct sof_dev_desc *desc = sof_pdata->desc;
> + struct snd_sof_of_mach *mach = desc->of_machines;
> +
> + if (!mach)
> + return NULL;
> +
> + for (; mach->compatible; mach++) {
> + if (of_machine_is_compatible(mach->compatible)) {
> + sof_pdata->tplg_filename = mach->sof_tplg_filename;
> + if (mach->fw_filename)
> + sof_pdata->fw_filename = mach->fw_filename;
> +
> + return mach;
> + }
> + }
> +
> + return NULL;
> +}
> +
> /* SOF Driver enumeration */
> static int sof_machine_check(struct snd_sof_dev *sdev)
> {
> diff --git a/sound/soc/sof/sof-of-dev.c b/sound/soc/sof/sof-of-dev.c
> index fa92da5ee9b3..b9a499e92b9a 100644
> --- a/sound/soc/sof/sof-of-dev.c
> +++ b/sound/soc/sof/sof-of-dev.c
> @@ -41,29 +41,6 @@ static void sof_of_probe_complete(struct device *dev)
> pm_runtime_enable(dev);
> }
>
> -struct snd_sof_of_mach *sof_of_machine_select(struct snd_sof_dev *sdev)
> -{
> - struct snd_sof_pdata *sof_pdata = sdev->pdata;
> - const struct sof_dev_desc *desc = sof_pdata->desc;
> - struct snd_sof_of_mach *mach = desc->of_machines;
> -
> - if (!mach)
> - return NULL;
> -
> - for (; mach->compatible; mach++) {
> - if (of_machine_is_compatible(mach->compatible)) {
> - sof_pdata->tplg_filename = mach->sof_tplg_filename;
> - if (mach->fw_filename)
> - sof_pdata->fw_filename = mach->fw_filename;
> -
> - return mach;
> - }
> - }
> -
> - return NULL;
> -}
> -EXPORT_SYMBOL(sof_of_machine_select);
> -
> int sof_of_probe(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> diff --git a/sound/soc/sof/sof-of-dev.h b/sound/soc/sof/sof-of-dev.h
> index 547e358a37e3..b6cc70595f3b 100644
> --- a/sound/soc/sof/sof-of-dev.h
> +++ b/sound/soc/sof/sof-of-dev.h
> @@ -16,15 +16,6 @@ struct snd_sof_of_mach {
> const char *sof_tplg_filename;
> };
>
> -#if IS_ENABLED(CONFIG_SND_SOC_SOF_OF_DEV)
> -struct snd_sof_of_mach *sof_of_machine_select(struct snd_sof_dev *sdev);
> -#else
> -static inline struct snd_sof_of_mach *sof_of_machine_select(struct snd_sof_dev *sdev)
> -{
> - return NULL;
> -}
> -#endif
> -
> extern const struct dev_pm_ops sof_of_pm;
>
> int sof_of_probe(struct platform_device *pdev);
--
Péter
next prev parent reply other threads:[~2023-12-04 11:03 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-12-04 3:35 [PATCH] ASoC: SOF: Move sof_of_machine_select() to core.c from sof-of-dev.c Chen-Yu Tsai
2023-12-04 11:04 ` Péter Ujfalusi [this message]
2023-12-04 11:38 ` Daniel Baluta
2023-12-04 12:27 ` Mark Brown
2023-12-04 19:30 ` Mark Brown
2023-12-14 10:56 ` Mark Brown
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=ff56d56b-4b5c-42fa-bf7f-78a5746ec3be@linux.intel.com \
--to=peter.ujfalusi@linux.intel.com \
--cc=broonie@kernel.org \
--cc=daniel.baluta@nxp.com \
--cc=kai.vehmanen@linux.intel.com \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=perex@perex.cz \
--cc=pierre-louis.bossart@linux.intel.com \
--cc=ranjani.sridharan@linux.intel.com \
--cc=sound-open-firmware@alsa-project.org \
--cc=tiwai@suse.com \
--cc=wenst@chromium.org \
--cc=yung-chuan.liao@linux.intel.com \
/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
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.