Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

ASoC: mediatek: common: Constify struct mtk_sof_priv

Apart from a dai_link_list variable, the mtk_sof_priv currently holds
data that never gets modified during runtime.

Constify the mtk_sof_priv structure and move the SOF dai_link_list as
sof_dai_link_list in struct mtk_soc_card_data, which is a structure
that already holds the card's machine specific, runtime modified data.

This allows to safely pass the mtk_sof_priv structure as platform data
for the commonized card probe mechanism.

Reviewed-by: Alexandre Mergnat <amergnat@baylibre.com>
Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Link: https://lore.kernel.org/r/20240416071410.75620-3-angelogioacchino.delregno@collabora.com
Signed-off-by: Mark Brown <broonie@kernel.org>

authored by

AngeloGioacchino Del Regno and committed by
Mark Brown
f8782f77 bce93a16

+9 -11
+7 -8
sound/soc/mediatek/common/mtk-dsp-sof-common.c
··· 15 15 { 16 16 struct snd_soc_card *card = rtd->card; 17 17 struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(card); 18 - struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv; 18 + const struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv; 19 19 int i, j, ret = 0; 20 20 21 21 for (i = 0; i < sof_priv->num_streams; i++) { ··· 55 55 int i; 56 56 struct snd_soc_dai_link *dai_link; 57 57 struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(card); 58 - struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv; 59 58 60 59 /* Set stream_name to help sof bind widgets */ 61 60 for_each_card_prelinks(card, i, dai_link) { ··· 62 63 dai_link->stream_name = dai_link->name; 63 64 } 64 65 65 - INIT_LIST_HEAD(&sof_priv->dai_link_list); 66 + INIT_LIST_HEAD(&soc_card_data->sof_dai_link_list); 66 67 67 68 return 0; 68 69 } ··· 72 73 { 73 74 struct snd_soc_card *card = rtd->card; 74 75 struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(card); 75 - struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv; 76 + const struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv; 76 77 struct snd_soc_pcm_runtime *fe; 77 78 struct snd_soc_pcm_runtime *be; 78 79 struct snd_soc_dpcm *dpcm; ··· 112 113 { 113 114 struct snd_soc_card *card = rtd->card; 114 115 struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(card); 115 - struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv; 116 + const struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv; 116 117 struct snd_soc_pcm_runtime *sof_be; 117 118 struct mtk_dai_link *dai_link; 118 119 int ret = 0; ··· 124 125 else if (sof_be->dai_link->be_hw_params_fixup) 125 126 ret = sof_be->dai_link->be_hw_params_fixup(sof_be, params); 126 127 } else { 127 - list_for_each_entry(dai_link, &sof_priv->dai_link_list, list) { 128 + list_for_each_entry(dai_link, &soc_card_data->sof_dai_link_list, list) { 128 129 if (strcmp(dai_link->name, rtd->dai_link->name) == 0) { 129 130 if (dai_link->be_hw_params_fixup) 130 131 ret = dai_link->be_hw_params_fixup(rtd, params); ··· 143 144 struct snd_soc_component *sof_comp = NULL; 144 145 struct mtk_soc_card_data *soc_card_data = 145 146 snd_soc_card_get_drvdata(card); 146 - struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv; 147 + const struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv; 147 148 struct snd_soc_dai_link *dai_link; 148 149 struct mtk_dai_link *mtk_dai_link; 149 150 int i; ··· 172 173 mtk_dai_link->be_hw_params_fixup = dai_link->be_hw_params_fixup; 173 174 mtk_dai_link->name = dai_link->name; 174 175 175 - list_add(&mtk_dai_link->list, &sof_priv->dai_link_list); 176 + list_add(&mtk_dai_link->list, &soc_card_data->sof_dai_link_list); 176 177 } 177 178 178 179 if (dai_link->no_pcm)
-1
sound/soc/mediatek/common/mtk-dsp-sof-common.h
··· 30 30 int num_streams; 31 31 int (*sof_dai_link_fixup)(struct snd_soc_pcm_runtime *rtd, 32 32 struct snd_pcm_hw_params *params); 33 - struct list_head dai_link_list; 34 33 }; 35 34 36 35 int mtk_sof_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
+1 -1
sound/soc/mediatek/common/mtk-soc-card.h
··· 13 13 struct mtk_sof_priv; 14 14 15 15 struct mtk_soc_card_data { 16 - struct mtk_sof_priv *sof_priv; 16 + const struct mtk_sof_priv *sof_priv; 17 17 struct list_head sof_dai_link_list; 18 18 struct mtk_platform_card_data *card_data; 19 19 void *mach_priv;
+1 -1
sound/soc/mediatek/common/mtk-soundcard-driver.h
··· 22 22 struct mtk_soundcard_pdata { 23 23 const char *card_name; 24 24 struct mtk_platform_card_data *card_data; 25 - struct mtk_sof_priv *sof_priv; 25 + const struct mtk_sof_priv *sof_priv; 26 26 int (*soc_probe)(struct mtk_soc_card_data *card_data, bool legacy); 27 27 }; 28 28