| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * alc5632.c -- ALC5632 ALSA SoC Audio Codec |
|---|
| 3 | 4 | * |
|---|
| .. | .. |
|---|
| 9 | 10 | * Marc Dietrich <marvin24@gmx.de> |
|---|
| 10 | 11 | * |
|---|
| 11 | 12 | * Based on alc5623.c by Arnaud Patard |
|---|
| 12 | | -* |
|---|
| 13 | | -* This program is free software; you can redistribute it and/or modify |
|---|
| 14 | | -* it under the terms of the GNU General Public License version 2 as |
|---|
| 15 | | -* published by the Free Software Foundation. |
|---|
| 16 | 13 | */ |
|---|
| 17 | 14 | |
|---|
| 18 | 15 | #include <linux/module.h> |
|---|
| .. | .. |
|---|
| 697 | 694 | 0); |
|---|
| 698 | 695 | |
|---|
| 699 | 696 | /* pll is not used in slave mode */ |
|---|
| 700 | | - reg = snd_soc_component_read32(component, ALC5632_DAI_CONTROL); |
|---|
| 697 | + reg = snd_soc_component_read(component, ALC5632_DAI_CONTROL); |
|---|
| 701 | 698 | if (reg & ALC5632_DAI_SDP_SLAVE_MODE) |
|---|
| 702 | 699 | return 0; |
|---|
| 703 | 700 | |
|---|
| .. | .. |
|---|
| 874 | 871 | int coeff, rate; |
|---|
| 875 | 872 | u16 iface; |
|---|
| 876 | 873 | |
|---|
| 877 | | - iface = snd_soc_component_read32(component, ALC5632_DAI_CONTROL); |
|---|
| 874 | + iface = snd_soc_component_read(component, ALC5632_DAI_CONTROL); |
|---|
| 878 | 875 | iface &= ~ALC5632_DAI_I2S_DL_MASK; |
|---|
| 879 | 876 | |
|---|
| 880 | 877 | /* bit size */ |
|---|
| .. | .. |
|---|
| 905 | 902 | return 0; |
|---|
| 906 | 903 | } |
|---|
| 907 | 904 | |
|---|
| 908 | | -static int alc5632_mute(struct snd_soc_dai *dai, int mute) |
|---|
| 905 | +static int alc5632_mute(struct snd_soc_dai *dai, int mute, int direction) |
|---|
| 909 | 906 | { |
|---|
| 910 | 907 | struct snd_soc_component *component = dai->component; |
|---|
| 911 | 908 | u16 hp_mute = ALC5632_MISC_HP_DEPOP_MUTE_L |
|---|
| 912 | 909 | |ALC5632_MISC_HP_DEPOP_MUTE_R; |
|---|
| 913 | | - u16 mute_reg = snd_soc_component_read32(component, ALC5632_MISC_CTRL) & ~hp_mute; |
|---|
| 910 | + u16 mute_reg = snd_soc_component_read(component, ALC5632_MISC_CTRL) & ~hp_mute; |
|---|
| 914 | 911 | |
|---|
| 915 | 912 | if (mute) |
|---|
| 916 | 913 | mute_reg |= hp_mute; |
|---|
| .. | .. |
|---|
| 1008 | 1005 | |
|---|
| 1009 | 1006 | static const struct snd_soc_dai_ops alc5632_dai_ops = { |
|---|
| 1010 | 1007 | .hw_params = alc5632_pcm_hw_params, |
|---|
| 1011 | | - .digital_mute = alc5632_mute, |
|---|
| 1008 | + .mute_stream = alc5632_mute, |
|---|
| 1012 | 1009 | .set_fmt = alc5632_set_dai_fmt, |
|---|
| 1013 | 1010 | .set_sysclk = alc5632_set_dai_sysclk, |
|---|
| 1014 | 1011 | .set_pll = alc5632_set_dai_pll, |
|---|
| 1012 | + .no_capture_mute = 1, |
|---|
| 1015 | 1013 | }; |
|---|
| 1016 | 1014 | |
|---|
| 1017 | 1015 | static struct snd_soc_dai_driver alc5632_dai = { |
|---|