hc
2023-12-08 01573e231f18eb2d99162747186f59511f56b64d
kernel/sound/soc/codecs/wm8580.c
....@@ -1,12 +1,8 @@
1
+// SPDX-License-Identifier: GPL-2.0-or-later
12 /*
23 * wm8580.c -- WM8580 and WM8581 ALSA Soc Audio driver
34 *
45 * Copyright 2008-12 Wolfson Microelectronics PLC.
5
- *
6
- * This program is free software; you can redistribute it and/or modify it
7
- * under the terms of the GNU General Public License as published by the
8
- * Free Software Foundation; either version 2 of the License, or (at your
9
- * option) any later version.
106 *
117 * Notes:
128 * The WM8580 is a multichannel codec with S/PDIF support, featuring six
....@@ -515,7 +511,7 @@
515511 snd_soc_component_write(component, WM8580_PLLA3 + offset,
516512 (pll_div.k >> 18 & 0xf) | (pll_div.n << 4));
517513
518
- reg = snd_soc_component_read32(component, WM8580_PLLA4 + offset);
514
+ reg = snd_soc_component_read(component, WM8580_PLLA4 + offset);
519515 reg &= ~0x1b;
520516 reg |= pll_div.prescale | pll_div.postscale << 1 |
521517 pll_div.freqmode << 3;
....@@ -612,8 +608,8 @@
612608 unsigned int aifb;
613609 int can_invert_lrclk;
614610
615
- aifa = snd_soc_component_read32(component, WM8580_PAIF1 + codec_dai->driver->id);
616
- aifb = snd_soc_component_read32(component, WM8580_PAIF3 + codec_dai->driver->id);
611
+ aifa = snd_soc_component_read(component, WM8580_PAIF1 + codec_dai->driver->id);
612
+ aifb = snd_soc_component_read(component, WM8580_PAIF3 + codec_dai->driver->id);
617613
618614 aifb &= ~(WM8580_AIF_FMT_MASK | WM8580_AIF_LRP | WM8580_AIF_BCP);
619615
....@@ -693,7 +689,7 @@
693689
694690 switch (div_id) {
695691 case WM8580_MCLK:
696
- reg = snd_soc_component_read32(component, WM8580_PLLB4);
692
+ reg = snd_soc_component_read(component, WM8580_PLLB4);
697693 reg &= ~WM8580_PLLB4_MCLKOUTSRC_MASK;
698694
699695 switch (div) {
....@@ -719,7 +715,7 @@
719715 break;
720716
721717 case WM8580_CLKOUTSRC:
722
- reg = snd_soc_component_read32(component, WM8580_PLLB4);
718
+ reg = snd_soc_component_read(component, WM8580_PLLB4);
723719 reg &= ~WM8580_PLLB4_CLKOUTSRC_MASK;
724720
725721 switch (div) {
....@@ -804,12 +800,12 @@
804800 return 0;
805801 }
806802
807
-static int wm8580_digital_mute(struct snd_soc_dai *codec_dai, int mute)
803
+static int wm8580_mute(struct snd_soc_dai *codec_dai, int mute, int direction)
808804 {
809805 struct snd_soc_component *component = codec_dai->component;
810806 unsigned int reg;
811807
812
- reg = snd_soc_component_read32(component, WM8580_DAC_CONTROL5);
808
+ reg = snd_soc_component_read(component, WM8580_DAC_CONTROL5);
813809
814810 if (mute)
815811 reg |= WM8580_DAC_CONTROL5_MUTEALL;
....@@ -870,7 +866,8 @@
870866 .set_fmt = wm8580_set_paif_dai_fmt,
871867 .set_clkdiv = wm8580_set_dai_clkdiv,
872868 .set_pll = wm8580_set_dai_pll,
873
- .digital_mute = wm8580_digital_mute,
869
+ .mute_stream = wm8580_mute,
870
+ .no_capture_mute = 1,
874871 };
875872
876873 static const struct snd_soc_dai_ops wm8580_dai_ops_capture = {