Skip to content

Commit

Permalink
ALSA: hda - Don't send invalid volume knob command on IDT 92hd75bxx
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
David Henningsson authored and Takashi Iwai committed Aug 16, 2012
1 parent e9ba389 commit 5e68fb3
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions sound/pci/hda/patch_sigmatel.c
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down Expand Up @@ -5748,7 +5749,6 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
/* 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,
Expand All @@ -5773,7 +5773,6 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)
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);
Expand All @@ -5788,14 +5787,16 @@ static int patch_stac92hd71bxx(struct hda_codec *codec)

/* 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,
STAC92HD71BXX_NUM_DMICS);
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);

Expand Down

0 comments on commit 5e68fb3

Please sign in to comment.