.. | .. |
---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
---|
1 | 2 | /* |
---|
2 | 3 | * wm5102.c -- WM5102 ALSA SoC Audio driver |
---|
3 | 4 | * |
---|
4 | 5 | * Copyright 2012 Wolfson Microelectronics plc |
---|
5 | 6 | * |
---|
6 | 7 | * 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. |
---|
11 | 8 | */ |
---|
12 | 9 | |
---|
13 | 10 | #include <linux/module.h> |
---|
.. | .. |
---|
646 | 643 | return ret; |
---|
647 | 644 | } |
---|
648 | 645 | } |
---|
| 646 | + |
---|
| 647 | + wm_adsp2_set_dspclk(w, v); |
---|
649 | 648 | break; |
---|
650 | 649 | |
---|
651 | 650 | case SND_SOC_DAPM_POST_PMD: |
---|
.. | .. |
---|
659 | 658 | break; |
---|
660 | 659 | } |
---|
661 | 660 | |
---|
662 | | - return wm_adsp2_early_event(w, kcontrol, event, v); |
---|
| 661 | + return wm_adsp_early_event(w, kcontrol, event); |
---|
663 | 662 | } |
---|
664 | 663 | |
---|
665 | 664 | static int wm5102_out_comp_coeff_get(struct snd_kcontrol *kcontrol, |
---|
.. | .. |
---|
1214 | 1213 | |
---|
1215 | 1214 | SND_SOC_DAPM_AIF_OUT("AIF1TX1", NULL, 0, |
---|
1216 | 1215 | 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, |
---|
1218 | 1217 | 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, |
---|
1220 | 1219 | 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, |
---|
1222 | 1221 | 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, |
---|
1224 | 1223 | 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, |
---|
1226 | 1225 | 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, |
---|
1228 | 1227 | 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, |
---|
1230 | 1229 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX8_ENA_SHIFT, 0), |
---|
1231 | 1230 | |
---|
1232 | 1231 | SND_SOC_DAPM_AIF_IN("AIF1RX1", NULL, 0, |
---|
1233 | 1232 | 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, |
---|
1235 | 1234 | 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, |
---|
1237 | 1236 | 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, |
---|
1239 | 1238 | 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, |
---|
1241 | 1240 | 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, |
---|
1243 | 1242 | 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, |
---|
1245 | 1244 | 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, |
---|
1247 | 1246 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX8_ENA_SHIFT, 0), |
---|
1248 | 1247 | |
---|
1249 | 1248 | SND_SOC_DAPM_AIF_OUT("AIF2TX1", NULL, 0, |
---|
1250 | 1249 | 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, |
---|
1252 | 1251 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX2_ENA_SHIFT, 0), |
---|
1253 | 1252 | |
---|
1254 | 1253 | SND_SOC_DAPM_AIF_IN("AIF2RX1", NULL, 0, |
---|
1255 | 1254 | 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, |
---|
1257 | 1256 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX2_ENA_SHIFT, 0), |
---|
1258 | 1257 | |
---|
1259 | 1258 | SND_SOC_DAPM_AIF_OUT("AIF3TX1", NULL, 0, |
---|
1260 | 1259 | 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, |
---|
1262 | 1261 | ARIZONA_AIF3_TX_ENABLES, ARIZONA_AIF3TX2_ENA_SHIFT, 0), |
---|
1263 | 1262 | |
---|
1264 | 1263 | SND_SOC_DAPM_AIF_IN("AIF3RX1", NULL, 0, |
---|
1265 | 1264 | 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, |
---|
1267 | 1266 | ARIZONA_AIF3_RX_ENABLES, ARIZONA_AIF3RX2_ENA_SHIFT, 0), |
---|
1268 | 1267 | |
---|
1269 | 1268 | SND_SOC_DAPM_AIF_OUT("SLIMTX1", NULL, 0, |
---|
1270 | 1269 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
---|
1271 | 1270 | ARIZONA_SLIMTX1_ENA_SHIFT, 0), |
---|
1272 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX2", NULL, 0, |
---|
| 1271 | +SND_SOC_DAPM_AIF_OUT("SLIMTX2", NULL, 1, |
---|
1273 | 1272 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
---|
1274 | 1273 | ARIZONA_SLIMTX2_ENA_SHIFT, 0), |
---|
1275 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX3", NULL, 0, |
---|
| 1274 | +SND_SOC_DAPM_AIF_OUT("SLIMTX3", NULL, 2, |
---|
1276 | 1275 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
---|
1277 | 1276 | ARIZONA_SLIMTX3_ENA_SHIFT, 0), |
---|
1278 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX4", NULL, 0, |
---|
| 1277 | +SND_SOC_DAPM_AIF_OUT("SLIMTX4", NULL, 3, |
---|
1279 | 1278 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
---|
1280 | 1279 | ARIZONA_SLIMTX4_ENA_SHIFT, 0), |
---|
1281 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX5", NULL, 0, |
---|
| 1280 | +SND_SOC_DAPM_AIF_OUT("SLIMTX5", NULL, 4, |
---|
1282 | 1281 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
---|
1283 | 1282 | ARIZONA_SLIMTX5_ENA_SHIFT, 0), |
---|
1284 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX6", NULL, 0, |
---|
| 1283 | +SND_SOC_DAPM_AIF_OUT("SLIMTX6", NULL, 5, |
---|
1285 | 1284 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
---|
1286 | 1285 | ARIZONA_SLIMTX6_ENA_SHIFT, 0), |
---|
1287 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX7", NULL, 0, |
---|
| 1286 | +SND_SOC_DAPM_AIF_OUT("SLIMTX7", NULL, 6, |
---|
1288 | 1287 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
---|
1289 | 1288 | ARIZONA_SLIMTX7_ENA_SHIFT, 0), |
---|
1290 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX8", NULL, 0, |
---|
| 1289 | +SND_SOC_DAPM_AIF_OUT("SLIMTX8", NULL, 7, |
---|
1291 | 1290 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
---|
1292 | 1291 | ARIZONA_SLIMTX8_ENA_SHIFT, 0), |
---|
1293 | 1292 | |
---|
1294 | 1293 | SND_SOC_DAPM_AIF_IN("SLIMRX1", NULL, 0, |
---|
1295 | 1294 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
---|
1296 | 1295 | ARIZONA_SLIMRX1_ENA_SHIFT, 0), |
---|
1297 | | -SND_SOC_DAPM_AIF_IN("SLIMRX2", NULL, 0, |
---|
| 1296 | +SND_SOC_DAPM_AIF_IN("SLIMRX2", NULL, 1, |
---|
1298 | 1297 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
---|
1299 | 1298 | ARIZONA_SLIMRX2_ENA_SHIFT, 0), |
---|
1300 | | -SND_SOC_DAPM_AIF_IN("SLIMRX3", NULL, 0, |
---|
| 1299 | +SND_SOC_DAPM_AIF_IN("SLIMRX3", NULL, 2, |
---|
1301 | 1300 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
---|
1302 | 1301 | ARIZONA_SLIMRX3_ENA_SHIFT, 0), |
---|
1303 | | -SND_SOC_DAPM_AIF_IN("SLIMRX4", NULL, 0, |
---|
| 1302 | +SND_SOC_DAPM_AIF_IN("SLIMRX4", NULL, 3, |
---|
1304 | 1303 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
---|
1305 | 1304 | ARIZONA_SLIMRX4_ENA_SHIFT, 0), |
---|
1306 | | -SND_SOC_DAPM_AIF_IN("SLIMRX5", NULL, 0, |
---|
| 1305 | +SND_SOC_DAPM_AIF_IN("SLIMRX5", NULL, 4, |
---|
1307 | 1306 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
---|
1308 | 1307 | ARIZONA_SLIMRX5_ENA_SHIFT, 0), |
---|
1309 | | -SND_SOC_DAPM_AIF_IN("SLIMRX6", NULL, 0, |
---|
| 1308 | +SND_SOC_DAPM_AIF_IN("SLIMRX6", NULL, 5, |
---|
1310 | 1309 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
---|
1311 | 1310 | ARIZONA_SLIMRX6_ENA_SHIFT, 0), |
---|
1312 | | -SND_SOC_DAPM_AIF_IN("SLIMRX7", NULL, 0, |
---|
| 1311 | +SND_SOC_DAPM_AIF_IN("SLIMRX7", NULL, 6, |
---|
1313 | 1312 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
---|
1314 | 1313 | ARIZONA_SLIMRX7_ENA_SHIFT, 0), |
---|
1315 | | -SND_SOC_DAPM_AIF_IN("SLIMRX8", NULL, 0, |
---|
| 1314 | +SND_SOC_DAPM_AIF_IN("SLIMRX8", NULL, 7, |
---|
1316 | 1315 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
---|
1317 | 1316 | ARIZONA_SLIMRX8_ENA_SHIFT, 0), |
---|
1318 | 1317 | |
---|
.. | .. |
---|
1910 | 1909 | }, |
---|
1911 | 1910 | }; |
---|
1912 | 1911 | |
---|
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) |
---|
1914 | 1914 | { |
---|
1915 | | - struct snd_soc_pcm_runtime *rtd = stream->private_data; |
---|
1916 | | - struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME); |
---|
1917 | 1915 | struct wm5102_priv *priv = snd_soc_component_get_drvdata(component); |
---|
1918 | 1916 | |
---|
1919 | 1917 | return wm_adsp_compr_open(&priv->core.adsp[0], stream); |
---|
.. | .. |
---|
1993 | 1991 | ARIZONA_DAC_DIGITAL_VOLUME_5R, |
---|
1994 | 1992 | }; |
---|
1995 | 1993 | |
---|
1996 | | -static struct snd_compr_ops wm5102_compr_ops = { |
---|
| 1994 | +static struct snd_compress_ops wm5102_compress_ops = { |
---|
1997 | 1995 | .open = wm5102_open, |
---|
1998 | 1996 | .free = wm_adsp_compr_free, |
---|
1999 | 1997 | .set_params = wm_adsp_compr_set_params, |
---|
.. | .. |
---|
2009 | 2007 | .set_sysclk = arizona_set_sysclk, |
---|
2010 | 2008 | .set_pll = wm5102_set_fll, |
---|
2011 | 2009 | .name = DRV_NAME, |
---|
2012 | | - .compr_ops = &wm5102_compr_ops, |
---|
| 2010 | + .compress_ops = &wm5102_compress_ops, |
---|
2013 | 2011 | .controls = wm5102_snd_controls, |
---|
2014 | 2012 | .num_controls = ARRAY_SIZE(wm5102_snd_controls), |
---|
2015 | 2013 | .dapm_widgets = wm5102_dapm_widgets, |
---|