ASoC: Fixes for v6.12

Some last updates for v6.12, one quirk plus a couple of fixes.  One is a
 minor fix for a relatively obscure driver and the other is a relatively
 important fix for boot hangs with some audio graph based cards.
 -----BEGIN PGP SIGNATURE-----
 
 iQEzBAABCgAdFiEEreZoqmdXGLWf4p/qJNaLcl1Uh9AFAmc1/0UACgkQJNaLcl1U
 h9BFWwf8DVjYujeDc/qCC1k4mbgc1m4GSvUhowUbm7S+crHYrc1YD2q4Fu+HGWr9
 ADj3qRWsFu66RjbXA+0Dg3yEkDp2xDAhfZ+hThlwf+0CyOY42YsnlPF0/Y87uLOS
 2w/qFaSeYFrSgCJ9UjMtCVtBKJKkFmILm8sS8NrAYUsMmAl5L+HquskqBapT0tNM
 Beicvth+V0sbo1aq7pdxEGu35DeJmwvXu60hmdIrwKvf5roNXV2Tn/xr4TFyo1uY
 B1oyTRrhaLNrR/l0hjq20B0mkkYwH/wblp81q5Bm2mb/MmDPBDH0vYYG2rB4Y97j
 lvmYCgoYEAqCPd+8hHrmOq9jhegZqg==
 =kQ4k
 -----END PGP SIGNATURE-----

Merge tag 'asoc-fix-v6.12-rc7' of https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound into for-linus

ASoC: Fixes for v6.12

Some last updates for v6.12, one quirk plus a couple of fixes.  One is a
minor fix for a relatively obscure driver and the other is a relatively
important fix for boot hangs with some audio graph based cards.
This commit is contained in:
Takashi Iwai 2024-11-14 16:40:15 +01:00
commit 5ec23a1b53
3 changed files with 20 additions and 2 deletions

View File

@ -54,10 +54,17 @@ static int max9768_set_gpio(struct snd_kcontrol *kcontrol,
{ {
struct snd_soc_component *c = snd_soc_kcontrol_component(kcontrol); struct snd_soc_component *c = snd_soc_kcontrol_component(kcontrol);
struct max9768 *max9768 = snd_soc_component_get_drvdata(c); struct max9768 *max9768 = snd_soc_component_get_drvdata(c);
bool val = !ucontrol->value.integer.value[0];
int ret;
gpiod_set_value_cansleep(max9768->mute, !ucontrol->value.integer.value[0]); if (val != gpiod_get_value_cansleep(max9768->mute))
ret = 1;
else
ret = 0;
return 0; gpiod_set_value_cansleep(max9768->mute, val);
return ret;
} }
static const DECLARE_TLV_DB_RANGE(volume_tlv, static const DECLARE_TLV_DB_RANGE(volume_tlv,

View File

@ -270,16 +270,19 @@ static enum graph_type __graph_get_type(struct device_node *lnk)
if (of_node_name_eq(np, GRAPH_NODENAME_MULTI)) { if (of_node_name_eq(np, GRAPH_NODENAME_MULTI)) {
ret = GRAPH_MULTI; ret = GRAPH_MULTI;
fw_devlink_purge_absent_suppliers(&np->fwnode);
goto out_put; goto out_put;
} }
if (of_node_name_eq(np, GRAPH_NODENAME_DPCM)) { if (of_node_name_eq(np, GRAPH_NODENAME_DPCM)) {
ret = GRAPH_DPCM; ret = GRAPH_DPCM;
fw_devlink_purge_absent_suppliers(&np->fwnode);
goto out_put; goto out_put;
} }
if (of_node_name_eq(np, GRAPH_NODENAME_C2C)) { if (of_node_name_eq(np, GRAPH_NODENAME_C2C)) {
ret = GRAPH_C2C; ret = GRAPH_C2C;
fw_devlink_purge_absent_suppliers(&np->fwnode);
goto out_put; goto out_put;
} }

View File

@ -590,6 +590,14 @@ static const struct dmi_system_id sof_sdw_quirk_table[] = {
}, },
.driver_data = (void *)(SOC_SDW_CODEC_SPKR), .driver_data = (void *)(SOC_SDW_CODEC_SPKR),
}, },
{
.callback = sof_sdw_quirk_cb,
.matches = {
DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc"),
DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "0CF1")
},
.driver_data = (void *)(SOC_SDW_CODEC_SPKR),
},
{ {
.callback = sof_sdw_quirk_cb, .callback = sof_sdw_quirk_cb,
.matches = { .matches = {