| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * wm5110.c -- WM5110 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> |
|---|
| .. | .. |
|---|
| 211 | 208 | |
|---|
| 212 | 209 | v = (v & ARIZONA_SYSCLK_FREQ_MASK) >> ARIZONA_SYSCLK_FREQ_SHIFT; |
|---|
| 213 | 210 | |
|---|
| 214 | | - return wm_adsp2_early_event(w, kcontrol, event, v); |
|---|
| 211 | + wm_adsp2_set_dspclk(w, v); |
|---|
| 212 | + |
|---|
| 213 | + return wm_adsp_early_event(w, kcontrol, event); |
|---|
| 215 | 214 | } |
|---|
| 216 | 215 | |
|---|
| 217 | 216 | static const struct reg_sequence wm5110_no_dre_left_enable[] = { |
|---|
| .. | .. |
|---|
| 291 | 290 | struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); |
|---|
| 292 | 291 | struct arizona_priv *priv = snd_soc_component_get_drvdata(component); |
|---|
| 293 | 292 | struct arizona *arizona = priv->arizona; |
|---|
| 294 | | - unsigned int val = snd_soc_component_read32(component, ARIZONA_DRE_ENABLE); |
|---|
| 293 | + unsigned int val = snd_soc_component_read(component, ARIZONA_DRE_ENABLE); |
|---|
| 295 | 294 | const struct reg_sequence *wseq; |
|---|
| 296 | 295 | int nregs; |
|---|
| 297 | 296 | |
|---|
| .. | .. |
|---|
| 327 | 326 | { |
|---|
| 328 | 327 | struct snd_soc_component *component = snd_soc_dapm_to_component(w->dapm); |
|---|
| 329 | 328 | struct arizona_priv *priv = snd_soc_component_get_drvdata(component); |
|---|
| 330 | | - unsigned int val = snd_soc_component_read32(component, ARIZONA_DRE_ENABLE); |
|---|
| 329 | + unsigned int val = snd_soc_component_read(component, ARIZONA_DRE_ENABLE); |
|---|
| 331 | 330 | |
|---|
| 332 | 331 | switch (w->shift) { |
|---|
| 333 | 332 | case ARIZONA_OUT1L_ENA_SHIFT: |
|---|
| .. | .. |
|---|
| 414 | 413 | unsigned int rnew = (!!ucontrol->value.integer.value[1]) << mc->rshift; |
|---|
| 415 | 414 | unsigned int lold, rold; |
|---|
| 416 | 415 | unsigned int lena, rena; |
|---|
| 416 | + bool change = false; |
|---|
| 417 | 417 | int ret; |
|---|
| 418 | 418 | |
|---|
| 419 | 419 | snd_soc_dapm_mutex_lock(dapm); |
|---|
| .. | .. |
|---|
| 441 | 441 | goto err; |
|---|
| 442 | 442 | } |
|---|
| 443 | 443 | |
|---|
| 444 | | - ret = regmap_update_bits(arizona->regmap, ARIZONA_DRE_ENABLE, |
|---|
| 445 | | - mask, lnew | rnew); |
|---|
| 444 | + ret = regmap_update_bits_check(arizona->regmap, ARIZONA_DRE_ENABLE, |
|---|
| 445 | + mask, lnew | rnew, &change); |
|---|
| 446 | 446 | if (ret) { |
|---|
| 447 | 447 | dev_err(arizona->dev, "Failed to set DRE: %d\n", ret); |
|---|
| 448 | 448 | goto err; |
|---|
| .. | .. |
|---|
| 454 | 454 | |
|---|
| 455 | 455 | if (!rnew && rold) |
|---|
| 456 | 456 | wm5110_clear_pga_volume(arizona, mc->rshift); |
|---|
| 457 | + |
|---|
| 458 | + if (change) |
|---|
| 459 | + ret = 1; |
|---|
| 457 | 460 | |
|---|
| 458 | 461 | err: |
|---|
| 459 | 462 | snd_soc_dapm_mutex_unlock(dapm); |
|---|
| .. | .. |
|---|
| 525 | 528 | wm5110->in_post_pending++; |
|---|
| 526 | 529 | return 0; |
|---|
| 527 | 530 | case SND_SOC_DAPM_PRE_PMU: |
|---|
| 528 | | - wm5110->in_pga_cache[w->shift] = snd_soc_component_read32(component, reg); |
|---|
| 531 | + wm5110->in_pga_cache[w->shift] = snd_soc_component_read(component, reg); |
|---|
| 529 | 532 | |
|---|
| 530 | 533 | snd_soc_component_update_bits(component, reg, mask, |
|---|
| 531 | 534 | 0x40 << ARIZONA_IN1L_PGA_VOL_SHIFT); |
|---|
| .. | .. |
|---|
| 1348 | 1351 | |
|---|
| 1349 | 1352 | SND_SOC_DAPM_AIF_OUT("AIF1TX1", NULL, 0, |
|---|
| 1350 | 1353 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX1_ENA_SHIFT, 0), |
|---|
| 1351 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 0, |
|---|
| 1354 | +SND_SOC_DAPM_AIF_OUT("AIF1TX2", NULL, 1, |
|---|
| 1352 | 1355 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX2_ENA_SHIFT, 0), |
|---|
| 1353 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX3", NULL, 0, |
|---|
| 1356 | +SND_SOC_DAPM_AIF_OUT("AIF1TX3", NULL, 2, |
|---|
| 1354 | 1357 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX3_ENA_SHIFT, 0), |
|---|
| 1355 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX4", NULL, 0, |
|---|
| 1358 | +SND_SOC_DAPM_AIF_OUT("AIF1TX4", NULL, 3, |
|---|
| 1356 | 1359 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX4_ENA_SHIFT, 0), |
|---|
| 1357 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX5", NULL, 0, |
|---|
| 1360 | +SND_SOC_DAPM_AIF_OUT("AIF1TX5", NULL, 4, |
|---|
| 1358 | 1361 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX5_ENA_SHIFT, 0), |
|---|
| 1359 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX6", NULL, 0, |
|---|
| 1362 | +SND_SOC_DAPM_AIF_OUT("AIF1TX6", NULL, 5, |
|---|
| 1360 | 1363 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX6_ENA_SHIFT, 0), |
|---|
| 1361 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX7", NULL, 0, |
|---|
| 1364 | +SND_SOC_DAPM_AIF_OUT("AIF1TX7", NULL, 6, |
|---|
| 1362 | 1365 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX7_ENA_SHIFT, 0), |
|---|
| 1363 | | -SND_SOC_DAPM_AIF_OUT("AIF1TX8", NULL, 0, |
|---|
| 1366 | +SND_SOC_DAPM_AIF_OUT("AIF1TX8", NULL, 7, |
|---|
| 1364 | 1367 | ARIZONA_AIF1_TX_ENABLES, ARIZONA_AIF1TX8_ENA_SHIFT, 0), |
|---|
| 1365 | 1368 | |
|---|
| 1366 | 1369 | SND_SOC_DAPM_AIF_IN("AIF1RX1", NULL, 0, |
|---|
| 1367 | 1370 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX1_ENA_SHIFT, 0), |
|---|
| 1368 | | -SND_SOC_DAPM_AIF_IN("AIF1RX2", NULL, 0, |
|---|
| 1371 | +SND_SOC_DAPM_AIF_IN("AIF1RX2", NULL, 1, |
|---|
| 1369 | 1372 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX2_ENA_SHIFT, 0), |
|---|
| 1370 | | -SND_SOC_DAPM_AIF_IN("AIF1RX3", NULL, 0, |
|---|
| 1373 | +SND_SOC_DAPM_AIF_IN("AIF1RX3", NULL, 2, |
|---|
| 1371 | 1374 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX3_ENA_SHIFT, 0), |
|---|
| 1372 | | -SND_SOC_DAPM_AIF_IN("AIF1RX4", NULL, 0, |
|---|
| 1375 | +SND_SOC_DAPM_AIF_IN("AIF1RX4", NULL, 3, |
|---|
| 1373 | 1376 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX4_ENA_SHIFT, 0), |
|---|
| 1374 | | -SND_SOC_DAPM_AIF_IN("AIF1RX5", NULL, 0, |
|---|
| 1377 | +SND_SOC_DAPM_AIF_IN("AIF1RX5", NULL, 4, |
|---|
| 1375 | 1378 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX5_ENA_SHIFT, 0), |
|---|
| 1376 | | -SND_SOC_DAPM_AIF_IN("AIF1RX6", NULL, 0, |
|---|
| 1379 | +SND_SOC_DAPM_AIF_IN("AIF1RX6", NULL, 5, |
|---|
| 1377 | 1380 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX6_ENA_SHIFT, 0), |
|---|
| 1378 | | -SND_SOC_DAPM_AIF_IN("AIF1RX7", NULL, 0, |
|---|
| 1381 | +SND_SOC_DAPM_AIF_IN("AIF1RX7", NULL, 6, |
|---|
| 1379 | 1382 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX7_ENA_SHIFT, 0), |
|---|
| 1380 | | -SND_SOC_DAPM_AIF_IN("AIF1RX8", NULL, 0, |
|---|
| 1383 | +SND_SOC_DAPM_AIF_IN("AIF1RX8", NULL, 7, |
|---|
| 1381 | 1384 | ARIZONA_AIF1_RX_ENABLES, ARIZONA_AIF1RX8_ENA_SHIFT, 0), |
|---|
| 1382 | 1385 | |
|---|
| 1383 | 1386 | SND_SOC_DAPM_AIF_OUT("AIF2TX1", NULL, 0, |
|---|
| 1384 | 1387 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX1_ENA_SHIFT, 0), |
|---|
| 1385 | | -SND_SOC_DAPM_AIF_OUT("AIF2TX2", NULL, 0, |
|---|
| 1388 | +SND_SOC_DAPM_AIF_OUT("AIF2TX2", NULL, 1, |
|---|
| 1386 | 1389 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX2_ENA_SHIFT, 0), |
|---|
| 1387 | | -SND_SOC_DAPM_AIF_OUT("AIF2TX3", NULL, 0, |
|---|
| 1390 | +SND_SOC_DAPM_AIF_OUT("AIF2TX3", NULL, 2, |
|---|
| 1388 | 1391 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX3_ENA_SHIFT, 0), |
|---|
| 1389 | | -SND_SOC_DAPM_AIF_OUT("AIF2TX4", NULL, 0, |
|---|
| 1392 | +SND_SOC_DAPM_AIF_OUT("AIF2TX4", NULL, 3, |
|---|
| 1390 | 1393 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX4_ENA_SHIFT, 0), |
|---|
| 1391 | | -SND_SOC_DAPM_AIF_OUT("AIF2TX5", NULL, 0, |
|---|
| 1394 | +SND_SOC_DAPM_AIF_OUT("AIF2TX5", NULL, 4, |
|---|
| 1392 | 1395 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX5_ENA_SHIFT, 0), |
|---|
| 1393 | | -SND_SOC_DAPM_AIF_OUT("AIF2TX6", NULL, 0, |
|---|
| 1396 | +SND_SOC_DAPM_AIF_OUT("AIF2TX6", NULL, 5, |
|---|
| 1394 | 1397 | ARIZONA_AIF2_TX_ENABLES, ARIZONA_AIF2TX6_ENA_SHIFT, 0), |
|---|
| 1395 | 1398 | |
|---|
| 1396 | 1399 | SND_SOC_DAPM_AIF_IN("AIF2RX1", NULL, 0, |
|---|
| 1397 | 1400 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX1_ENA_SHIFT, 0), |
|---|
| 1398 | | -SND_SOC_DAPM_AIF_IN("AIF2RX2", NULL, 0, |
|---|
| 1401 | +SND_SOC_DAPM_AIF_IN("AIF2RX2", NULL, 1, |
|---|
| 1399 | 1402 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX2_ENA_SHIFT, 0), |
|---|
| 1400 | | -SND_SOC_DAPM_AIF_IN("AIF2RX3", NULL, 0, |
|---|
| 1403 | +SND_SOC_DAPM_AIF_IN("AIF2RX3", NULL, 2, |
|---|
| 1401 | 1404 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX3_ENA_SHIFT, 0), |
|---|
| 1402 | | -SND_SOC_DAPM_AIF_IN("AIF2RX4", NULL, 0, |
|---|
| 1405 | +SND_SOC_DAPM_AIF_IN("AIF2RX4", NULL, 3, |
|---|
| 1403 | 1406 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX4_ENA_SHIFT, 0), |
|---|
| 1404 | | -SND_SOC_DAPM_AIF_IN("AIF2RX5", NULL, 0, |
|---|
| 1407 | +SND_SOC_DAPM_AIF_IN("AIF2RX5", NULL, 4, |
|---|
| 1405 | 1408 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX5_ENA_SHIFT, 0), |
|---|
| 1406 | | -SND_SOC_DAPM_AIF_IN("AIF2RX6", NULL, 0, |
|---|
| 1409 | +SND_SOC_DAPM_AIF_IN("AIF2RX6", NULL, 5, |
|---|
| 1407 | 1410 | ARIZONA_AIF2_RX_ENABLES, ARIZONA_AIF2RX6_ENA_SHIFT, 0), |
|---|
| 1408 | 1411 | |
|---|
| 1409 | 1412 | SND_SOC_DAPM_AIF_IN("SLIMRX1", NULL, 0, |
|---|
| 1410 | 1413 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 1411 | 1414 | ARIZONA_SLIMRX1_ENA_SHIFT, 0), |
|---|
| 1412 | | -SND_SOC_DAPM_AIF_IN("SLIMRX2", NULL, 0, |
|---|
| 1415 | +SND_SOC_DAPM_AIF_IN("SLIMRX2", NULL, 1, |
|---|
| 1413 | 1416 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 1414 | 1417 | ARIZONA_SLIMRX2_ENA_SHIFT, 0), |
|---|
| 1415 | | -SND_SOC_DAPM_AIF_IN("SLIMRX3", NULL, 0, |
|---|
| 1418 | +SND_SOC_DAPM_AIF_IN("SLIMRX3", NULL, 2, |
|---|
| 1416 | 1419 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 1417 | 1420 | ARIZONA_SLIMRX3_ENA_SHIFT, 0), |
|---|
| 1418 | | -SND_SOC_DAPM_AIF_IN("SLIMRX4", NULL, 0, |
|---|
| 1421 | +SND_SOC_DAPM_AIF_IN("SLIMRX4", NULL, 3, |
|---|
| 1419 | 1422 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 1420 | 1423 | ARIZONA_SLIMRX4_ENA_SHIFT, 0), |
|---|
| 1421 | | -SND_SOC_DAPM_AIF_IN("SLIMRX5", NULL, 0, |
|---|
| 1424 | +SND_SOC_DAPM_AIF_IN("SLIMRX5", NULL, 4, |
|---|
| 1422 | 1425 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 1423 | 1426 | ARIZONA_SLIMRX5_ENA_SHIFT, 0), |
|---|
| 1424 | | -SND_SOC_DAPM_AIF_IN("SLIMRX6", NULL, 0, |
|---|
| 1427 | +SND_SOC_DAPM_AIF_IN("SLIMRX6", NULL, 5, |
|---|
| 1425 | 1428 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 1426 | 1429 | ARIZONA_SLIMRX6_ENA_SHIFT, 0), |
|---|
| 1427 | | -SND_SOC_DAPM_AIF_IN("SLIMRX7", NULL, 0, |
|---|
| 1430 | +SND_SOC_DAPM_AIF_IN("SLIMRX7", NULL, 6, |
|---|
| 1428 | 1431 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 1429 | 1432 | ARIZONA_SLIMRX7_ENA_SHIFT, 0), |
|---|
| 1430 | | -SND_SOC_DAPM_AIF_IN("SLIMRX8", NULL, 0, |
|---|
| 1433 | +SND_SOC_DAPM_AIF_IN("SLIMRX8", NULL, 7, |
|---|
| 1431 | 1434 | ARIZONA_SLIMBUS_RX_CHANNEL_ENABLE, |
|---|
| 1432 | 1435 | ARIZONA_SLIMRX8_ENA_SHIFT, 0), |
|---|
| 1433 | 1436 | |
|---|
| 1434 | 1437 | SND_SOC_DAPM_AIF_OUT("SLIMTX1", NULL, 0, |
|---|
| 1435 | 1438 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 1436 | 1439 | ARIZONA_SLIMTX1_ENA_SHIFT, 0), |
|---|
| 1437 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX2", NULL, 0, |
|---|
| 1440 | +SND_SOC_DAPM_AIF_OUT("SLIMTX2", NULL, 1, |
|---|
| 1438 | 1441 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 1439 | 1442 | ARIZONA_SLIMTX2_ENA_SHIFT, 0), |
|---|
| 1440 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX3", NULL, 0, |
|---|
| 1443 | +SND_SOC_DAPM_AIF_OUT("SLIMTX3", NULL, 2, |
|---|
| 1441 | 1444 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 1442 | 1445 | ARIZONA_SLIMTX3_ENA_SHIFT, 0), |
|---|
| 1443 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX4", NULL, 0, |
|---|
| 1446 | +SND_SOC_DAPM_AIF_OUT("SLIMTX4", NULL, 3, |
|---|
| 1444 | 1447 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 1445 | 1448 | ARIZONA_SLIMTX4_ENA_SHIFT, 0), |
|---|
| 1446 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX5", NULL, 0, |
|---|
| 1449 | +SND_SOC_DAPM_AIF_OUT("SLIMTX5", NULL, 4, |
|---|
| 1447 | 1450 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 1448 | 1451 | ARIZONA_SLIMTX5_ENA_SHIFT, 0), |
|---|
| 1449 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX6", NULL, 0, |
|---|
| 1452 | +SND_SOC_DAPM_AIF_OUT("SLIMTX6", NULL, 5, |
|---|
| 1450 | 1453 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 1451 | 1454 | ARIZONA_SLIMTX6_ENA_SHIFT, 0), |
|---|
| 1452 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX7", NULL, 0, |
|---|
| 1455 | +SND_SOC_DAPM_AIF_OUT("SLIMTX7", NULL, 6, |
|---|
| 1453 | 1456 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 1454 | 1457 | ARIZONA_SLIMTX7_ENA_SHIFT, 0), |
|---|
| 1455 | | -SND_SOC_DAPM_AIF_OUT("SLIMTX8", NULL, 0, |
|---|
| 1458 | +SND_SOC_DAPM_AIF_OUT("SLIMTX8", NULL, 7, |
|---|
| 1456 | 1459 | ARIZONA_SLIMBUS_TX_CHANNEL_ENABLE, |
|---|
| 1457 | 1460 | ARIZONA_SLIMTX8_ENA_SHIFT, 0), |
|---|
| 1458 | 1461 | |
|---|
| 1459 | 1462 | SND_SOC_DAPM_AIF_OUT("AIF3TX1", NULL, 0, |
|---|
| 1460 | 1463 | ARIZONA_AIF3_TX_ENABLES, ARIZONA_AIF3TX1_ENA_SHIFT, 0), |
|---|
| 1461 | | -SND_SOC_DAPM_AIF_OUT("AIF3TX2", NULL, 0, |
|---|
| 1464 | +SND_SOC_DAPM_AIF_OUT("AIF3TX2", NULL, 1, |
|---|
| 1462 | 1465 | ARIZONA_AIF3_TX_ENABLES, ARIZONA_AIF3TX2_ENA_SHIFT, 0), |
|---|
| 1463 | 1466 | |
|---|
| 1464 | 1467 | SND_SOC_DAPM_AIF_IN("AIF3RX1", NULL, 0, |
|---|
| 1465 | 1468 | ARIZONA_AIF3_RX_ENABLES, ARIZONA_AIF3RX1_ENA_SHIFT, 0), |
|---|
| 1466 | | -SND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 0, |
|---|
| 1469 | +SND_SOC_DAPM_AIF_IN("AIF3RX2", NULL, 1, |
|---|
| 1467 | 1470 | ARIZONA_AIF3_RX_ENABLES, ARIZONA_AIF3RX2_ENA_SHIFT, 0), |
|---|
| 1468 | 1471 | |
|---|
| 1469 | 1472 | SND_SOC_DAPM_PGA_E("OUT1L", SND_SOC_NOPM, |
|---|
| .. | .. |
|---|
| 2238 | 2241 | }, |
|---|
| 2239 | 2242 | }; |
|---|
| 2240 | 2243 | |
|---|
| 2241 | | -static int wm5110_open(struct snd_compr_stream *stream) |
|---|
| 2244 | +static int wm5110_open(struct snd_soc_component *component, |
|---|
| 2245 | + struct snd_compr_stream *stream) |
|---|
| 2242 | 2246 | { |
|---|
| 2243 | 2247 | struct snd_soc_pcm_runtime *rtd = stream->private_data; |
|---|
| 2244 | | - struct snd_soc_component *component = snd_soc_rtdcom_lookup(rtd, DRV_NAME); |
|---|
| 2245 | 2248 | struct wm5110_priv *priv = snd_soc_component_get_drvdata(component); |
|---|
| 2246 | 2249 | struct arizona *arizona = priv->core.arizona; |
|---|
| 2247 | 2250 | int n_adsp; |
|---|
| 2248 | 2251 | |
|---|
| 2249 | | - if (strcmp(rtd->codec_dai->name, "wm5110-dsp-voicectrl") == 0) { |
|---|
| 2252 | + if (strcmp(asoc_rtd_to_codec(rtd, 0)->name, "wm5110-dsp-voicectrl") == 0) { |
|---|
| 2250 | 2253 | n_adsp = 2; |
|---|
| 2251 | | - } else if (strcmp(rtd->codec_dai->name, "wm5110-dsp-trace") == 0) { |
|---|
| 2254 | + } else if (strcmp(asoc_rtd_to_codec(rtd, 0)->name, "wm5110-dsp-trace") == 0) { |
|---|
| 2252 | 2255 | n_adsp = 0; |
|---|
| 2253 | 2256 | } else { |
|---|
| 2254 | 2257 | dev_err(arizona->dev, |
|---|
| 2255 | 2258 | "No suitable compressed stream for DAI '%s'\n", |
|---|
| 2256 | | - rtd->codec_dai->name); |
|---|
| 2259 | + asoc_rtd_to_codec(rtd, 0)->name); |
|---|
| 2257 | 2260 | return -EINVAL; |
|---|
| 2258 | 2261 | } |
|---|
| 2259 | 2262 | |
|---|
| .. | .. |
|---|
| 2356 | 2359 | ARIZONA_DAC_DIGITAL_VOLUME_6R, |
|---|
| 2357 | 2360 | }; |
|---|
| 2358 | 2361 | |
|---|
| 2359 | | -static struct snd_compr_ops wm5110_compr_ops = { |
|---|
| 2362 | +static struct snd_compress_ops wm5110_compress_ops = { |
|---|
| 2360 | 2363 | .open = wm5110_open, |
|---|
| 2361 | 2364 | .free = wm_adsp_compr_free, |
|---|
| 2362 | 2365 | .set_params = wm_adsp_compr_set_params, |
|---|
| .. | .. |
|---|
| 2372 | 2375 | .set_sysclk = arizona_set_sysclk, |
|---|
| 2373 | 2376 | .set_pll = wm5110_set_fll, |
|---|
| 2374 | 2377 | .name = DRV_NAME, |
|---|
| 2375 | | - .compr_ops = &wm5110_compr_ops, |
|---|
| 2378 | + .compress_ops = &wm5110_compress_ops, |
|---|
| 2376 | 2379 | .controls = wm5110_snd_controls, |
|---|
| 2377 | 2380 | .num_controls = ARRAY_SIZE(wm5110_snd_controls), |
|---|
| 2378 | 2381 | .dapm_widgets = wm5110_dapm_widgets, |
|---|