* [PATCH v2 0/2] Introduce sof_of_machine_select
@ 2022-08-05 7:04 ` Chunxu Li
0 siblings, 0 replies; 20+ messages in thread
From: Chunxu Li @ 2022-08-05 7:04 UTC (permalink / raw)
To: pierre-louis.bossart, peter.ujfalusi, lgirdwood, broonie,
angelogioacchino.delregno, daniel.baluta
Cc: alsa-devel, chunxu.li, tinghan.shen, linux-kernel,
project_global_chrome_upstream_group, linux-mediatek, yc.hung,
matthias.bgg, linux-arm-kernel, sound-open-firmware
From: "chunxu.li" <chunxu.li@mediatek.com>
Change since v1:
- remove the callback of_machine_select defined in sof-priv.h
- move sof_of_machine_select to common code, and called in
sof_machine_check
- rename .board field to .compatible in structure snd_sof_of_mach
In these patches, we introduce function sof_of_machine_select for SOF
Chunxu Li (2):
ASoC: SOF: Introduce function sof_of_machine_select
ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186
include/sound/sof.h | 2 ++
sound/soc/sof/mediatek/mt8186/mt8186.c | 9 ++++++++
sound/soc/sof/pcm.c | 8 ++++++-
sound/soc/sof/sof-audio.c | 30 ++++++++++++++++++++++++++
sound/soc/sof/sof-of-dev.h | 7 ++++++
5 files changed, 55 insertions(+), 1 deletion(-)
--
2.25.1
^ permalink raw reply [flat|nested] 20+ messages in thread* [PATCH v2 0/2] Introduce sof_of_machine_select @ 2022-08-05 7:04 ` Chunxu Li 0 siblings, 0 replies; 20+ messages in thread From: Chunxu Li @ 2022-08-05 7:04 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, lgirdwood, broonie, angelogioacchino.delregno, daniel.baluta Cc: matthias.bgg, yc.hung, tinghan.shen, linux-kernel, alsa-devel, sound-open-firmware, linux-arm-kernel, linux-mediatek, project_global_chrome_upstream_group, chunxu.li From: "chunxu.li" <chunxu.li@mediatek.com> Change since v1: - remove the callback of_machine_select defined in sof-priv.h - move sof_of_machine_select to common code, and called in sof_machine_check - rename .board field to .compatible in structure snd_sof_of_mach In these patches, we introduce function sof_of_machine_select for SOF Chunxu Li (2): ASoC: SOF: Introduce function sof_of_machine_select ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 include/sound/sof.h | 2 ++ sound/soc/sof/mediatek/mt8186/mt8186.c | 9 ++++++++ sound/soc/sof/pcm.c | 8 ++++++- sound/soc/sof/sof-audio.c | 30 ++++++++++++++++++++++++++ sound/soc/sof/sof-of-dev.h | 7 ++++++ 5 files changed, 55 insertions(+), 1 deletion(-) -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 0/2] Introduce sof_of_machine_select @ 2022-08-05 7:04 ` Chunxu Li 0 siblings, 0 replies; 20+ messages in thread From: Chunxu Li @ 2022-08-05 7:04 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, lgirdwood, broonie, angelogioacchino.delregno, daniel.baluta Cc: matthias.bgg, yc.hung, tinghan.shen, linux-kernel, alsa-devel, sound-open-firmware, linux-arm-kernel, linux-mediatek, project_global_chrome_upstream_group, chunxu.li From: "chunxu.li" <chunxu.li@mediatek.com> Change since v1: - remove the callback of_machine_select defined in sof-priv.h - move sof_of_machine_select to common code, and called in sof_machine_check - rename .board field to .compatible in structure snd_sof_of_mach In these patches, we introduce function sof_of_machine_select for SOF Chunxu Li (2): ASoC: SOF: Introduce function sof_of_machine_select ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 include/sound/sof.h | 2 ++ sound/soc/sof/mediatek/mt8186/mt8186.c | 9 ++++++++ sound/soc/sof/pcm.c | 8 ++++++- sound/soc/sof/sof-audio.c | 30 ++++++++++++++++++++++++++ sound/soc/sof/sof-of-dev.h | 7 ++++++ 5 files changed, 55 insertions(+), 1 deletion(-) -- 2.25.1 ^ permalink raw reply [flat|nested] 20+ messages in thread
* [PATCH v2 1/2] ASoC: SOF: Introduce function sof_of_machine_select 2022-08-05 7:04 ` Chunxu Li (?) (?) @ 2022-08-05 7:04 ` Chunxu Li -1 siblings, 0 replies; 20+ messages in thread From: Chunxu Li @ 2022-08-05 7:04 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, lgirdwood, broonie, angelogioacchino.delregno, daniel.baluta Cc: alsa-devel, Chunxu Li, tinghan.shen, linux-kernel, project_global_chrome_upstream_group, linux-mediatek, yc.hung, matthias.bgg, linux-arm-kernel, sound-open-firmware From current design in sof_machine_check and snd_sof_new_platform_drv, the SOF can only support ACPI type machine. 1. In sof_machine_check if there is no ACPI machine exist, the function will return -ENODEV directly, that's we don't expected if we do not base on ACPI machine. 2. In snd_sof_new_platform_drv the component driver need a driver name to do ignore_machine, currently the driver name is obtained from machine->drv_name, and the type of machine is snd_soc_acpi_mach. So we add a new function named sof_of_machine_select that we can pass sof_machine_check and obtain info required by snd_sof_new_platform_drv. Signed-off-by: Chunxu Li <chunxu.li@mediatek.com> --- include/sound/sof.h | 2 ++ sound/soc/sof/pcm.c | 8 +++++++- sound/soc/sof/sof-audio.c | 30 ++++++++++++++++++++++++++++++ sound/soc/sof/sof-of-dev.h | 7 +++++++ 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/include/sound/sof.h b/include/sound/sof.h index 367dccfea7ad..341fef19e612 100644 --- a/include/sound/sof.h +++ b/include/sound/sof.h @@ -89,6 +89,7 @@ struct snd_sof_pdata { /* machine */ struct platform_device *pdev_mach; const struct snd_soc_acpi_mach *machine; + const struct snd_sof_of_mach *of_machine; void *hw_pdata; @@ -102,6 +103,7 @@ struct snd_sof_pdata { struct sof_dev_desc { /* list of machines using this configuration */ struct snd_soc_acpi_mach *machines; + struct snd_sof_of_mach *of_machines; /* alternate list of machines using this configuration */ struct snd_soc_acpi_mach *alt_machines; diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c index 6cb6a432be5e..49f7cb049f62 100644 --- a/sound/soc/sof/pcm.c +++ b/sound/soc/sof/pcm.c @@ -13,6 +13,7 @@ #include <linux/pm_runtime.h> #include <sound/pcm_params.h> #include <sound/sof.h> +#include "sof-of-dev.h" #include "sof-priv.h" #include "sof-audio.h" #include "sof-utils.h" @@ -655,7 +656,12 @@ void snd_sof_new_platform_drv(struct snd_sof_dev *sdev) struct snd_sof_pdata *plat_data = sdev->pdata; const char *drv_name; - drv_name = plat_data->machine->drv_name; + if (plat_data->machine) + drv_name = plat_data->machine->drv_name; + else if (plat_data->of_machine) + drv_name = plat_data->of_machine->drv_name; + else + drv_name = NULL; pd->name = "sof-audio-component"; pd->probe = sof_pcm_probe; diff --git a/sound/soc/sof/sof-audio.c b/sound/soc/sof/sof-audio.c index 28976098a89e..ea9663d448eb 100644 --- a/sound/soc/sof/sof-audio.c +++ b/sound/soc/sof/sof-audio.c @@ -10,6 +10,7 @@ #include <linux/bitfield.h> #include "sof-audio.h" +#include "sof-of-dev.h" #include "ops.h" static void sof_reset_route_setup_status(struct snd_sof_dev *sdev, struct snd_sof_widget *widget) @@ -784,6 +785,28 @@ int sof_dai_get_bclk(struct snd_soc_pcm_runtime *rtd) } EXPORT_SYMBOL(sof_dai_get_bclk); +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. */ @@ -794,6 +817,7 @@ int sof_machine_check(struct snd_sof_dev *sdev) struct snd_soc_acpi_mach *mach; if (!IS_ENABLED(CONFIG_SND_SOC_SOF_FORCE_NOCODEC_MODE)) { + const struct snd_sof_of_mach *of_mach; /* find machine */ mach = snd_sof_machine_select(sdev); @@ -803,6 +827,12 @@ int sof_machine_check(struct snd_sof_dev *sdev) return 0; } + of_mach = sof_of_machine_select(sdev); + if (of_mach) { + sof_pdata->of_machine = of_mach; + return 0; + } + if (!IS_ENABLED(CONFIG_SND_SOC_SOF_NOCODEC)) { dev_err(sdev->dev, "error: no matching ASoC machine driver found - aborting probe\n"); return -ENODEV; diff --git a/sound/soc/sof/sof-of-dev.h b/sound/soc/sof/sof-of-dev.h index fd950a222ba4..2948b3a0d9fe 100644 --- a/sound/soc/sof/sof-of-dev.h +++ b/sound/soc/sof/sof-of-dev.h @@ -9,6 +9,13 @@ #ifndef __SOUND_SOC_SOF_OF_H #define __SOUND_SOC_SOF_OF_H +struct snd_sof_of_mach { + const char *compatible; + const char *drv_name; + const char *fw_filename; + const char *sof_tplg_filename; +}; + extern const struct dev_pm_ops sof_of_pm; int sof_of_probe(struct platform_device *pdev); -- 2.25.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 1/2] ASoC: SOF: Introduce function sof_of_machine_select @ 2022-08-05 7:04 ` Chunxu Li 0 siblings, 0 replies; 20+ messages in thread From: Chunxu Li @ 2022-08-05 7:04 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, lgirdwood, broonie, angelogioacchino.delregno, daniel.baluta Cc: matthias.bgg, yc.hung, tinghan.shen, linux-kernel, alsa-devel, sound-open-firmware, linux-arm-kernel, linux-mediatek, project_global_chrome_upstream_group, Chunxu Li From current design in sof_machine_check and snd_sof_new_platform_drv, the SOF can only support ACPI type machine. 1. In sof_machine_check if there is no ACPI machine exist, the function will return -ENODEV directly, that's we don't expected if we do not base on ACPI machine. 2. In snd_sof_new_platform_drv the component driver need a driver name to do ignore_machine, currently the driver name is obtained from machine->drv_name, and the type of machine is snd_soc_acpi_mach. So we add a new function named sof_of_machine_select that we can pass sof_machine_check and obtain info required by snd_sof_new_platform_drv. Signed-off-by: Chunxu Li <chunxu.li@mediatek.com> --- include/sound/sof.h | 2 ++ sound/soc/sof/pcm.c | 8 +++++++- sound/soc/sof/sof-audio.c | 30 ++++++++++++++++++++++++++++++ sound/soc/sof/sof-of-dev.h | 7 +++++++ 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/include/sound/sof.h b/include/sound/sof.h index 367dccfea7ad..341fef19e612 100644 --- a/include/sound/sof.h +++ b/include/sound/sof.h @@ -89,6 +89,7 @@ struct snd_sof_pdata { /* machine */ struct platform_device *pdev_mach; const struct snd_soc_acpi_mach *machine; + const struct snd_sof_of_mach *of_machine; void *hw_pdata; @@ -102,6 +103,7 @@ struct snd_sof_pdata { struct sof_dev_desc { /* list of machines using this configuration */ struct snd_soc_acpi_mach *machines; + struct snd_sof_of_mach *of_machines; /* alternate list of machines using this configuration */ struct snd_soc_acpi_mach *alt_machines; diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c index 6cb6a432be5e..49f7cb049f62 100644 --- a/sound/soc/sof/pcm.c +++ b/sound/soc/sof/pcm.c @@ -13,6 +13,7 @@ #include <linux/pm_runtime.h> #include <sound/pcm_params.h> #include <sound/sof.h> +#include "sof-of-dev.h" #include "sof-priv.h" #include "sof-audio.h" #include "sof-utils.h" @@ -655,7 +656,12 @@ void snd_sof_new_platform_drv(struct snd_sof_dev *sdev) struct snd_sof_pdata *plat_data = sdev->pdata; const char *drv_name; - drv_name = plat_data->machine->drv_name; + if (plat_data->machine) + drv_name = plat_data->machine->drv_name; + else if (plat_data->of_machine) + drv_name = plat_data->of_machine->drv_name; + else + drv_name = NULL; pd->name = "sof-audio-component"; pd->probe = sof_pcm_probe; diff --git a/sound/soc/sof/sof-audio.c b/sound/soc/sof/sof-audio.c index 28976098a89e..ea9663d448eb 100644 --- a/sound/soc/sof/sof-audio.c +++ b/sound/soc/sof/sof-audio.c @@ -10,6 +10,7 @@ #include <linux/bitfield.h> #include "sof-audio.h" +#include "sof-of-dev.h" #include "ops.h" static void sof_reset_route_setup_status(struct snd_sof_dev *sdev, struct snd_sof_widget *widget) @@ -784,6 +785,28 @@ int sof_dai_get_bclk(struct snd_soc_pcm_runtime *rtd) } EXPORT_SYMBOL(sof_dai_get_bclk); +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. */ @@ -794,6 +817,7 @@ int sof_machine_check(struct snd_sof_dev *sdev) struct snd_soc_acpi_mach *mach; if (!IS_ENABLED(CONFIG_SND_SOC_SOF_FORCE_NOCODEC_MODE)) { + const struct snd_sof_of_mach *of_mach; /* find machine */ mach = snd_sof_machine_select(sdev); @@ -803,6 +827,12 @@ int sof_machine_check(struct snd_sof_dev *sdev) return 0; } + of_mach = sof_of_machine_select(sdev); + if (of_mach) { + sof_pdata->of_machine = of_mach; + return 0; + } + if (!IS_ENABLED(CONFIG_SND_SOC_SOF_NOCODEC)) { dev_err(sdev->dev, "error: no matching ASoC machine driver found - aborting probe\n"); return -ENODEV; diff --git a/sound/soc/sof/sof-of-dev.h b/sound/soc/sof/sof-of-dev.h index fd950a222ba4..2948b3a0d9fe 100644 --- a/sound/soc/sof/sof-of-dev.h +++ b/sound/soc/sof/sof-of-dev.h @@ -9,6 +9,13 @@ #ifndef __SOUND_SOC_SOF_OF_H #define __SOUND_SOC_SOF_OF_H +struct snd_sof_of_mach { + const char *compatible; + const char *drv_name; + const char *fw_filename; + const char *sof_tplg_filename; +}; + extern const struct dev_pm_ops sof_of_pm; int sof_of_probe(struct platform_device *pdev); -- 2.25.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 1/2] ASoC: SOF: Introduce function sof_of_machine_select @ 2022-08-05 7:04 ` Chunxu Li 0 siblings, 0 replies; 20+ messages in thread From: Chunxu Li @ 2022-08-05 7:04 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, lgirdwood, broonie, angelogioacchino.delregno, daniel.baluta Cc: matthias.bgg, yc.hung, tinghan.shen, linux-kernel, alsa-devel, sound-open-firmware, linux-arm-kernel, linux-mediatek, project_global_chrome_upstream_group, Chunxu Li From current design in sof_machine_check and snd_sof_new_platform_drv, the SOF can only support ACPI type machine. 1. In sof_machine_check if there is no ACPI machine exist, the function will return -ENODEV directly, that's we don't expected if we do not base on ACPI machine. 2. In snd_sof_new_platform_drv the component driver need a driver name to do ignore_machine, currently the driver name is obtained from machine->drv_name, and the type of machine is snd_soc_acpi_mach. So we add a new function named sof_of_machine_select that we can pass sof_machine_check and obtain info required by snd_sof_new_platform_drv. Signed-off-by: Chunxu Li <chunxu.li@mediatek.com> --- include/sound/sof.h | 2 ++ sound/soc/sof/pcm.c | 8 +++++++- sound/soc/sof/sof-audio.c | 30 ++++++++++++++++++++++++++++++ sound/soc/sof/sof-of-dev.h | 7 +++++++ 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/include/sound/sof.h b/include/sound/sof.h index 367dccfea7ad..341fef19e612 100644 --- a/include/sound/sof.h +++ b/include/sound/sof.h @@ -89,6 +89,7 @@ struct snd_sof_pdata { /* machine */ struct platform_device *pdev_mach; const struct snd_soc_acpi_mach *machine; + const struct snd_sof_of_mach *of_machine; void *hw_pdata; @@ -102,6 +103,7 @@ struct snd_sof_pdata { struct sof_dev_desc { /* list of machines using this configuration */ struct snd_soc_acpi_mach *machines; + struct snd_sof_of_mach *of_machines; /* alternate list of machines using this configuration */ struct snd_soc_acpi_mach *alt_machines; diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c index 6cb6a432be5e..49f7cb049f62 100644 --- a/sound/soc/sof/pcm.c +++ b/sound/soc/sof/pcm.c @@ -13,6 +13,7 @@ #include <linux/pm_runtime.h> #include <sound/pcm_params.h> #include <sound/sof.h> +#include "sof-of-dev.h" #include "sof-priv.h" #include "sof-audio.h" #include "sof-utils.h" @@ -655,7 +656,12 @@ void snd_sof_new_platform_drv(struct snd_sof_dev *sdev) struct snd_sof_pdata *plat_data = sdev->pdata; const char *drv_name; - drv_name = plat_data->machine->drv_name; + if (plat_data->machine) + drv_name = plat_data->machine->drv_name; + else if (plat_data->of_machine) + drv_name = plat_data->of_machine->drv_name; + else + drv_name = NULL; pd->name = "sof-audio-component"; pd->probe = sof_pcm_probe; diff --git a/sound/soc/sof/sof-audio.c b/sound/soc/sof/sof-audio.c index 28976098a89e..ea9663d448eb 100644 --- a/sound/soc/sof/sof-audio.c +++ b/sound/soc/sof/sof-audio.c @@ -10,6 +10,7 @@ #include <linux/bitfield.h> #include "sof-audio.h" +#include "sof-of-dev.h" #include "ops.h" static void sof_reset_route_setup_status(struct snd_sof_dev *sdev, struct snd_sof_widget *widget) @@ -784,6 +785,28 @@ int sof_dai_get_bclk(struct snd_soc_pcm_runtime *rtd) } EXPORT_SYMBOL(sof_dai_get_bclk); +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. */ @@ -794,6 +817,7 @@ int sof_machine_check(struct snd_sof_dev *sdev) struct snd_soc_acpi_mach *mach; if (!IS_ENABLED(CONFIG_SND_SOC_SOF_FORCE_NOCODEC_MODE)) { + const struct snd_sof_of_mach *of_mach; /* find machine */ mach = snd_sof_machine_select(sdev); @@ -803,6 +827,12 @@ int sof_machine_check(struct snd_sof_dev *sdev) return 0; } + of_mach = sof_of_machine_select(sdev); + if (of_mach) { + sof_pdata->of_machine = of_mach; + return 0; + } + if (!IS_ENABLED(CONFIG_SND_SOC_SOF_NOCODEC)) { dev_err(sdev->dev, "error: no matching ASoC machine driver found - aborting probe\n"); return -ENODEV; diff --git a/sound/soc/sof/sof-of-dev.h b/sound/soc/sof/sof-of-dev.h index fd950a222ba4..2948b3a0d9fe 100644 --- a/sound/soc/sof/sof-of-dev.h +++ b/sound/soc/sof/sof-of-dev.h @@ -9,6 +9,13 @@ #ifndef __SOUND_SOC_SOF_OF_H #define __SOUND_SOC_SOF_OF_H +struct snd_sof_of_mach { + const char *compatible; + const char *drv_name; + const char *fw_filename; + const char *sof_tplg_filename; +}; + extern const struct dev_pm_ops sof_of_pm; int sof_of_probe(struct platform_device *pdev); -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 1/2] ASoC: SOF: Introduce function sof_of_machine_select @ 2022-08-05 7:04 ` Chunxu Li 0 siblings, 0 replies; 20+ messages in thread From: Chunxu Li @ 2022-08-05 7:04 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, lgirdwood, broonie, angelogioacchino.delregno, daniel.baluta Cc: matthias.bgg, yc.hung, tinghan.shen, linux-kernel, alsa-devel, sound-open-firmware, linux-arm-kernel, linux-mediatek, project_global_chrome_upstream_group, Chunxu Li From current design in sof_machine_check and snd_sof_new_platform_drv, the SOF can only support ACPI type machine. 1. In sof_machine_check if there is no ACPI machine exist, the function will return -ENODEV directly, that's we don't expected if we do not base on ACPI machine. 2. In snd_sof_new_platform_drv the component driver need a driver name to do ignore_machine, currently the driver name is obtained from machine->drv_name, and the type of machine is snd_soc_acpi_mach. So we add a new function named sof_of_machine_select that we can pass sof_machine_check and obtain info required by snd_sof_new_platform_drv. Signed-off-by: Chunxu Li <chunxu.li@mediatek.com> --- include/sound/sof.h | 2 ++ sound/soc/sof/pcm.c | 8 +++++++- sound/soc/sof/sof-audio.c | 30 ++++++++++++++++++++++++++++++ sound/soc/sof/sof-of-dev.h | 7 +++++++ 4 files changed, 46 insertions(+), 1 deletion(-) diff --git a/include/sound/sof.h b/include/sound/sof.h index 367dccfea7ad..341fef19e612 100644 --- a/include/sound/sof.h +++ b/include/sound/sof.h @@ -89,6 +89,7 @@ struct snd_sof_pdata { /* machine */ struct platform_device *pdev_mach; const struct snd_soc_acpi_mach *machine; + const struct snd_sof_of_mach *of_machine; void *hw_pdata; @@ -102,6 +103,7 @@ struct snd_sof_pdata { struct sof_dev_desc { /* list of machines using this configuration */ struct snd_soc_acpi_mach *machines; + struct snd_sof_of_mach *of_machines; /* alternate list of machines using this configuration */ struct snd_soc_acpi_mach *alt_machines; diff --git a/sound/soc/sof/pcm.c b/sound/soc/sof/pcm.c index 6cb6a432be5e..49f7cb049f62 100644 --- a/sound/soc/sof/pcm.c +++ b/sound/soc/sof/pcm.c @@ -13,6 +13,7 @@ #include <linux/pm_runtime.h> #include <sound/pcm_params.h> #include <sound/sof.h> +#include "sof-of-dev.h" #include "sof-priv.h" #include "sof-audio.h" #include "sof-utils.h" @@ -655,7 +656,12 @@ void snd_sof_new_platform_drv(struct snd_sof_dev *sdev) struct snd_sof_pdata *plat_data = sdev->pdata; const char *drv_name; - drv_name = plat_data->machine->drv_name; + if (plat_data->machine) + drv_name = plat_data->machine->drv_name; + else if (plat_data->of_machine) + drv_name = plat_data->of_machine->drv_name; + else + drv_name = NULL; pd->name = "sof-audio-component"; pd->probe = sof_pcm_probe; diff --git a/sound/soc/sof/sof-audio.c b/sound/soc/sof/sof-audio.c index 28976098a89e..ea9663d448eb 100644 --- a/sound/soc/sof/sof-audio.c +++ b/sound/soc/sof/sof-audio.c @@ -10,6 +10,7 @@ #include <linux/bitfield.h> #include "sof-audio.h" +#include "sof-of-dev.h" #include "ops.h" static void sof_reset_route_setup_status(struct snd_sof_dev *sdev, struct snd_sof_widget *widget) @@ -784,6 +785,28 @@ int sof_dai_get_bclk(struct snd_soc_pcm_runtime *rtd) } EXPORT_SYMBOL(sof_dai_get_bclk); +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. */ @@ -794,6 +817,7 @@ int sof_machine_check(struct snd_sof_dev *sdev) struct snd_soc_acpi_mach *mach; if (!IS_ENABLED(CONFIG_SND_SOC_SOF_FORCE_NOCODEC_MODE)) { + const struct snd_sof_of_mach *of_mach; /* find machine */ mach = snd_sof_machine_select(sdev); @@ -803,6 +827,12 @@ int sof_machine_check(struct snd_sof_dev *sdev) return 0; } + of_mach = sof_of_machine_select(sdev); + if (of_mach) { + sof_pdata->of_machine = of_mach; + return 0; + } + if (!IS_ENABLED(CONFIG_SND_SOC_SOF_NOCODEC)) { dev_err(sdev->dev, "error: no matching ASoC machine driver found - aborting probe\n"); return -ENODEV; diff --git a/sound/soc/sof/sof-of-dev.h b/sound/soc/sof/sof-of-dev.h index fd950a222ba4..2948b3a0d9fe 100644 --- a/sound/soc/sof/sof-of-dev.h +++ b/sound/soc/sof/sof-of-dev.h @@ -9,6 +9,13 @@ #ifndef __SOUND_SOC_SOF_OF_H #define __SOUND_SOC_SOF_OF_H +struct snd_sof_of_mach { + const char *compatible; + const char *drv_name; + const char *fw_filename; + const char *sof_tplg_filename; +}; + extern const struct dev_pm_ops sof_of_pm; int sof_of_probe(struct platform_device *pdev); -- 2.25.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 2/2] ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 2022-08-05 7:04 ` Chunxu Li (?) (?) @ 2022-08-05 7:04 ` Chunxu Li -1 siblings, 0 replies; 20+ messages in thread From: Chunxu Li @ 2022-08-05 7:04 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, lgirdwood, broonie, angelogioacchino.delregno, daniel.baluta Cc: alsa-devel, Chunxu Li, tinghan.shen, linux-kernel, project_global_chrome_upstream_group, linux-mediatek, yc.hung, matthias.bgg, linux-arm-kernel, sound-open-firmware Add .of_machines field sof_mt8186_machs for mt8186 Signed-off-by: Chunxu Li <chunxu.li@mediatek.com> --- sound/soc/sof/mediatek/mt8186/mt8186.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/sof/mediatek/mt8186/mt8186.c b/sound/soc/sof/mediatek/mt8186/mt8186.c index e006532caf2f..014afe33b3d9 100644 --- a/sound/soc/sof/mediatek/mt8186/mt8186.c +++ b/sound/soc/sof/mediatek/mt8186/mt8186.c @@ -515,7 +515,16 @@ static struct snd_sof_dsp_ops sof_mt8186_ops = { SNDRV_PCM_INFO_NO_PERIOD_WAKEUP, }; +static struct snd_sof_of_mach sof_mt8186_machs[] = { + { + .compatible = "mediatek,mt8186", + .sof_tplg_filename = "sof-mt8186.tplg", + }, + {} +}; + static const struct sof_dev_desc sof_of_mt8186_desc = { + .of_machines = sof_mt8186_machs, .ipc_supported_mask = BIT(SOF_IPC), .ipc_default = SOF_IPC, .default_fw_path = { -- 2.25.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 2/2] ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 @ 2022-08-05 7:04 ` Chunxu Li 0 siblings, 0 replies; 20+ messages in thread From: Chunxu Li @ 2022-08-05 7:04 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, lgirdwood, broonie, angelogioacchino.delregno, daniel.baluta Cc: matthias.bgg, yc.hung, tinghan.shen, linux-kernel, alsa-devel, sound-open-firmware, linux-arm-kernel, linux-mediatek, project_global_chrome_upstream_group, Chunxu Li Add .of_machines field sof_mt8186_machs for mt8186 Signed-off-by: Chunxu Li <chunxu.li@mediatek.com> --- sound/soc/sof/mediatek/mt8186/mt8186.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/sof/mediatek/mt8186/mt8186.c b/sound/soc/sof/mediatek/mt8186/mt8186.c index e006532caf2f..014afe33b3d9 100644 --- a/sound/soc/sof/mediatek/mt8186/mt8186.c +++ b/sound/soc/sof/mediatek/mt8186/mt8186.c @@ -515,7 +515,16 @@ static struct snd_sof_dsp_ops sof_mt8186_ops = { SNDRV_PCM_INFO_NO_PERIOD_WAKEUP, }; +static struct snd_sof_of_mach sof_mt8186_machs[] = { + { + .compatible = "mediatek,mt8186", + .sof_tplg_filename = "sof-mt8186.tplg", + }, + {} +}; + static const struct sof_dev_desc sof_of_mt8186_desc = { + .of_machines = sof_mt8186_machs, .ipc_supported_mask = BIT(SOF_IPC), .ipc_default = SOF_IPC, .default_fw_path = { -- 2.25.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 2/2] ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 @ 2022-08-05 7:04 ` Chunxu Li 0 siblings, 0 replies; 20+ messages in thread From: Chunxu Li @ 2022-08-05 7:04 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, lgirdwood, broonie, angelogioacchino.delregno, daniel.baluta Cc: matthias.bgg, yc.hung, tinghan.shen, linux-kernel, alsa-devel, sound-open-firmware, linux-arm-kernel, linux-mediatek, project_global_chrome_upstream_group, Chunxu Li Add .of_machines field sof_mt8186_machs for mt8186 Signed-off-by: Chunxu Li <chunxu.li@mediatek.com> --- sound/soc/sof/mediatek/mt8186/mt8186.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/sof/mediatek/mt8186/mt8186.c b/sound/soc/sof/mediatek/mt8186/mt8186.c index e006532caf2f..014afe33b3d9 100644 --- a/sound/soc/sof/mediatek/mt8186/mt8186.c +++ b/sound/soc/sof/mediatek/mt8186/mt8186.c @@ -515,7 +515,16 @@ static struct snd_sof_dsp_ops sof_mt8186_ops = { SNDRV_PCM_INFO_NO_PERIOD_WAKEUP, }; +static struct snd_sof_of_mach sof_mt8186_machs[] = { + { + .compatible = "mediatek,mt8186", + .sof_tplg_filename = "sof-mt8186.tplg", + }, + {} +}; + static const struct sof_dev_desc sof_of_mt8186_desc = { + .of_machines = sof_mt8186_machs, .ipc_supported_mask = BIT(SOF_IPC), .ipc_default = SOF_IPC, .default_fw_path = { -- 2.25.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 20+ messages in thread
* [PATCH v2 2/2] ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 @ 2022-08-05 7:04 ` Chunxu Li 0 siblings, 0 replies; 20+ messages in thread From: Chunxu Li @ 2022-08-05 7:04 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, lgirdwood, broonie, angelogioacchino.delregno, daniel.baluta Cc: matthias.bgg, yc.hung, tinghan.shen, linux-kernel, alsa-devel, sound-open-firmware, linux-arm-kernel, linux-mediatek, project_global_chrome_upstream_group, Chunxu Li Add .of_machines field sof_mt8186_machs for mt8186 Signed-off-by: Chunxu Li <chunxu.li@mediatek.com> --- sound/soc/sof/mediatek/mt8186/mt8186.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/sound/soc/sof/mediatek/mt8186/mt8186.c b/sound/soc/sof/mediatek/mt8186/mt8186.c index e006532caf2f..014afe33b3d9 100644 --- a/sound/soc/sof/mediatek/mt8186/mt8186.c +++ b/sound/soc/sof/mediatek/mt8186/mt8186.c @@ -515,7 +515,16 @@ static struct snd_sof_dsp_ops sof_mt8186_ops = { SNDRV_PCM_INFO_NO_PERIOD_WAKEUP, }; +static struct snd_sof_of_mach sof_mt8186_machs[] = { + { + .compatible = "mediatek,mt8186", + .sof_tplg_filename = "sof-mt8186.tplg", + }, + {} +}; + static const struct sof_dev_desc sof_of_mt8186_desc = { + .of_machines = sof_mt8186_machs, .ipc_supported_mask = BIT(SOF_IPC), .ipc_default = SOF_IPC, .default_fw_path = { -- 2.25.1 ^ permalink raw reply related [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/2] Introduce sof_of_machine_select 2022-08-05 7:04 ` Chunxu Li (?) @ 2022-08-23 18:50 ` Mark Brown -1 siblings, 0 replies; 20+ messages in thread From: Mark Brown @ 2022-08-23 18:50 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, daniel.baluta, angelogioacchino.delregno, lgirdwood, Chunxu Li Cc: alsa-devel, tinghan.shen, linux-kernel, project_global_chrome_upstream_group, linux-mediatek, yc.hung, matthias.bgg, linux-arm-kernel, sound-open-firmware On Fri, 5 Aug 2022 15:04:47 +0800, Chunxu Li wrote: > From: "chunxu.li" <chunxu.li@mediatek.com> > > Change since v1: > - remove the callback of_machine_select defined in sof-priv.h > - move sof_of_machine_select to common code, and called in > sof_machine_check > - rename .board field to .compatible in structure snd_sof_of_mach > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next Thanks! [1/2] ASoC: SOF: Introduce function sof_of_machine_select commit: 6ace85b9838dc0162b474dbbbb6b388e7561f6a7 [2/2] ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 commit: 2dec9e09e955dfc4b7843fa4f9c09e7ee8931b1d 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 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/2] Introduce sof_of_machine_select @ 2022-08-23 18:50 ` Mark Brown 0 siblings, 0 replies; 20+ messages in thread From: Mark Brown @ 2022-08-23 18:50 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, daniel.baluta, angelogioacchino.delregno, lgirdwood, Chunxu Li Cc: linux-arm-kernel, matthias.bgg, sound-open-firmware, tinghan.shen, linux-mediatek, project_global_chrome_upstream_group, alsa-devel, linux-kernel, yc.hung On Fri, 5 Aug 2022 15:04:47 +0800, Chunxu Li wrote: > From: "chunxu.li" <chunxu.li@mediatek.com> > > Change since v1: > - remove the callback of_machine_select defined in sof-priv.h > - move sof_of_machine_select to common code, and called in > sof_machine_check > - rename .board field to .compatible in structure snd_sof_of_mach > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next Thanks! [1/2] ASoC: SOF: Introduce function sof_of_machine_select commit: 6ace85b9838dc0162b474dbbbb6b388e7561f6a7 [2/2] ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 commit: 2dec9e09e955dfc4b7843fa4f9c09e7ee8931b1d 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 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/2] Introduce sof_of_machine_select @ 2022-08-23 18:50 ` Mark Brown 0 siblings, 0 replies; 20+ messages in thread From: Mark Brown @ 2022-08-23 18:50 UTC (permalink / raw) To: pierre-louis.bossart, peter.ujfalusi, daniel.baluta, angelogioacchino.delregno, lgirdwood, Chunxu Li Cc: linux-arm-kernel, matthias.bgg, sound-open-firmware, tinghan.shen, linux-mediatek, project_global_chrome_upstream_group, alsa-devel, linux-kernel, yc.hung On Fri, 5 Aug 2022 15:04:47 +0800, Chunxu Li wrote: > From: "chunxu.li" <chunxu.li@mediatek.com> > > Change since v1: > - remove the callback of_machine_select defined in sof-priv.h > - move sof_of_machine_select to common code, and called in > sof_machine_check > - rename .board field to .compatible in structure snd_sof_of_mach > > [...] Applied to https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next Thanks! [1/2] ASoC: SOF: Introduce function sof_of_machine_select commit: 6ace85b9838dc0162b474dbbbb6b388e7561f6a7 [2/2] ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 commit: 2dec9e09e955dfc4b7843fa4f9c09e7ee8931b1d 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 ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/2] Introduce sof_of_machine_select 2022-08-23 18:50 ` Mark Brown (?) @ 2022-09-02 3:57 ` chunxu.li -1 siblings, 0 replies; 20+ messages in thread From: chunxu.li @ 2022-09-02 3:57 UTC (permalink / raw) To: Mark Brown Cc: alsa-devel, lgirdwood, daniel.baluta, tinghan.shen, linux-kernel, pierre-louis.bossart, project_global_chrome_upstream_group, linux-mediatek, yc.hung, matthias.bgg, angelogioacchino.delregno, peter.ujfalusi, linux-arm-kernel, sound-open-firmware On Tue, 2022-08-23 at 19:50 +0100, Mark Brown wrote: > On Fri, 5 Aug 2022 15:04:47 +0800, Chunxu Li wrote: > > From: "chunxu.li" <chunxu.li@mediatek.com> > > > > Change since v1: > > - remove the callback of_machine_select defined in sof-priv.h > > - move sof_of_machine_select to common code, and called in > > sof_machine_check > > - rename .board field to .compatible in structure snd_sof_of_mach > > > > [...] > > Applied to > > > https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git__;!!CTRNKA9wMg0ARbw!wdXixJVRiZEF4J6bn68hzN7GZ5gAa67otOgycstenmVEsECqFl08ZMVP2aJBGVuvQg$ > for-next > > Thanks! > > [1/2] ASoC: SOF: Introduce function sof_of_machine_select > commit: 6ace85b9838dc0162b474dbbbb6b388e7561f6a7 > [2/2] ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 > commit: 2dec9e09e955dfc4b7843fa4f9c09e7ee8931b1d > > 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 Hi Mark, It looks like the patch didn't applied success. The patch link is https://patchwork.kernel.org/project/alsa-devel/patch/20220805070449.6611-2-chunxu.li@mediatek.com/ the merged link is https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/commit/?id=6ace85b9838dc0162b474dbbbb6b388e7561f6a7 In sound/soc/sof/sof-audio.c the changes are: #include <linux/bitfield.h> #include "sof-audio.h" +#include "sof-of-dev.h" #include "ops.h" static void sof_reset_route_setup_status(struct snd_sof_dev *sdev, struct snd_sof_widget *widget) @@ -784,6 +785,28 @@ int sof_dai_get_bclk(struct snd_soc_pcm_runtime *rtd) } EXPORT_SYMBOL(sof_dai_get_bclk); +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. */ @@ -794,6 +817,7 @@ int sof_machine_check(struct snd_sof_dev *sdev) struct snd_soc_acpi_mach *mach; if (!IS_ENABLED(CONFIG_SND_SOC_SOF_FORCE_NOCODEC_MODE)) { + const struct snd_sof_of_mach *of_mach; /* find machine */ mach = snd_sof_machine_select(sdev); @@ -803,6 +827,12 @@ int sof_machine_check(struct snd_sof_dev *sdev) return 0; } + of_mach = sof_of_machine_select(sdev); + if (of_mach) { + sof_pdata->of_machine = of_mach; + return 0; + } + But the real applied is only one line as below. #include <linux/bitfield.h> #include "sof-audio.h" +#include "sof-of-dev.h" #include "ops.h" ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/2] Introduce sof_of_machine_select @ 2022-09-02 3:57 ` chunxu.li 0 siblings, 0 replies; 20+ messages in thread From: chunxu.li @ 2022-09-02 3:57 UTC (permalink / raw) To: Mark Brown Cc: linux-arm-kernel, matthias.bgg, sound-open-firmware, tinghan.shen, linux-mediatek, project_global_chrome_upstream_group, alsa-devel, linux-kernel, yc.hung, pierre-louis.bossart, peter.ujfalusi, daniel.baluta, angelogioacchino.delregno, lgirdwood On Tue, 2022-08-23 at 19:50 +0100, Mark Brown wrote: > On Fri, 5 Aug 2022 15:04:47 +0800, Chunxu Li wrote: > > From: "chunxu.li" <chunxu.li@mediatek.com> > > > > Change since v1: > > - remove the callback of_machine_select defined in sof-priv.h > > - move sof_of_machine_select to common code, and called in > > sof_machine_check > > - rename .board field to .compatible in structure snd_sof_of_mach > > > > [...] > > Applied to > > > https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git__;!!CTRNKA9wMg0ARbw!wdXixJVRiZEF4J6bn68hzN7GZ5gAa67otOgycstenmVEsECqFl08ZMVP2aJBGVuvQg$ > for-next > > Thanks! > > [1/2] ASoC: SOF: Introduce function sof_of_machine_select > commit: 6ace85b9838dc0162b474dbbbb6b388e7561f6a7 > [2/2] ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 > commit: 2dec9e09e955dfc4b7843fa4f9c09e7ee8931b1d > > 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 Hi Mark, It looks like the patch didn't applied success. The patch link is https://patchwork.kernel.org/project/alsa-devel/patch/20220805070449.6611-2-chunxu.li@mediatek.com/ the merged link is https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/commit/?id=6ace85b9838dc0162b474dbbbb6b388e7561f6a7 In sound/soc/sof/sof-audio.c the changes are: #include <linux/bitfield.h> #include "sof-audio.h" +#include "sof-of-dev.h" #include "ops.h" static void sof_reset_route_setup_status(struct snd_sof_dev *sdev, struct snd_sof_widget *widget) @@ -784,6 +785,28 @@ int sof_dai_get_bclk(struct snd_soc_pcm_runtime *rtd) } EXPORT_SYMBOL(sof_dai_get_bclk); +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. */ @@ -794,6 +817,7 @@ int sof_machine_check(struct snd_sof_dev *sdev) struct snd_soc_acpi_mach *mach; if (!IS_ENABLED(CONFIG_SND_SOC_SOF_FORCE_NOCODEC_MODE)) { + const struct snd_sof_of_mach *of_mach; /* find machine */ mach = snd_sof_machine_select(sdev); @@ -803,6 +827,12 @@ int sof_machine_check(struct snd_sof_dev *sdev) return 0; } + of_mach = sof_of_machine_select(sdev); + if (of_mach) { + sof_pdata->of_machine = of_mach; + return 0; + } + But the real applied is only one line as below. #include <linux/bitfield.h> #include "sof-audio.h" +#include "sof-of-dev.h" #include "ops.h" _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/2] Introduce sof_of_machine_select @ 2022-09-02 3:57 ` chunxu.li 0 siblings, 0 replies; 20+ messages in thread From: chunxu.li @ 2022-09-02 3:57 UTC (permalink / raw) To: Mark Brown Cc: linux-arm-kernel, matthias.bgg, sound-open-firmware, tinghan.shen, linux-mediatek, project_global_chrome_upstream_group, alsa-devel, linux-kernel, yc.hung, pierre-louis.bossart, peter.ujfalusi, daniel.baluta, angelogioacchino.delregno, lgirdwood On Tue, 2022-08-23 at 19:50 +0100, Mark Brown wrote: > On Fri, 5 Aug 2022 15:04:47 +0800, Chunxu Li wrote: > > From: "chunxu.li" <chunxu.li@mediatek.com> > > > > Change since v1: > > - remove the callback of_machine_select defined in sof-priv.h > > - move sof_of_machine_select to common code, and called in > > sof_machine_check > > - rename .board field to .compatible in structure snd_sof_of_mach > > > > [...] > > Applied to > > > https://urldefense.com/v3/__https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git__;!!CTRNKA9wMg0ARbw!wdXixJVRiZEF4J6bn68hzN7GZ5gAa67otOgycstenmVEsECqFl08ZMVP2aJBGVuvQg$ > for-next > > Thanks! > > [1/2] ASoC: SOF: Introduce function sof_of_machine_select > commit: 6ace85b9838dc0162b474dbbbb6b388e7561f6a7 > [2/2] ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 > commit: 2dec9e09e955dfc4b7843fa4f9c09e7ee8931b1d > > 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 Hi Mark, It looks like the patch didn't applied success. The patch link is https://patchwork.kernel.org/project/alsa-devel/patch/20220805070449.6611-2-chunxu.li@mediatek.com/ the merged link is https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/commit/?id=6ace85b9838dc0162b474dbbbb6b388e7561f6a7 In sound/soc/sof/sof-audio.c the changes are: #include <linux/bitfield.h> #include "sof-audio.h" +#include "sof-of-dev.h" #include "ops.h" static void sof_reset_route_setup_status(struct snd_sof_dev *sdev, struct snd_sof_widget *widget) @@ -784,6 +785,28 @@ int sof_dai_get_bclk(struct snd_soc_pcm_runtime *rtd) } EXPORT_SYMBOL(sof_dai_get_bclk); +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. */ @@ -794,6 +817,7 @@ int sof_machine_check(struct snd_sof_dev *sdev) struct snd_soc_acpi_mach *mach; if (!IS_ENABLED(CONFIG_SND_SOC_SOF_FORCE_NOCODEC_MODE)) { + const struct snd_sof_of_mach *of_mach; /* find machine */ mach = snd_sof_machine_select(sdev); @@ -803,6 +827,12 @@ int sof_machine_check(struct snd_sof_dev *sdev) return 0; } + of_mach = sof_of_machine_select(sdev); + if (of_mach) { + sof_pdata->of_machine = of_mach; + return 0; + } + But the real applied is only one line as below. #include <linux/bitfield.h> #include "sof-audio.h" +#include "sof-of-dev.h" #include "ops.h" ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/2] Introduce sof_of_machine_select 2022-09-02 3:57 ` chunxu.li (?) @ 2022-09-02 10:19 ` Mark Brown -1 siblings, 0 replies; 20+ messages in thread From: Mark Brown @ 2022-09-02 10:19 UTC (permalink / raw) To: chunxu.li Cc: alsa-devel, lgirdwood, daniel.baluta, tinghan.shen, linux-kernel, pierre-louis.bossart, project_global_chrome_upstream_group, linux-mediatek, yc.hung, matthias.bgg, angelogioacchino.delregno, peter.ujfalusi, linux-arm-kernel, sound-open-firmware [-- Attachment #1: Type: text/plain, Size: 704 bytes --] On Fri, Sep 02, 2022 at 11:57:51AM +0800, chunxu.li wrote: > On Tue, 2022-08-23 at 19:50 +0100, Mark Brown wrote: > > 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. > It looks like the patch didn't applied success. > The patch link is > https://patchwork.kernel.org/project/alsa-devel/patch/20220805070449.6611-2-chunxu.li@mediatek.com/ > the merged link is > https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/commit/?id=6ace85b9838dc0162b474dbbbb6b388e7561f6a7 As covered above please send incremental patches fixing any issues. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/2] Introduce sof_of_machine_select @ 2022-09-02 10:19 ` Mark Brown 0 siblings, 0 replies; 20+ messages in thread From: Mark Brown @ 2022-09-02 10:19 UTC (permalink / raw) To: chunxu.li Cc: linux-arm-kernel, matthias.bgg, sound-open-firmware, tinghan.shen, linux-mediatek, project_global_chrome_upstream_group, alsa-devel, linux-kernel, yc.hung, pierre-louis.bossart, peter.ujfalusi, daniel.baluta, angelogioacchino.delregno, lgirdwood [-- Attachment #1.1: Type: text/plain, Size: 704 bytes --] On Fri, Sep 02, 2022 at 11:57:51AM +0800, chunxu.li wrote: > On Tue, 2022-08-23 at 19:50 +0100, Mark Brown wrote: > > 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. > It looks like the patch didn't applied success. > The patch link is > https://patchwork.kernel.org/project/alsa-devel/patch/20220805070449.6611-2-chunxu.li@mediatek.com/ > the merged link is > https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/commit/?id=6ace85b9838dc0162b474dbbbb6b388e7561f6a7 As covered above please send incremental patches fixing any issues. [-- Attachment #1.2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] [-- Attachment #2: Type: text/plain, Size: 176 bytes --] _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 20+ messages in thread
* Re: [PATCH v2 0/2] Introduce sof_of_machine_select @ 2022-09-02 10:19 ` Mark Brown 0 siblings, 0 replies; 20+ messages in thread From: Mark Brown @ 2022-09-02 10:19 UTC (permalink / raw) To: chunxu.li Cc: linux-arm-kernel, matthias.bgg, sound-open-firmware, tinghan.shen, linux-mediatek, project_global_chrome_upstream_group, alsa-devel, linux-kernel, yc.hung, pierre-louis.bossart, peter.ujfalusi, daniel.baluta, angelogioacchino.delregno, lgirdwood [-- Attachment #1: Type: text/plain, Size: 704 bytes --] On Fri, Sep 02, 2022 at 11:57:51AM +0800, chunxu.li wrote: > On Tue, 2022-08-23 at 19:50 +0100, Mark Brown wrote: > > 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. > It looks like the patch didn't applied success. > The patch link is > https://patchwork.kernel.org/project/alsa-devel/patch/20220805070449.6611-2-chunxu.li@mediatek.com/ > the merged link is > https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git/commit/?id=6ace85b9838dc0162b474dbbbb6b388e7561f6a7 As covered above please send incremental patches fixing any issues. [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 488 bytes --] ^ permalink raw reply [flat|nested] 20+ messages in thread
end of thread, other threads:[~2022-09-02 10:20 UTC | newest] Thread overview: 20+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2022-08-05 7:04 [PATCH v2 0/2] Introduce sof_of_machine_select Chunxu Li 2022-08-05 7:04 ` Chunxu Li 2022-08-05 7:04 ` Chunxu Li 2022-08-05 7:04 ` [PATCH v2 1/2] ASoC: SOF: Introduce function sof_of_machine_select Chunxu Li 2022-08-05 7:04 ` Chunxu Li 2022-08-05 7:04 ` Chunxu Li 2022-08-05 7:04 ` Chunxu Li 2022-08-05 7:04 ` [PATCH v2 2/2] ASoC: SOF: mediatek: Add sof_mt8186_machs for mt8186 Chunxu Li 2022-08-05 7:04 ` Chunxu Li 2022-08-05 7:04 ` Chunxu Li 2022-08-05 7:04 ` Chunxu Li 2022-08-23 18:50 ` [PATCH v2 0/2] Introduce sof_of_machine_select Mark Brown 2022-08-23 18:50 ` Mark Brown 2022-08-23 18:50 ` Mark Brown 2022-09-02 3:57 ` chunxu.li 2022-09-02 3:57 ` chunxu.li 2022-09-02 3:57 ` chunxu.li 2022-09-02 10:19 ` Mark Brown 2022-09-02 10:19 ` Mark Brown 2022-09-02 10:19 ` Mark Brown
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.