On Sun, 02 Aug 2015 08:03:25 +0200, Raymond Yau wrote:
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.
The alt_pcm is created only when indep_hp == 1
When indep_hp_enable = 0, HP is reconnected to analog device stream , alt analog device return ebusy
This look like bug in indep_hp_possible() which should return false when HP and Line Out/Speaker share same DAC
The problem happens in a very special case where the codec driver enables the alt PCM manually in a fixup. It doesn't exist in the current code, so this is no real problem, but just a hypothetical issue.
Takashi