hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/sound/soc/codecs/wm5102.c
....@@ -1,13 +1,10 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * wm5102.c -- WM5102 ALSA SoC Audio driver
34 *
45 * Copyright 2012 Wolfson Microelectronics plc
56 *
67 * Author: Mark Brown <broonie@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>
....@@ -646,6 +643,8 @@
646643 return ret;
647644 }
648645 }
646
+
647
+ wm_adsp2_set_dspclk(w, v);
649648 break;
650649
651650 case SND_SOC_DAPM_POST_PMD:
....@@ -659,7 +658,7 @@
659658 break;
660659 }
661660
662
- return wm_adsp2_early_event(w, kcontrol, event, v);
661
+ return wm_adsp_early_event(w, kcontrol, event);
663662 }
664663
665664 static int wm5102_out_comp_coeff_get(struct snd_kcontrol *kcontrol,
....@@ -1214,105 +1213,105 @@
12141213
12151214 SND_SOC_DAPM_AIF_OUT("AIF1TX1", NULL, 0,
12161215 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX1_ENA_SHIFT, 0),
1217
-SND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 0,
1216
+SND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 1,
12181217 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX2_ENA_SHIFT, 0),
1219
-SND_SOC_DAPM_AIF_OUT("AIF1TX3", NULL, 0,
1218
+SND_SOC_DAPM_AIF_OUT("AIF1TX3", NULL, 2,
12201219 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX3_ENA_SHIFT, 0),
1221
-SND_SOC_DAPM_AIF_OUT("AIF1TX4", NULL, 0,
1220
+SND_SOC_DAPM_AIF_OUT("AIF1TX4", NULL, 3,
12221221 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX4_ENA_SHIFT, 0),
1223
-SND_SOC_DAPM_AIF_OUT("AIF1TX5", NULL, 0,
1222
+SND_SOC_DAPM_AIF_OUT("AIF1TX5", NULL, 4,
12241223 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX5_ENA_SHIFT, 0),
1225
-SND_SOC_DAPM_AIF_OUT("AIF1TX6", NULL, 0,
1224
+SND_SOC_DAPM_AIF_OUT("AIF1TX6", NULL, 5,
12261225 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX6_ENA_SHIFT, 0),
1227
-SND_SOC_DAPM_AIF_OUT("AIF1TX7", NULL, 0,
1226
+SND_SOC_DAPM_AIF_OUT("AIF1TX7", NULL, 6,
12281227 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX7_ENA_SHIFT, 0),
1229
-SND_SOC_DAPM_AIF_OUT("AIF1TX8", NULL, 0,
1228
+SND_SOC_DAPM_AIF_OUT("AIF1TX8", NULL, 7,
12301229 ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX8_ENA_SHIFT, 0),
12311230
12321231 SND_SOC_DAPM_AIF_IN("AIF1RX1", NULL, 0,
12331232 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX1_ENA_SHIFT, 0),
1234
-SND_SOC_DAPM_AIF_IN("AIF1RX2", NULL, 0,
1233
+SND_SOC_DAPM_AIF_IN("AIF1RX2", NULL, 1,
12351234 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX2_ENA_SHIFT, 0),
1236
-SND_SOC_DAPM_AIF_IN("AIF1RX3", NULL, 0,
1235
+SND_SOC_DAPM_AIF_IN("AIF1RX3", NULL, 2,
12371236 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX3_ENA_SHIFT, 0),
1238
-SND_SOC_DAPM_AIF_IN("AIF1RX4", NULL, 0,
1237
+SND_SOC_DAPM_AIF_IN("AIF1RX4", NULL, 3,
12391238 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX4_ENA_SHIFT, 0),
1240
-SND_SOC_DAPM_AIF_IN("AIF1RX5", NULL, 0,
1239
+SND_SOC_DAPM_AIF_IN("AIF1RX5", NULL, 4,
12411240 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX5_ENA_SHIFT, 0),
1242
-SND_SOC_DAPM_AIF_IN("AIF1RX6", NULL, 0,
1241
+SND_SOC_DAPM_AIF_IN("AIF1RX6", NULL, 5,
12431242 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX6_ENA_SHIFT, 0),
1244
-SND_SOC_DAPM_AIF_IN("AIF1RX7", NULL, 0,
1243
+SND_SOC_DAPM_AIF_IN("AIF1RX7", NULL, 6,
12451244 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX7_ENA_SHIFT, 0),
1246
-SND_SOC_DAPM_AIF_IN("AIF1RX8", NULL, 0,
1245
+SND_SOC_DAPM_AIF_IN("AIF1RX8", NULL, 7,
12471246 ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX8_ENA_SHIFT, 0),
12481247
12491248 SND_SOC_DAPM_AIF_OUT("AIF2TX1", NULL, 0,
12501249 ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX1_ENA_SHIFT, 0),
1251
-SND_SOC_DAPM_AIF_OUT("AIF2TX2", NULL, 0,
1250
+SND_SOC_DAPM_AIF_OUT("AIF2TX2", NULL, 1,
12521251 ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX2_ENA_SHIFT, 0),
12531252
12541253 SND_SOC_DAPM_AIF_IN("AIF2RX1", NULL, 0,
12551254 ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX1_ENA_SHIFT, 0),
1256
-SND_SOC_DAPM_AIF_IN("AIF2RX2", NULL, 0,
1255
+SND_SOC_DAPM_AIF_IN("AIF2RX2", NULL, 1,
12571256 ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX2_ENA_SHIFT, 0),
12581257
12591258 SND_SOC_DAPM_AIF_OUT("AIF3TX1", NULL, 0,
12601259 ARIZONA_AIF3_TX_ENABLES, ARIZONA_AIF3TX1_ENA_SHIFT, 0),
1261
-SND_SOC_DAPM_AIF_OUT("AIF3TX2", NULL, 0,
1260
+SND_SOC_DAPM_AIF_OUT("AIF3TX2", NULL, 1,
12621261 ARIZONA_AIF3_TX_ENABLES, ARIZONA_AIF3TX2_ENA_SHIFT, 0),
12631262
12641263 SND_SOC_DAPM_AIF_IN("AIF3RX1", NULL, 0,
12651264 ARIZONA_AIF3_RX_ENABLES, ARIZONA_AIF3RX1_ENA_SHIFT, 0),
1266
-SND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 0,
1265
+SND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 1,
12671266 ARIZONA_AIF3_RX_ENABLES, ARIZONA_AIF3RX2_ENA_SHIFT, 0),
12681267
12691268 SND_SOC_DAPM_AIF_OUT("SLIMTX1", NULL, 0,
12701269 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
12711270 ARIZONA_SLIMTX1_ENA_SHIFT, 0),
1272
-SND_SOC_DAPM_AIF_OUT("SLIMTX2", NULL, 0,
1271
+SND_SOC_DAPM_AIF_OUT("SLIMTX2", NULL, 1,
12731272 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
12741273 ARIZONA_SLIMTX2_ENA_SHIFT, 0),
1275
-SND_SOC_DAPM_AIF_OUT("SLIMTX3", NULL, 0,
1274
+SND_SOC_DAPM_AIF_OUT("SLIMTX3", NULL, 2,
12761275 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
12771276 ARIZONA_SLIMTX3_ENA_SHIFT, 0),
1278
-SND_SOC_DAPM_AIF_OUT("SLIMTX4", NULL, 0,
1277
+SND_SOC_DAPM_AIF_OUT("SLIMTX4", NULL, 3,
12791278 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
12801279 ARIZONA_SLIMTX4_ENA_SHIFT, 0),
1281
-SND_SOC_DAPM_AIF_OUT("SLIMTX5", NULL, 0,
1280
+SND_SOC_DAPM_AIF_OUT("SLIMTX5", NULL, 4,
12821281 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
12831282 ARIZONA_SLIMTX5_ENA_SHIFT, 0),
1284
-SND_SOC_DAPM_AIF_OUT("SLIMTX6", NULL, 0,
1283
+SND_SOC_DAPM_AIF_OUT("SLIMTX6", NULL, 5,
12851284 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
12861285 ARIZONA_SLIMTX6_ENA_SHIFT, 0),
1287
-SND_SOC_DAPM_AIF_OUT("SLIMTX7", NULL, 0,
1286
+SND_SOC_DAPM_AIF_OUT("SLIMTX7", NULL, 6,
12881287 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
12891288 ARIZONA_SLIMTX7_ENA_SHIFT, 0),
1290
-SND_SOC_DAPM_AIF_OUT("SLIMTX8", NULL, 0,
1289
+SND_SOC_DAPM_AIF_OUT("SLIMTX8", NULL, 7,
12911290 ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE,
12921291 ARIZONA_SLIMTX8_ENA_SHIFT, 0),
12931292
12941293 SND_SOC_DAPM_AIF_IN("SLIMRX1", NULL, 0,
12951294 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
12961295 ARIZONA_SLIMRX1_ENA_SHIFT, 0),
1297
-SND_SOC_DAPM_AIF_IN("SLIMRX2", NULL, 0,
1296
+SND_SOC_DAPM_AIF_IN("SLIMRX2", NULL, 1,
12981297 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
12991298 ARIZONA_SLIMRX2_ENA_SHIFT, 0),
1300
-SND_SOC_DAPM_AIF_IN("SLIMRX3", NULL, 0,
1299
+SND_SOC_DAPM_AIF_IN("SLIMRX3", NULL, 2,
13011300 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
13021301 ARIZONA_SLIMRX3_ENA_SHIFT, 0),
1303
-SND_SOC_DAPM_AIF_IN("SLIMRX4", NULL, 0,
1302
+SND_SOC_DAPM_AIF_IN("SLIMRX4", NULL, 3,
13041303 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
13051304 ARIZONA_SLIMRX4_ENA_SHIFT, 0),
1306
-SND_SOC_DAPM_AIF_IN("SLIMRX5", NULL, 0,
1305
+SND_SOC_DAPM_AIF_IN("SLIMRX5", NULL, 4,
13071306 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
13081307 ARIZONA_SLIMRX5_ENA_SHIFT, 0),
1309
-SND_SOC_DAPM_AIF_IN("SLIMRX6", NULL, 0,
1308
+SND_SOC_DAPM_AIF_IN("SLIMRX6", NULL, 5,
13101309 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
13111310 ARIZONA_SLIMRX6_ENA_SHIFT, 0),
1312
-SND_SOC_DAPM_AIF_IN("SLIMRX7", NULL, 0,
1311
+SND_SOC_DAPM_AIF_IN("SLIMRX7", NULL, 6,
13131312 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
13141313 ARIZONA_SLIMRX7_ENA_SHIFT, 0),
1315
-SND_SOC_DAPM_AIF_IN("SLIMRX8", NULL, 0,
1314
+SND_SOC_DAPM_AIF_IN("SLIMRX8", NULL, 7,
13161315 ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE,
13171316 ARIZONA_SLIMRX8_ENA_SHIFT, 0),
13181317
....@@ -1910,10 +1909,9 @@
19101909 },
19111910 };
19121911
1913
-static int wm5102_open(struct snd_compr_stream *stream)
1912
+static int wm5102_open(struct snd_soc_component *component,
1913
+ struct snd_compr_stream *stream)
19141914 {
1915
- struct snd_soc_pcm_runtime *rtd = stream->private_data;
1916
- struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME);
19171915 struct wm5102_priv *priv = snd_soc_component_get_drvdata(component);
19181916
19191917 return wm_adsp_compr_open(&priv->core.adsp[0], stream);
....@@ -1993,7 +1991,7 @@
19931991 ARIZONA_DAC_DIGITAL_VOLUME_5R,
19941992 };
19951993
1996
-static struct snd_compr_ops wm5102_compr_ops = {
1994
+static struct snd_compress_ops wm5102_compress_ops = {
19971995 .open = wm5102_open,
19981996 .free = wm_adsp_compr_free,
19991997 .set_params = wm_adsp_compr_set_params,
....@@ -2009,7 +2007,7 @@
20092007 .set_sysclk = arizona_set_sysclk,
20102008 .set_pll = wm5102_set_fll,
20112009 .name = DRV_NAME,
2012
- .compr_ops = &wm5102_compr_ops,
2010
+ .compress_ops = &wm5102_compress_ops,
20132011 .controls = wm5102_snd_controls,
20142012 .num_controls = ARRAY_SIZE(wm5102_snd_controls),
20152013 .dapm_widgets = wm5102_dapm_widgets,