Commit d1f15e06 authored by Takashi Iwai's avatar Takashi Iwai

ALSA: hda - Fix a wrong busy check in alt PCM open

Currently, the alt PCM open callback returns -EBUSY when an
independent HP is turned off, supposing that it conflicts with the
main PCM.  However, obviously, this check is wrong when the
independent HP itself isn't enabled but the alt PCM was explicitly
created via alc_dac_nid by a codec driver.
Reported-and-tested-by: default avatarKailang Yang <kailang@realtek.com>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
parent e828b237
...@@ -5175,7 +5175,7 @@ static int alt_playback_pcm_open(struct hda_pcm_stream *hinfo, ...@@ -5175,7 +5175,7 @@ static int alt_playback_pcm_open(struct hda_pcm_stream *hinfo,
int err = 0; int err = 0;
mutex_lock(&spec->pcm_mutex); mutex_lock(&spec->pcm_mutex);
if (!spec->indep_hp_enabled) if (spec->indep_hp && !spec->indep_hp_enabled)
err = -EBUSY; err = -EBUSY;
else else
spec->active_streams |= 1 << STREAM_INDEP_HP; spec->active_streams |= 1 << STREAM_INDEP_HP;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment