diff mbox

[1/2] ALSA: hda - Create capture source ctls when stereo mix input is added

Message ID 1418648202-2509-1-git-send-email-tiwai@suse.de (mailing list archive)
State Accepted
Commit 82d04e1088769c769c87ffa1d4df5e4a228f637a
Headers show

Commit Message

Takashi Iwai Dec. 15, 2014, 12:56 p.m. UTC
When the stereo mix input is explicitly enabled via a user hint, the
driver should create always a capture source enum ctl and disable the
auto-mic switch.  Otherwise the behavior gets confused.  For doing it,
this patch just sets spec->suppress_auto_mic flag appropriately.

Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
 sound/pci/hda/hda_generic.c | 2 ++
 1 file changed, 2 insertions(+)

Comments

Raymond Yau Dec. 18, 2014, 7:13 a.m. UTC | #1
>
> When the stereo mix input is explicitly enabled via a user hint, the
> driver should create always a capture source enum ctl and disable the
> auto-mic switch.  Otherwise the behavior gets confused.  For doing it,
> this patch just sets spec->suppress_auto_mic flag appropriately.
>

As your patch allow notebook to use stereo mix by hint , does it mean that
those audio mixer which only have input from audio output but no mic or
line input can be also enabled on notebook by hint ?

https://bugzilla.kernel.org/attachment.cgi?id=144111

Node 0x14 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L
  Control: name="Capture Volume", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Control: name="Capture Switch", index=0, device=0
    ControlAmp: chs=3, dir=In, idx=0, ofs=0
  Device: name="CX20590 Analog", type="Audio", device=0
  Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=1
  Amp-In vals:  [0x50 0x50] [0x80 0x80] [0x50 0x50] [0x80 0x80]
  Converter: stream=1, channel=0
  SDI-Select: 0
  PCM:
    rates [0x160]: 44100 48000 96000
    bits [0xe]: 16 20 24
    formats [0x1]: PCM
  Power states:  D0 D1 D2 D3 D3cold EPSS
  Power: setting=D0, actual=D0
  Connection: 4
     0x17 0x18 0x23* 0x24

Node 0x24 [Audio Mixer] wcaps 0x20050b: Stereo Amp-In
  Amp-In caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=1
  Amp-In vals:  [0x00 0x00] [0x00 0x00]
  Power states:  D0 D1 D2 D3 D3cold EPSS
  Power: setting=D0, actual=D0
  Connection: 2
     0x10 0x11
Takashi Iwai Dec. 18, 2014, 7:37 a.m. UTC | #2
At Thu, 18 Dec 2014 15:13:13 +0800,
Raymond Yau wrote:
> 
> >
> > When the stereo mix input is explicitly enabled via a user hint, the
> > driver should create always a capture source enum ctl and disable the
> > auto-mic switch.  Otherwise the behavior gets confused.  For doing it,
> > this patch just sets spec->suppress_auto_mic flag appropriately.
> >
> 
> As your patch allow notebook to use stereo mix by hint , does it mean that
> those audio mixer which only have input from audio output but no mic or
> line input can be also enabled on notebook by hint ?

The patch doesn't change anything about the already implemented
behavior.


Takashi
diff mbox

Patch

diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c
index 63b69f750d8e..293af6b5ba3d 100644
--- a/sound/pci/hda/hda_generic.c
+++ b/sound/pci/hda/hda_generic.c
@@ -3224,6 +3224,8 @@  static int create_input_ctls(struct hda_codec *codec)
 					   "Stereo Mix", 0);
 		if (err < 0)
 			return err;
+		else
+			spec->suppress_auto_mic = 1;
 	}
 
 	return 0;