Skip to content

Commit f8782f7

Browse files
AngeloGioacchino Del Regnobroonie
authored andcommitted
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>
1 parent bce93a1 commit f8782f7

4 files changed

Lines changed: 9 additions & 11 deletions

File tree

sound/soc/mediatek/common/mtk-dsp-sof-common.c

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ int mtk_sof_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
1515
{
1616
struct snd_soc_card *card = rtd->card;
1717
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;
1919
int i, j, ret = 0;
2020

2121
for (i = 0; i < sof_priv->num_streams; i++) {
@@ -55,15 +55,14 @@ int mtk_sof_card_probe(struct snd_soc_card *card)
5555
int i;
5656
struct snd_soc_dai_link *dai_link;
5757
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;
5958

6059
/* Set stream_name to help sof bind widgets */
6160
for_each_card_prelinks(card, i, dai_link) {
6261
if (dai_link->no_pcm && !dai_link->stream_name && dai_link->name)
6362
dai_link->stream_name = dai_link->name;
6463
}
6564

66-
INIT_LIST_HEAD(&sof_priv->dai_link_list);
65+
INIT_LIST_HEAD(&soc_card_data->sof_dai_link_list);
6766

6867
return 0;
6968
}
@@ -73,7 +72,7 @@ static struct snd_soc_pcm_runtime *mtk_sof_find_tplg_be(struct snd_soc_pcm_runti
7372
{
7473
struct snd_soc_card *card = rtd->card;
7574
struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(card);
76-
struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv;
75+
const struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv;
7776
struct snd_soc_pcm_runtime *fe;
7877
struct snd_soc_pcm_runtime *be;
7978
struct snd_soc_dpcm *dpcm;
@@ -113,7 +112,7 @@ static int mtk_sof_check_tplg_be_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
113112
{
114113
struct snd_soc_card *card = rtd->card;
115114
struct mtk_soc_card_data *soc_card_data = snd_soc_card_get_drvdata(card);
116-
struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv;
115+
const struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv;
117116
struct snd_soc_pcm_runtime *sof_be;
118117
struct mtk_dai_link *dai_link;
119118
int ret = 0;
@@ -125,7 +124,7 @@ static int mtk_sof_check_tplg_be_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,
125124
else if (sof_be->dai_link->be_hw_params_fixup)
126125
ret = sof_be->dai_link->be_hw_params_fixup(sof_be, params);
127126
} else {
128-
list_for_each_entry(dai_link, &sof_priv->dai_link_list, list) {
127+
list_for_each_entry(dai_link, &soc_card_data->sof_dai_link_list, list) {
129128
if (strcmp(dai_link->name, rtd->dai_link->name) == 0) {
130129
if (dai_link->be_hw_params_fixup)
131130
ret = dai_link->be_hw_params_fixup(rtd, params);
@@ -144,7 +143,7 @@ int mtk_sof_card_late_probe(struct snd_soc_card *card)
144143
struct snd_soc_component *sof_comp = NULL;
145144
struct mtk_soc_card_data *soc_card_data =
146145
snd_soc_card_get_drvdata(card);
147-
struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv;
146+
const struct mtk_sof_priv *sof_priv = soc_card_data->sof_priv;
148147
struct snd_soc_dai_link *dai_link;
149148
struct mtk_dai_link *mtk_dai_link;
150149
int i;
@@ -173,7 +172,7 @@ int mtk_sof_card_late_probe(struct snd_soc_card *card)
173172
mtk_dai_link->be_hw_params_fixup = dai_link->be_hw_params_fixup;
174173
mtk_dai_link->name = dai_link->name;
175174

176-
list_add(&mtk_dai_link->list, &sof_priv->dai_link_list);
175+
list_add(&mtk_dai_link->list, &soc_card_data->sof_dai_link_list);
177176
}
178177

179178
if (dai_link->no_pcm)

sound/soc/mediatek/common/mtk-dsp-sof-common.h

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,6 @@ struct mtk_sof_priv {
3030
int num_streams;
3131
int (*sof_dai_link_fixup)(struct snd_soc_pcm_runtime *rtd,
3232
struct snd_pcm_hw_params *params);
33-
struct list_head dai_link_list;
3433
};
3534

3635
int mtk_sof_dai_link_fixup(struct snd_soc_pcm_runtime *rtd,

sound/soc/mediatek/common/mtk-soc-card.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ struct mtk_platform_card_data;
1313
struct mtk_sof_priv;
1414

1515
struct mtk_soc_card_data {
16-
struct mtk_sof_priv *sof_priv;
16+
const struct mtk_sof_priv *sof_priv;
1717
struct list_head sof_dai_link_list;
1818
struct mtk_platform_card_data *card_data;
1919
void *mach_priv;

sound/soc/mediatek/common/mtk-soundcard-driver.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ struct mtk_platform_card_data {
2222
struct mtk_soundcard_pdata {
2323
const char *card_name;
2424
struct mtk_platform_card_data *card_data;
25-
struct mtk_sof_priv *sof_priv;
25+
const struct mtk_sof_priv *sof_priv;
2626
int (*soc_probe)(struct mtk_soc_card_data *card_data, bool legacy);
2727
};
2828

0 commit comments

Comments
 (0)