Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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.

+47 -12
+1 -1
Documentation/devicetree/bindings/sound/nvidia,tegra-audio-max9808x.yaml
··· 64 64 #include <dt-bindings/clock/tegra30-car.h> 65 65 #include <dt-bindings/soc/tegra-pmc.h> 66 66 sound { 67 - compatible = "lge,tegra-audio-max98089-p895", 67 + compatible = "lg,tegra-audio-max98089-p895", 68 68 "nvidia,tegra-audio-max98089"; 69 69 nvidia,model = "LG Optimus Vu MAX98089"; 70 70
+7
sound/soc/amd/yc/acp6x-mach.c
··· 419 419 { 420 420 .driver_data = &acp6x_card, 421 421 .matches = { 422 + DMI_MATCH(DMI_BOARD_VENDOR, "HP"), 423 + DMI_MATCH(DMI_BOARD_NAME, "8BD6"), 424 + } 425 + }, 426 + { 427 + .driver_data = &acp6x_card, 428 + .matches = { 422 429 DMI_MATCH(DMI_BOARD_VENDOR, "MECHREVO"), 423 430 DMI_MATCH(DMI_BOARD_NAME, "MRID6"), 424 431 }
+1 -1
sound/soc/codecs/madera.c
··· 3884 3884 return madera_set_fll_clks_reg(fll, ena, 3885 3885 base + MADERA_FLL_CONTROL_6_OFFS, 3886 3886 MADERA_FLL1_REFCLK_SRC_MASK, 3887 - MADERA_FLL1_REFCLK_DIV_SHIFT); 3887 + MADERA_FLL1_REFCLK_SRC_SHIFT); 3888 3888 } 3889 3889 3890 3890 static inline int madera_set_fllao_clks(struct madera_fll *fll, int base, bool ena)
+19 -10
sound/soc/codecs/wm8962.c
··· 2229 2229 2230 2230 SND_SOC_DAPM_OUTPUT("HPOUTL"), 2231 2231 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), 2232 2235 }; 2233 2236 2234 2237 static const struct snd_soc_dapm_widget wm8962_dapm_spk_mono_widgets[] = { ··· 2239 2236 spkmixl, ARRAY_SIZE(spkmixl)), 2240 2237 SND_SOC_DAPM_MUX_E("Speaker PGA", WM8962_PWR_MGMT_2, 4, 0, &spkoutl_mux, 2241 2238 out_pga_event, SND_SOC_DAPM_POST_PMU), 2242 - SND_SOC_DAPM_PGA("Speaker Output", WM8962_CLASS_D_CONTROL_1, 7, 0, NULL, 0), 2243 2239 SND_SOC_DAPM_OUTPUT("SPKOUT"), 2244 2240 }; 2245 2241 ··· 2252 2250 out_pga_event, SND_SOC_DAPM_POST_PMU), 2253 2251 SND_SOC_DAPM_MUX_E("SPKOUTR PGA", WM8962_PWR_MGMT_2, 3, 0, &spkoutr_mux, 2254 2252 out_pga_event, SND_SOC_DAPM_POST_PMU), 2255 - 2256 - SND_SOC_DAPM_PGA("SPKOUTR Output", WM8962_CLASS_D_CONTROL_1, 7, 0, NULL, 0), 2257 - SND_SOC_DAPM_PGA("SPKOUTL Output", WM8962_CLASS_D_CONTROL_1, 6, 0, NULL, 0), 2258 2253 2259 2254 SND_SOC_DAPM_OUTPUT("SPKOUTL"), 2260 2255 SND_SOC_DAPM_OUTPUT("SPKOUTR"), ··· 2365 2366 { "Speaker PGA", "Mixer", "Speaker Mixer" }, 2366 2367 { "Speaker PGA", "DAC", "DACL" }, 2367 2368 2368 - { "Speaker Output", NULL, "Speaker PGA" }, 2369 - { "Speaker Output", NULL, "SYSCLK" }, 2370 - { "Speaker Output", NULL, "TOCLK" }, 2371 - { "Speaker Output", NULL, "TEMP_SPK" }, 2369 + { "SPKOUTL Output", NULL, "Speaker PGA" }, 2370 + { "SPKOUTL Output", NULL, "SYSCLK" }, 2371 + { "SPKOUTL Output", NULL, "TOCLK" }, 2372 + { "SPKOUTL Output", NULL, "TEMP_SPK" }, 2372 2373 2373 - { "SPKOUT", NULL, "Speaker Output" }, 2374 + { "SPKOUTR Output", NULL, "Speaker PGA" }, 2375 + { "SPKOUTR Output", NULL, "SYSCLK" }, 2376 + { "SPKOUTR Output", NULL, "TOCLK" }, 2377 + { "SPKOUTR Output", NULL, "TEMP_SPK" }, 2378 + 2379 + { "SPKOUT", NULL, "SPKOUTL Output" }, 2380 + { "SPKOUT", NULL, "SPKOUTR Output" }, 2374 2381 }; 2375 2382 2376 2383 static const struct snd_soc_dapm_route wm8962_spk_stereo_intercon[] = { ··· 2919 2914 switch (fll_id) { 2920 2915 case WM8962_FLL_MCLK: 2921 2916 case WM8962_FLL_BCLK: 2917 + fll1 |= (fll_id - 1) << WM8962_FLL_REFCLK_SRC_SHIFT; 2918 + break; 2922 2919 case WM8962_FLL_OSC: 2923 2920 fll1 |= (fll_id - 1) << WM8962_FLL_REFCLK_SRC_SHIFT; 2921 + snd_soc_component_update_bits(component, WM8962_PLL2, 2922 + WM8962_OSC_ENA, WM8962_OSC_ENA); 2924 2923 break; 2925 2924 case WM8962_FLL_INT: 2926 2925 snd_soc_component_update_bits(component, WM8962_FLL_CONTROL_1, ··· 2933 2924 WM8962_FLL_FRC_NCO, WM8962_FLL_FRC_NCO); 2934 2925 break; 2935 2926 default: 2936 - dev_err(component->dev, "Unknown FLL source %d\n", ret); 2927 + dev_err(component->dev, "Unknown FLL source %d\n", source); 2937 2928 return -EINVAL; 2938 2929 } 2939 2930
+12
sound/soc/intel/boards/bytcr_rt5640.c
··· 685 685 BYT_RT5640_SSP0_AIF1 | 686 686 BYT_RT5640_MCLK_EN), 687 687 }, 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 + }, 688 700 { 689 701 /* Chuwi Vi10 (CWI505) */ 690 702 .matches = {
+7
sound/soc/sh/rcar/adg.c
··· 111 111 ws = 7; 112 112 break; 113 113 } 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; 114 121 } 115 122 116 123 return (0x6 + ws) << 8;