Skip to content

Commit 4468189

Browse files
morimotobroonie
authored andcommitted
ASoC: soc-core: find rtd via dai_link pointer at snd_soc_get_pcm_runtime()
Current snd_soc_get_pcm_runtime() is finding rtd by checking dai_link name. But, it is strange and waste of CPU power, because its user want to get from rtd from dai_link, not from dai_link name. This patch find rtd via dai_link pointer instead of its name. Signed-off-by: Kuninori Morimoto <[email protected]> Reviewed-by: Ranjani Sridharan <[email protected]> Reviewed-by: Pierre-Louis Bossart <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Mark Brown <[email protected]>
1 parent 94def8e commit 4468189

File tree

11 files changed

+28
-28
lines changed

11 files changed

+28
-28
lines changed

include/sound/soc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -465,7 +465,7 @@ static inline int snd_soc_new_compress(struct snd_soc_pcm_runtime *rtd, int num)
465465
void snd_soc_disconnect_sync(struct device *dev);
466466

467467
struct snd_soc_pcm_runtime *snd_soc_get_pcm_runtime(struct snd_soc_card *card,
468-
const char *dai_link);
468+
struct snd_soc_dai_link *dai_link);
469469

470470
bool snd_soc_runtime_ignore_pmdown_time(struct snd_soc_pcm_runtime *rtd);
471471
void snd_soc_runtime_activate(struct snd_soc_pcm_runtime *rtd, int stream);

sound/soc/fsl/fsl-asoc-card.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -256,7 +256,7 @@ static int fsl_asoc_card_set_bias_level(struct snd_soc_card *card,
256256
unsigned int pll_out;
257257
int ret;
258258

259-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
259+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
260260
codec_dai = rtd->codec_dai;
261261
if (dapm->dev != codec_dai->dev)
262262
return 0;

sound/soc/pxa/mioa701_wm9713.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ static int rear_amp_event(struct snd_soc_dapm_widget *widget,
7272
struct snd_soc_pcm_runtime *rtd;
7373
struct snd_soc_component *component;
7474

75-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
75+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
7676
component = rtd->codec_dai->component;
7777
return rear_amp_power(component, SND_SOC_DAPM_EVENT_ON(event));
7878
}

sound/soc/samsung/bells.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ static int bells_set_bias_level(struct snd_soc_card *card,
5959
struct bells_drvdata *bells = card->drvdata;
6060
int ret;
6161

62-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name);
62+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_DSP_CODEC]);
6363
codec_dai = rtd->codec_dai;
6464
component = codec_dai->component;
6565

@@ -105,7 +105,7 @@ static int bells_set_bias_level_post(struct snd_soc_card *card,
105105
struct bells_drvdata *bells = card->drvdata;
106106
int ret;
107107

108-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name);
108+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_DSP_CODEC]);
109109
codec_dai = rtd->codec_dai;
110110
component = codec_dai->component;
111111

@@ -151,10 +151,10 @@ static int bells_late_probe(struct snd_soc_card *card)
151151
struct snd_soc_dai *wm9081_dai;
152152
int ret;
153153

154-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_AP_DSP].name);
154+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_AP_DSP]);
155155
wm0010 = rtd->codec_dai->component;
156156

157-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_DSP_CODEC].name);
157+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_DSP_CODEC]);
158158
component = rtd->codec_dai->component;
159159
aif1_dai = rtd->codec_dai;
160160

@@ -194,7 +194,7 @@ static int bells_late_probe(struct snd_soc_card *card)
194194
return ret;
195195
}
196196

197-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_CODEC_CP].name);
197+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_CODEC_CP]);
198198
aif2_dai = rtd->cpu_dai;
199199

200200
ret = snd_soc_dai_set_sysclk(aif2_dai, ARIZONA_CLK_ASYNCCLK, 0, 0);
@@ -206,7 +206,7 @@ static int bells_late_probe(struct snd_soc_card *card)
206206
if (card->num_rtd == DAI_CODEC_SUB)
207207
return 0;
208208

209-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[DAI_CODEC_SUB].name);
209+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[DAI_CODEC_SUB]);
210210
aif3_dai = rtd->cpu_dai;
211211
wm9081_dai = rtd->codec_dai;
212212

sound/soc/samsung/littlemill.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ static int littlemill_set_bias_level(struct snd_soc_card *card,
2222
struct snd_soc_dai *aif1_dai;
2323
int ret;
2424

25-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
25+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
2626
aif1_dai = rtd->codec_dai;
2727

2828
if (dapm->dev != aif1_dai->dev)
@@ -69,7 +69,7 @@ static int littlemill_set_bias_level_post(struct snd_soc_card *card,
6969
struct snd_soc_dai *aif1_dai;
7070
int ret;
7171

72-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
72+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
7373
aif1_dai = rtd->codec_dai;
7474

7575
if (dapm->dev != aif1_dai->dev)
@@ -180,7 +180,7 @@ static int bbclk_ev(struct snd_soc_dapm_widget *w,
180180
struct snd_soc_dai *aif2_dai;
181181
int ret;
182182

183-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[1].name);
183+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[1]);
184184
aif2_dai = rtd->cpu_dai;
185185

186186
switch (event) {
@@ -263,11 +263,11 @@ static int littlemill_late_probe(struct snd_soc_card *card)
263263
struct snd_soc_dai *aif2_dai;
264264
int ret;
265265

266-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
266+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
267267
component = rtd->codec_dai->component;
268268
aif1_dai = rtd->codec_dai;
269269

270-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[1].name);
270+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[1]);
271271
aif2_dai = rtd->cpu_dai;
272272

273273
ret = snd_soc_dai_set_sysclk(aif1_dai, WM8994_SYSCLK_MCLK2,

sound/soc/samsung/snow.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@ static int snow_late_probe(struct snd_soc_card *card)
106106
struct snd_soc_pcm_runtime *rtd;
107107
struct snd_soc_dai *codec_dai;
108108

109-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
109+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
110110

111111
/* In the multi-codec case codec_dais 0 is MAX98095 and 1 is HDMI. */
112112
if (rtd->num_codecs > 1)

sound/soc/samsung/speyside.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ static int speyside_set_bias_level(struct snd_soc_card *card,
2424
struct snd_soc_dai *codec_dai;
2525
int ret;
2626

27-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[1].name);
27+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[1]);
2828
codec_dai = rtd->codec_dai;
2929

3030
if (dapm->dev != codec_dai->dev)
@@ -60,7 +60,7 @@ static int speyside_set_bias_level_post(struct snd_soc_card *card,
6060
struct snd_soc_dai *codec_dai;
6161
int ret;
6262

63-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[1].name);
63+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[1]);
6464
codec_dai = rtd->codec_dai;
6565

6666
if (dapm->dev != codec_dai->dev)

sound/soc/samsung/tm2_wm5110.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ static int tm2_set_bias_level(struct snd_soc_card *card,
282282
{
283283
struct snd_soc_pcm_runtime *rtd;
284284

285-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
285+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
286286

287287
if (dapm->dev != rtd->codec_dai->dev)
288288
return 0;
@@ -314,7 +314,7 @@ static int tm2_late_probe(struct snd_soc_card *card)
314314
struct snd_soc_dai *aif2_dai;
315315
int ret;
316316

317-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[TM2_DAI_AIF1].name);
317+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[TM2_DAI_AIF1]);
318318
aif1_dai = rtd->codec_dai;
319319
priv->component = rtd->codec_dai->component;
320320

@@ -324,7 +324,7 @@ static int tm2_late_probe(struct snd_soc_card *card)
324324
return ret;
325325
}
326326

327-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[TM2_DAI_AIF2].name);
327+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[TM2_DAI_AIF2]);
328328
aif2_dai = rtd->codec_dai;
329329

330330
ret = snd_soc_dai_set_sysclk(aif2_dai, ARIZONA_CLK_ASYNCCLK, 0, 0);

sound/soc/samsung/tobermory.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ static int tobermory_set_bias_level(struct snd_soc_card *card,
2222
struct snd_soc_dai *codec_dai;
2323
int ret;
2424

25-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
25+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
2626
codec_dai = rtd->codec_dai;
2727

2828
if (dapm->dev != codec_dai->dev)
@@ -65,7 +65,7 @@ static int tobermory_set_bias_level_post(struct snd_soc_card *card,
6565
struct snd_soc_dai *codec_dai;
6666
int ret;
6767

68-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
68+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
6969
codec_dai = rtd->codec_dai;
7070

7171
if (dapm->dev != codec_dai->dev)
@@ -180,7 +180,7 @@ static int tobermory_late_probe(struct snd_soc_card *card)
180180
struct snd_soc_dai *codec_dai;
181181
int ret;
182182

183-
rtd = snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
183+
rtd = snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
184184
component = rtd->codec_dai->component;
185185
codec_dai = rtd->codec_dai;
186186

sound/soc/soc-core.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -393,15 +393,15 @@ static const struct snd_soc_ops null_snd_soc_ops;
393393

394394
struct snd_soc_pcm_runtime
395395
*snd_soc_get_pcm_runtime(struct snd_soc_card *card,
396-
const char *dai_link)
396+
struct snd_soc_dai_link *dai_link)
397397
{
398398
struct snd_soc_pcm_runtime *rtd;
399399

400400
for_each_card_rtds(card, rtd) {
401-
if (!strcmp(rtd->dai_link->name, dai_link))
401+
if (rtd->dai_link == dai_link)
402402
return rtd;
403403
}
404-
dev_dbg(card->dev, "ASoC: failed to find rtd %s\n", dai_link);
404+
dev_dbg(card->dev, "ASoC: failed to find rtd %s\n", dai_link->name);
405405
return NULL;
406406
}
407407
EXPORT_SYMBOL_GPL(snd_soc_get_pcm_runtime);
@@ -1064,7 +1064,7 @@ void snd_soc_remove_dai_link(struct snd_soc_card *card,
10641064
if (card->remove_dai_link)
10651065
card->remove_dai_link(card, dai_link);
10661066

1067-
rtd = snd_soc_get_pcm_runtime(card, dai_link->name);
1067+
rtd = snd_soc_get_pcm_runtime(card, dai_link);
10681068
if (rtd)
10691069
soc_free_pcm_runtime(rtd);
10701070
}

sound/soc/tegra/tegra_wm8903.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,7 @@ static int tegra_wm8903_init(struct snd_soc_pcm_runtime *rtd)
186186
static int tegra_wm8903_remove(struct snd_soc_card *card)
187187
{
188188
struct snd_soc_pcm_runtime *rtd =
189-
snd_soc_get_pcm_runtime(card, card->dai_link[0].name);
189+
snd_soc_get_pcm_runtime(card, &card->dai_link[0]);
190190
struct snd_soc_dai *codec_dai = rtd->codec_dai;
191191
struct snd_soc_component *component = codec_dai->component;
192192

0 commit comments

Comments
 (0)