hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/sound/soc/codecs/cs47l24.c
....@@ -1,13 +1,10 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * cs47l24.h -- ALSA SoC Audio driver for Cirrus Logic CS47L24
34 *
45 * Copyright 2015 Cirrus Logic Inc.
56 *
67 * Author: Richard Fitzgerald <rf@opensource.wolfsonmicro.com>
7
- *
8
- * This program is free software; you can redistribute it and/or modify
9
- * it under the terms of the GNU General Public License version 2 as
10
- * published by the Free Software Foundation.
118 */
129
1310 #include <linux/module.h>
....@@ -75,7 +72,9 @@
7572
7673 v = (v & ARIZONA_SYSCLK_FREQ_MASK) >> ARIZONA_SYSCLK_FREQ_SHIFT;
7774
78
- return wm_adsp2_early_event(w, kcontrol, event, v);
75
+ wm_adsp2_set_dspclk(w, v);
76
+
77
+ return wm_adsp_early_event(w, kcontrol, event);
7978 }
8079
8180 static DECLARE_TLV_DB_SCALE(eq_tlv, -1200, 100, 0);
....@@ -500,72 +499,72 @@
500499
501500 SND_SOC_DAPM_AIF_OUT("AIF1TX1", NULL, 0,
502501 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX1_ENA_SHIFT, 0),
503
-SND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 0,
502
+SND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 1,
504503 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX2_ENA_SHIFT, 0),
505
-SND_SOC_DAPM_AIF_OUT("AIF1TX3", NULL, 0,
504
+SND_SOC_DAPM_AIF_OUT("AIF1TX3", NULL, 2,
506505 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX3_ENA_SHIFT, 0),
507
-SND_SOC_DAPM_AIF_OUT("AIF1TX4", NULL, 0,
506
+SND_SOC_DAPM_AIF_OUT("AIF1TX4", NULL, 3,
508507 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX4_ENA_SHIFT, 0),
509
-SND_SOC_DAPM_AIF_OUT("AIF1TX5", NULL, 0,
508
+SND_SOC_DAPM_AIF_OUT("AIF1TX5", NULL, 4,
510509 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX5_ENA_SHIFT, 0),
511
-SND_SOC_DAPM_AIF_OUT("AIF1TX6", NULL, 0,
510
+SND_SOC_DAPM_AIF_OUT("AIF1TX6", NULL, 5,
512511 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX6_ENA_SHIFT, 0),
513
-SND_SOC_DAPM_AIF_OUT("AIF1TX7", NULL, 0,
512
+SND_SOC_DAPM_AIF_OUT("AIF1TX7", NULL, 6,
514513 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX7_ENA_SHIFT, 0),
515
-SND_SOC_DAPM_AIF_OUT("AIF1TX8", NULL, 0,
514
+SND_SOC_DAPM_AIF_OUT("AIF1TX8", NULL, 7,
516515 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX8_ENA_SHIFT, 0),
517516
518517 SND_SOC_DAPM_AIF_IN("AIF1RX1", NULL, 0,
519518 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX1_ENA_SHIFT, 0),
520
-SND_SOC_DAPM_AIF_IN("AIF1RX2", NULL, 0,
519
+SND_SOC_DAPM_AIF_IN("AIF1RX2", NULL, 1,
521520 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX2_ENA_SHIFT, 0),
522
-SND_SOC_DAPM_AIF_IN("AIF1RX3", NULL, 0,
521
+SND_SOC_DAPM_AIF_IN("AIF1RX3", NULL, 2,
523522 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX3_ENA_SHIFT, 0),
524
-SND_SOC_DAPM_AIF_IN("AIF1RX4", NULL, 0,
523
+SND_SOC_DAPM_AIF_IN("AIF1RX4", NULL, 3,
525524 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX4_ENA_SHIFT, 0),
526
-SND_SOC_DAPM_AIF_IN("AIF1RX5", NULL, 0,
525
+SND_SOC_DAPM_AIF_IN("AIF1RX5", NULL, 4,
527526 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX5_ENA_SHIFT, 0),
528
-SND_SOC_DAPM_AIF_IN("AIF1RX6", NULL, 0,
527
+SND_SOC_DAPM_AIF_IN("AIF1RX6", NULL, 5,
529528 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX6_ENA_SHIFT, 0),
530
-SND_SOC_DAPM_AIF_IN("AIF1RX7", NULL, 0,
529
+SND_SOC_DAPM_AIF_IN("AIF1RX7", NULL, 6,
531530 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX7_ENA_SHIFT, 0),
532
-SND_SOC_DAPM_AIF_IN("AIF1RX8", NULL, 0,
531
+SND_SOC_DAPM_AIF_IN("AIF1RX8", NULL, 7,
533532 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX8_ENA_SHIFT, 0),
534533
535534 SND_SOC_DAPM_AIF_OUT("AIF2TX1", NULL, 0,
536535 ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX1_ENA_SHIFT, 0),
537
-SND_SOC_DAPM_AIF_OUT("AIF2TX2", NULL, 0,
536
+SND_SOC_DAPM_AIF_OUT("AIF2TX2", NULL, 1,
538537 ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX2_ENA_SHIFT, 0),
539
-SND_SOC_DAPM_AIF_OUT("AIF2TX3", NULL, 0,
538
+SND_SOC_DAPM_AIF_OUT("AIF2TX3", NULL, 2,
540539 ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX3_ENA_SHIFT, 0),
541
-SND_SOC_DAPM_AIF_OUT("AIF2TX4", NULL, 0,
540
+SND_SOC_DAPM_AIF_OUT("AIF2TX4", NULL, 3,
542541 ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX4_ENA_SHIFT, 0),
543
-SND_SOC_DAPM_AIF_OUT("AIF2TX5", NULL, 0,
542
+SND_SOC_DAPM_AIF_OUT("AIF2TX5", NULL, 4,
544543 ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX5_ENA_SHIFT, 0),
545
-SND_SOC_DAPM_AIF_OUT("AIF2TX6", NULL, 0,
544
+SND_SOC_DAPM_AIF_OUT("AIF2TX6", NULL, 5,
546545 ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX6_ENA_SHIFT, 0),
547546
548547 SND_SOC_DAPM_AIF_IN("AIF2RX1", NULL, 0,
549548 ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX1_ENA_SHIFT, 0),
550
-SND_SOC_DAPM_AIF_IN("AIF2RX2", NULL, 0,
549
+SND_SOC_DAPM_AIF_IN("AIF2RX2", NULL, 1,
551550 ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX2_ENA_SHIFT, 0),
552
-SND_SOC_DAPM_AIF_IN("AIF2RX3", NULL, 0,
551
+SND_SOC_DAPM_AIF_IN("AIF2RX3", NULL, 2,
553552 ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX3_ENA_SHIFT, 0),
554
-SND_SOC_DAPM_AIF_IN("AIF2RX4", NULL, 0,
553
+SND_SOC_DAPM_AIF_IN("AIF2RX4", NULL, 3,
555554 ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX4_ENA_SHIFT, 0),
556
-SND_SOC_DAPM_AIF_IN("AIF2RX5", NULL, 0,
555
+SND_SOC_DAPM_AIF_IN("AIF2RX5", NULL, 4,
557556 ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX5_ENA_SHIFT, 0),
558
-SND_SOC_DAPM_AIF_IN("AIF2RX6", NULL, 0,
557
+SND_SOC_DAPM_AIF_IN("AIF2RX6", NULL, 5,
559558 ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX6_ENA_SHIFT, 0),
560559
561560 SND_SOC_DAPM_AIF_OUT("AIF3TX1", NULL, 0,
562561 ARIZONA_AIF3_TX_ENABLES, ARIZONA_AIF3TX1_ENA_SHIFT, 0),
563
-SND_SOC_DAPM_AIF_OUT("AIF3TX2", NULL, 0,
562
+SND_SOC_DAPM_AIF_OUT("AIF3TX2", NULL, 1,
564563 ARIZONA_AIF3_TX_ENABLES, ARIZONA_AIF3TX2_ENA_SHIFT, 0),
565564
566565 SND_SOC_DAPM_AIF_IN("AIF3RX1", NULL, 0,
567566 ARIZONA_AIF3_RX_ENABLES, ARIZONA_AIF3RX1_ENA_SHIFT, 0),
568
-SND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 0,
567
+SND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 1,
569568 ARIZONA_AIF3_RX_ENABLES, ARIZONA_AIF3RX2_ENA_SHIFT, 0),
570569
571570 SND_SOC_DAPM_PGA_E("OUT1L", SND_SOC_NOPM,
....@@ -1069,22 +1068,22 @@
10691068 },
10701069 };
10711070
1072
-static int cs47l24_open(struct snd_compr_stream *stream)
1071
+static int cs47l24_open(struct snd_soc_component *component,
1072
+ struct snd_compr_stream *stream)
10731073 {
10741074 struct snd_soc_pcm_runtime *rtd = stream->private_data;
1075
- struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
10761075 struct cs47l24_priv *priv = snd_soc_component_get_drvdata(component);
10771076 struct arizona *arizona = priv->core.arizona;
10781077 int n_adsp;
10791078
1080
- if (strcmp(rtd->codec_dai->name, "cs47l24-dsp-voicectrl") == 0) {
1079
+ if (strcmp(asoc_rtd_to_codec(rtd, 0)->name, "cs47l24-dsp-voicectrl") == 0) {
10811080 n_adsp = 2;
1082
- } else if (strcmp(rtd->codec_dai->name, "cs47l24-dsp-trace") == 0) {
1081
+ } else if (strcmp(asoc_rtd_to_codec(rtd, 0)->name, "cs47l24-dsp-trace") == 0) {
10831082 n_adsp = 1;
10841083 } else {
10851084 dev_err(arizona->dev,
10861085 "No suitable compressed stream for DAI '%s'\n",
1087
- rtd->codec_dai->name);
1086
+ asoc_rtd_to_codec(rtd, 0)->name);
10881087 return -EINVAL;
10891088 }
10901089
....@@ -1179,7 +1178,7 @@
11791178 ARIZONA_DAC_DIGITAL_VOLUME_4L,
11801179 };
11811180
1182
-static struct snd_compr_ops cs47l24_compr_ops = {
1181
+static struct snd_compress_ops cs47l24_compress_ops = {
11831182 .open = cs47l24_open,
11841183 .free = wm_adsp_compr_free,
11851184 .set_params = wm_adsp_compr_set_params,
....@@ -1195,7 +1194,7 @@
11951194 .set_sysclk = arizona_set_sysclk,
11961195 .set_pll = cs47l24_set_fll,
11971196 .name = DRV_NAME,
1198
- .compr_ops = &cs47l24_compr_ops,
1197
+ .compress_ops = &cs47l24_compress_ops,
11991198 .controls = cs47l24_snd_controls,
12001199 .num_controls = ARRAY_SIZE(cs47l24_snd_controls),
12011200 .dapm_widgets = cs47l24_dapm_widgets,