Skip to content

Commit 21e59fe

Browse files
committed
Merge tag 'asoc-fix-v6.8-rc7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus
ASoC: Fixes for v6.8 Some more driver specific fixes for v6.8, plus one new x86 platform quirk. All good fixes to have if you have systems that use the relevant hardware.
2 parents a17bd44 + 96e202f commit 21e59fe

File tree

6 files changed

+47
-12
lines changed

6 files changed

+47
-12
lines changed

Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max9808x.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ examples:
6464
#include <dt-bindings/clock/tegra30-car.h>
6565
#include <dt-bindings/soc/tegra-pmc.h>
6666
sound {
67-
compatible = "lge,tegra-audio-max98089-p895",
67+
compatible = "lg,tegra-audio-max98089-p895",
6868
"nvidia,tegra-audio-max98089";
6969
nvidia,model = "LG Optimus Vu MAX98089";
7070

sound/soc/amd/yc/acp6x-mach.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,6 +416,13 @@ static const struct dmi_system_id yc_acp_quirk_table[] = {
416416
DMI_MATCH(DMI_BOARD_NAME, "8B2F"),
417417
}
418418
},
419+
{
420+
.driver_data = &acp6x_card,
421+
.matches = {
422+
DMI_MATCH(DMI_BOARD_VENDOR, "HP"),
423+
DMI_MATCH(DMI_BOARD_NAME, "8BD6"),
424+
}
425+
},
419426
{
420427
.driver_data = &acp6x_card,
421428
.matches = {

sound/soc/codecs/madera.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3884,7 +3884,7 @@ static inline int madera_set_fll_clks(struct madera_fll *fll, int base, bool ena
38843884
return madera_set_fll_clks_reg(fll, ena,
38853885
base + MADERA_FLL_CONTROL_6_OFFS,
38863886
MADERA_FLL1_REFCLK_SRC_MASK,
3887-
MADERA_FLL1_REFCLK_DIV_SHIFT);
3887+
MADERA_FLL1_REFCLK_SRC_SHIFT);
38883888
}
38893889

38903890
static inline int madera_set_fllao_clks(struct madera_fll *fll, int base, bool ena)

sound/soc/codecs/wm8962.c

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2229,14 +2229,16 @@ SND_SOC_DAPM_PGA_E("HPOUT", SND_SOC_NOPM, 0, 0, NULL, 0, hp_event,
22292229

22302230
SND_SOC_DAPM_OUTPUT("HPOUTL"),
22312231
SND_SOC_DAPM_OUTPUT("HPOUTR"),
2232+
2233+
SND_SOC_DAPM_PGA("SPKOUTL Output", WM8962_CLASS_D_CONTROL_1, 6, 0, NULL, 0),
2234+
SND_SOC_DAPM_PGA("SPKOUTR Output", WM8962_CLASS_D_CONTROL_1, 7, 0, NULL, 0),
22322235
};
22332236

22342237
static const struct snd_soc_dapm_widget wm8962_dapm_spk_mono_widgets[] = {
22352238
SND_SOC_DAPM_MIXER("Speaker Mixer", WM8962_MIXER_ENABLES, 1, 0,
22362239
spkmixl, ARRAY_SIZE(spkmixl)),
22372240
SND_SOC_DAPM_MUX_E("Speaker PGA", WM8962_PWR_MGMT_2, 4, 0, &spkoutl_mux,
22382241
out_pga_event, SND_SOC_DAPM_POST_PMU),
2239-
SND_SOC_DAPM_PGA("Speaker Output", WM8962_CLASS_D_CONTROL_1, 7, 0, NULL, 0),
22402242
SND_SOC_DAPM_OUTPUT("SPKOUT"),
22412243
};
22422244

@@ -2251,9 +2253,6 @@ SND_SOC_DAPM_MUX_E("SPKOUTL PGA", WM8962_PWR_MGMT_2, 4, 0, &spkoutl_mux,
22512253
SND_SOC_DAPM_MUX_E("SPKOUTR PGA", WM8962_PWR_MGMT_2, 3, 0, &spkoutr_mux,
22522254
out_pga_event, SND_SOC_DAPM_POST_PMU),
22532255

2254-
SND_SOC_DAPM_PGA("SPKOUTR Output", WM8962_CLASS_D_CONTROL_1, 7, 0, NULL, 0),
2255-
SND_SOC_DAPM_PGA("SPKOUTL Output", WM8962_CLASS_D_CONTROL_1, 6, 0, NULL, 0),
2256-
22572256
SND_SOC_DAPM_OUTPUT("SPKOUTL"),
22582257
SND_SOC_DAPM_OUTPUT("SPKOUTR"),
22592258
};
@@ -2366,12 +2365,18 @@ static const struct snd_soc_dapm_route wm8962_spk_mono_intercon[] = {
23662365
{ "Speaker PGA", "Mixer", "Speaker Mixer" },
23672366
{ "Speaker PGA", "DAC", "DACL" },
23682367

2369-
{ "Speaker Output", NULL, "Speaker PGA" },
2370-
{ "Speaker Output", NULL, "SYSCLK" },
2371-
{ "Speaker Output", NULL, "TOCLK" },
2372-
{ "Speaker Output", NULL, "TEMP_SPK" },
2368+
{ "SPKOUTL Output", NULL, "Speaker PGA" },
2369+
{ "SPKOUTL Output", NULL, "SYSCLK" },
2370+
{ "SPKOUTL Output", NULL, "TOCLK" },
2371+
{ "SPKOUTL Output", NULL, "TEMP_SPK" },
23732372

2374-
{ "SPKOUT", NULL, "Speaker Output" },
2373+
{ "SPKOUTR Output", NULL, "Speaker PGA" },
2374+
{ "SPKOUTR Output", NULL, "SYSCLK" },
2375+
{ "SPKOUTR Output", NULL, "TOCLK" },
2376+
{ "SPKOUTR Output", NULL, "TEMP_SPK" },
2377+
2378+
{ "SPKOUT", NULL, "SPKOUTL Output" },
2379+
{ "SPKOUT", NULL, "SPKOUTR Output" },
23752380
};
23762381

23772382
static const struct snd_soc_dapm_route wm8962_spk_stereo_intercon[] = {
@@ -2914,8 +2919,12 @@ static int wm8962_set_fll(struct snd_soc_component *component, int fll_id, int s
29142919
switch (fll_id) {
29152920
case WM8962_FLL_MCLK:
29162921
case WM8962_FLL_BCLK:
2922+
fll1 |= (fll_id - 1) << WM8962_FLL_REFCLK_SRC_SHIFT;
2923+
break;
29172924
case WM8962_FLL_OSC:
29182925
fll1 |= (fll_id - 1) << WM8962_FLL_REFCLK_SRC_SHIFT;
2926+
snd_soc_component_update_bits(component, WM8962_PLL2,
2927+
WM8962_OSC_ENA, WM8962_OSC_ENA);
29192928
break;
29202929
case WM8962_FLL_INT:
29212930
snd_soc_component_update_bits(component, WM8962_FLL_CONTROL_1,
@@ -2924,7 +2933,7 @@ static int wm8962_set_fll(struct snd_soc_component *component, int fll_id, int s
29242933
WM8962_FLL_FRC_NCO, WM8962_FLL_FRC_NCO);
29252934
break;
29262935
default:
2927-
dev_err(component->dev, "Unknown FLL source %d\n", ret);
2936+
dev_err(component->dev, "Unknown FLL source %d\n", source);
29282937
return -EINVAL;
29292938
}
29302939

sound/soc/intel/boards/bytcr_rt5640.c

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -685,6 +685,18 @@ static const struct dmi_system_id byt_rt5640_quirk_table[] = {
685685
BYT_RT5640_SSP0_AIF1 |
686686
BYT_RT5640_MCLK_EN),
687687
},
688+
{ /* Chuwi Vi8 dual-boot (CWI506) */
689+
.matches = {
690+
DMI_EXACT_MATCH(DMI_SYS_VENDOR, "Insyde"),
691+
DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "i86"),
692+
/* The above are too generic, also match BIOS info */
693+
DMI_MATCH(DMI_BIOS_VERSION, "CHUWI2.D86JHBNR02"),
694+
},
695+
.driver_data = (void *)(BYTCR_INPUT_DEFAULTS |
696+
BYT_RT5640_MONO_SPEAKER |
697+
BYT_RT5640_SSP0_AIF1 |
698+
BYT_RT5640_MCLK_EN),
699+
},
688700
{
689701
/* Chuwi Vi10 (CWI505) */
690702
.matches = {

sound/soc/sh/rcar/adg.c

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,13 @@ static u32 rsnd_adg_ssi_ws_timing_gen2(struct rsnd_dai_stream *io)
111111
ws = 7;
112112
break;
113113
}
114+
} else {
115+
/*
116+
* SSI8 is not connected to ADG.
117+
* Thus SSI9 is using ws = 8
118+
*/
119+
if (id == 9)
120+
ws = 8;
114121
}
115122

116123
return (0x6 + ws) << 8;

0 commit comments

Comments
 (0)