| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * alc5623.c -- alc562[123] ALSA Soc Audio driver |
|---|
| 3 | 4 | * |
|---|
| .. | .. |
|---|
| 6 | 7 | * |
|---|
| 7 | 8 | * Copyright 2010 Arnaud Patard <arnaud.patard@rtp-net.org> |
|---|
| 8 | 9 | * |
|---|
| 9 | | - * |
|---|
| 10 | 10 | * Based on WM8753.c |
|---|
| 11 | | - * |
|---|
| 12 | | - * This program is free software; you can redistribute it and/or modify |
|---|
| 13 | | - * it under the terms of the GNU General Public License version 2 as |
|---|
| 14 | | - * published by the Free Software Foundation. |
|---|
| 15 | | - * |
|---|
| 16 | 11 | */ |
|---|
| 17 | 12 | |
|---|
| 18 | 13 | #include <linux/module.h> |
|---|
| .. | .. |
|---|
| 539 | 534 | 0); |
|---|
| 540 | 535 | |
|---|
| 541 | 536 | /* pll is not used in slave mode */ |
|---|
| 542 | | - reg = snd_soc_component_read32(component, ALC5623_DAI_CONTROL); |
|---|
| 537 | + reg = snd_soc_component_read(component, ALC5623_DAI_CONTROL); |
|---|
| 543 | 538 | if (reg & ALC5623_DAI_SDP_SLAVE_MODE) |
|---|
| 544 | 539 | return 0; |
|---|
| 545 | 540 | |
|---|
| .. | .. |
|---|
| 706 | 701 | int coeff, rate; |
|---|
| 707 | 702 | u16 iface; |
|---|
| 708 | 703 | |
|---|
| 709 | | - iface = snd_soc_component_read32(component, ALC5623_DAI_CONTROL); |
|---|
| 704 | + iface = snd_soc_component_read(component, ALC5623_DAI_CONTROL); |
|---|
| 710 | 705 | iface &= ~ALC5623_DAI_I2S_DL_MASK; |
|---|
| 711 | 706 | |
|---|
| 712 | 707 | /* bit size */ |
|---|
| .. | .. |
|---|
| 742 | 737 | return 0; |
|---|
| 743 | 738 | } |
|---|
| 744 | 739 | |
|---|
| 745 | | -static int alc5623_mute(struct snd_soc_dai *dai, int mute) |
|---|
| 740 | +static int alc5623_mute(struct snd_soc_dai *dai, int mute, int direction) |
|---|
| 746 | 741 | { |
|---|
| 747 | 742 | struct snd_soc_component *component = dai->component; |
|---|
| 748 | 743 | u16 hp_mute = ALC5623_MISC_M_DAC_L_INPUT | ALC5623_MISC_M_DAC_R_INPUT; |
|---|
| 749 | | - u16 mute_reg = snd_soc_component_read32(component, ALC5623_MISC_CTRL) & ~hp_mute; |
|---|
| 744 | + u16 mute_reg = snd_soc_component_read(component, ALC5623_MISC_CTRL) & ~hp_mute; |
|---|
| 750 | 745 | |
|---|
| 751 | 746 | if (mute) |
|---|
| 752 | 747 | mute_reg |= hp_mute; |
|---|
| .. | .. |
|---|
| 834 | 829 | |
|---|
| 835 | 830 | static const struct snd_soc_dai_ops alc5623_dai_ops = { |
|---|
| 836 | 831 | .hw_params = alc5623_pcm_hw_params, |
|---|
| 837 | | - .digital_mute = alc5623_mute, |
|---|
| 832 | + .mute_stream = alc5623_mute, |
|---|
| 838 | 833 | .set_fmt = alc5623_set_dai_fmt, |
|---|
| 839 | 834 | .set_sysclk = alc5623_set_dai_sysclk, |
|---|
| 840 | 835 | .set_pll = alc5623_set_dai_pll, |
|---|
| 836 | + .no_capture_mute = 1, |
|---|
| 841 | 837 | }; |
|---|
| 842 | 838 | |
|---|
| 843 | 839 | static struct snd_soc_dai_driver alc5623_dai = { |
|---|