| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * wm8776.c -- WM8776 ALSA SoC Audio driver |
|---|
| 3 | 4 | * |
|---|
| 4 | 5 | * Copyright 2009-12 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 | * TODO: Input ALC/limiter support |
|---|
| 13 | 10 | */ |
|---|
| .. | .. |
|---|
| 285 | 282 | } |
|---|
| 286 | 283 | |
|---|
| 287 | 284 | /* Only need to set MCLK/LRCLK ratio if we're master */ |
|---|
| 288 | | - if (snd_soc_component_read32(component, WM8776_MSTRCTRL) & master) { |
|---|
| 285 | + if (snd_soc_component_read(component, WM8776_MSTRCTRL) & master) { |
|---|
| 289 | 286 | for (i = 0; i < ARRAY_SIZE(mclk_ratios); i++) { |
|---|
| 290 | 287 | if (wm8776->sysclk[dai->driver->id] / params_rate(params) |
|---|
| 291 | 288 | == mclk_ratios[i]) |
|---|
| .. | .. |
|---|
| 312 | 309 | return 0; |
|---|
| 313 | 310 | } |
|---|
| 314 | 311 | |
|---|
| 315 | | -static int wm8776_mute(struct snd_soc_dai *dai, int mute) |
|---|
| 312 | +static int wm8776_mute(struct snd_soc_dai *dai, int mute, int direction) |
|---|
| 316 | 313 | { |
|---|
| 317 | 314 | struct snd_soc_component *component = dai->component; |
|---|
| 318 | 315 | |
|---|
| .. | .. |
|---|
| 364 | 361 | SNDRV_PCM_FMTBIT_S24_LE | SNDRV_PCM_FMTBIT_S32_LE) |
|---|
| 365 | 362 | |
|---|
| 366 | 363 | static const struct snd_soc_dai_ops wm8776_dac_ops = { |
|---|
| 367 | | - .digital_mute = wm8776_mute, |
|---|
| 364 | + .mute_stream = wm8776_mute, |
|---|
| 368 | 365 | .hw_params = wm8776_hw_params, |
|---|
| 369 | 366 | .set_fmt = wm8776_set_fmt, |
|---|
| 370 | 367 | .set_sysclk = wm8776_set_sysclk, |
|---|
| 368 | + .no_capture_mute = 1, |
|---|
| 371 | 369 | }; |
|---|
| 372 | 370 | |
|---|
| 373 | 371 | static const struct snd_soc_dai_ops wm8776_adc_ops = { |
|---|