ALSA: hda - Don't send invalid volume knob command on IDT 92hd75bxx
Instead of blindly initializing a volume knob widget, first check that there actually is a volume knob widget. Signed-off-by: David Henningsson <david.henningsson@canonical.com> Signed-off-by: Takashi Iwai <tiwai@suse.de>
This commit is contained in:
parent
e9ba389c5f
commit
5e68fb3cab
|
@ -4272,7 +4272,8 @@ static int stac92xx_init(struct hda_codec *codec)
|
|||
unsigned int gpio;
|
||||
int i;
|
||||
|
||||
snd_hda_sequence_write(codec, spec->init);
|
||||
if (spec->init)
|
||||
snd_hda_sequence_write(codec, spec->init);
|
||||
|
||||
/* power down adcs initially */
|
||||
if (spec->powerdown_adcs)
|
||||
|
@ -5748,7 +5749,6 @@ again:
|
|||
/* fallthru */
|
||||
case 0x111d76b4: /* 6 Port without Analog Mixer */
|
||||
case 0x111d76b5:
|
||||
spec->init = stac92hd71bxx_core_init;
|
||||
codec->slave_dig_outs = stac92hd71bxx_slave_dig_outs;
|
||||
spec->num_dmics = stac92xx_connected_ports(codec,
|
||||
stac92hd71bxx_dmic_nids,
|
||||
|
@ -5773,7 +5773,6 @@ again:
|
|||
spec->stream_delay = 40; /* 40 milliseconds */
|
||||
|
||||
/* disable VSW */
|
||||
spec->init = stac92hd71bxx_core_init;
|
||||
unmute_init++;
|
||||
snd_hda_codec_set_pincfg(codec, 0x0f, 0x40f000f0);
|
||||
snd_hda_codec_set_pincfg(codec, 0x19, 0x40f000f3);
|
||||
|
@ -5788,7 +5787,6 @@ again:
|
|||
|
||||
/* fallthru */
|
||||
default:
|
||||
spec->init = stac92hd71bxx_core_init;
|
||||
codec->slave_dig_outs = stac92hd71bxx_slave_dig_outs;
|
||||
spec->num_dmics = stac92xx_connected_ports(codec,
|
||||
stac92hd71bxx_dmic_nids,
|
||||
|
@ -5796,6 +5794,9 @@ again:
|
|||
break;
|
||||
}
|
||||
|
||||
if (get_wcaps_type(get_wcaps(codec, 0x28)) == AC_WID_VOL_KNB)
|
||||
spec->init = stac92hd71bxx_core_init;
|
||||
|
||||
if (get_wcaps(codec, 0xa) & AC_WCAP_IN_AMP)
|
||||
snd_hda_sequence_write_cache(codec, unmute_init);
|
||||
|
||||
|
|
Loading…
Reference in New Issue