Merge series "ASoC: Intel: machine driver updates for 5.9" from Pierre-Louis Bossart...
[sfrench/cifs-2.6.git] / sound / soc / codecs / wm8974.c
index 7cfc89602fc397bc941e3790917c9497a7efe4ce..c86231dfcf4f84d68cf127addfe704c203b4bab8 100644 (file)
@@ -318,11 +318,11 @@ static int wm8974_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
 
        if (freq_in == 0 || freq_out == 0) {
                /* Clock CODEC directly from MCLK */
-               reg = snd_soc_component_read32(component, WM8974_CLOCK);
+               reg = snd_soc_component_read(component, WM8974_CLOCK);
                snd_soc_component_write(component, WM8974_CLOCK, reg & 0x0ff);
 
                /* Turn off PLL */
-               reg = snd_soc_component_read32(component, WM8974_POWER1);
+               reg = snd_soc_component_read(component, WM8974_POWER1);
                snd_soc_component_write(component, WM8974_POWER1, reg & 0x1df);
                return 0;
        }
@@ -333,11 +333,11 @@ static int wm8974_set_dai_pll(struct snd_soc_dai *codec_dai, int pll_id,
        snd_soc_component_write(component, WM8974_PLLK1, pll_div.k >> 18);
        snd_soc_component_write(component, WM8974_PLLK2, (pll_div.k >> 9) & 0x1ff);
        snd_soc_component_write(component, WM8974_PLLK3, pll_div.k & 0x1ff);
-       reg = snd_soc_component_read32(component, WM8974_POWER1);
+       reg = snd_soc_component_read(component, WM8974_POWER1);
        snd_soc_component_write(component, WM8974_POWER1, reg | 0x020);
 
        /* Run CODEC from PLL instead of MCLK */
-       reg = snd_soc_component_read32(component, WM8974_CLOCK);
+       reg = snd_soc_component_read(component, WM8974_CLOCK);
        snd_soc_component_write(component, WM8974_CLOCK, reg | 0x100);
 
        return 0;
@@ -354,15 +354,15 @@ static int wm8974_set_dai_clkdiv(struct snd_soc_dai *codec_dai,
 
        switch (div_id) {
        case WM8974_OPCLKDIV:
-               reg = snd_soc_component_read32(component, WM8974_GPIO) & 0x1cf;
+               reg = snd_soc_component_read(component, WM8974_GPIO) & 0x1cf;
                snd_soc_component_write(component, WM8974_GPIO, reg | div);
                break;
        case WM8974_MCLKDIV:
-               reg = snd_soc_component_read32(component, WM8974_CLOCK) & 0x11f;
+               reg = snd_soc_component_read(component, WM8974_CLOCK) & 0x11f;
                snd_soc_component_write(component, WM8974_CLOCK, reg | div);
                break;
        case WM8974_BCLKDIV:
-               reg = snd_soc_component_read32(component, WM8974_CLOCK) & 0x1e3;
+               reg = snd_soc_component_read(component, WM8974_CLOCK) & 0x1e3;
                snd_soc_component_write(component, WM8974_CLOCK, reg | div);
                break;
        default:
@@ -450,7 +450,7 @@ static int wm8974_set_dai_fmt(struct snd_soc_dai *codec_dai,
 {
        struct snd_soc_component *component = codec_dai->component;
        u16 iface = 0;
-       u16 clk = snd_soc_component_read32(component, WM8974_CLOCK) & 0x1fe;
+       u16 clk = snd_soc_component_read(component, WM8974_CLOCK) & 0x1fe;
 
        /* set master/slave audio interface */
        switch (fmt & SND_SOC_DAIFMT_MASTER_MASK) {
@@ -512,8 +512,8 @@ static int wm8974_pcm_hw_params(struct snd_pcm_substream *substream,
 {
        struct snd_soc_component *component = dai->component;
        struct wm8974_priv *priv = snd_soc_component_get_drvdata(component);
-       u16 iface = snd_soc_component_read32(component, WM8974_IFACE) & 0x19f;
-       u16 adn = snd_soc_component_read32(component, WM8974_ADD) & 0x1f1;
+       u16 iface = snd_soc_component_read(component, WM8974_IFACE) & 0x19f;
+       u16 adn = snd_soc_component_read(component, WM8974_ADD) & 0x1f1;
        int err;
 
        priv->fs = params_rate(params);
@@ -563,10 +563,10 @@ static int wm8974_pcm_hw_params(struct snd_pcm_substream *substream,
        return 0;
 }
 
-static int wm8974_mute(struct snd_soc_dai *dai, int mute)
+static int wm8974_mute(struct snd_soc_dai *dai, int mute, int direction)
 {
        struct snd_soc_component *component = dai->component;
-       u16 mute_reg = snd_soc_component_read32(component, WM8974_DAC) & 0xffbf;
+       u16 mute_reg = snd_soc_component_read(component, WM8974_DAC) & 0xffbf;
 
        if (mute)
                snd_soc_component_write(component, WM8974_DAC, mute_reg | 0x40);
@@ -579,7 +579,7 @@ static int wm8974_mute(struct snd_soc_dai *dai, int mute)
 static int wm8974_set_bias_level(struct snd_soc_component *component,
        enum snd_soc_bias_level level)
 {
-       u16 power1 = snd_soc_component_read32(component, WM8974_POWER1) & ~0x3;
+       u16 power1 = snd_soc_component_read(component, WM8974_POWER1) & ~0x3;
 
        switch (level) {
        case SND_SOC_BIAS_ON:
@@ -620,11 +620,12 @@ static int wm8974_set_bias_level(struct snd_soc_component *component,
 
 static const struct snd_soc_dai_ops wm8974_ops = {
        .hw_params = wm8974_pcm_hw_params,
-       .digital_mute = wm8974_mute,
+       .mute_stream = wm8974_mute,
        .set_fmt = wm8974_set_dai_fmt,
        .set_clkdiv = wm8974_set_dai_clkdiv,
        .set_pll = wm8974_set_dai_pll,
        .set_sysclk = wm8974_set_dai_sysclk,
+       .no_capture_mute = 1,
 };
 
 static struct snd_soc_dai_driver wm8974_dai = {