* SigmaTel STAC9221 - Mux Amp-Out > 0x02 == microphone not working
@ 2007-05-27 22:50 Ivan N. Zlatev
2007-05-29 15:08 ` Takashi Iwai
0 siblings, 1 reply; 7+ messages in thread
From: Ivan N. Zlatev @ 2007-05-27 22:50 UTC (permalink / raw)
To: alsa-devel
[-- Attachment #1: Type: text/plain, Size: 1572 bytes --]
Hello,
I am on an iMac ("*imac-20" model/pinconfig) with a Intel HD card with
the SigmaTel STAC9221 codec. I have attached the inital codec info
after modprobe. I am using Alsa HG. Setting the mux gain to a value >
20 (0x02 Amp-Out value) results a non-working microphone. Steps and
codec diffs as follows:
1) initial - microphone working
2) Mux Gain = 10 - microphone working
Node 0x12 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0
- Amp-Out vals: [0x00 0x00]
+ Amp-Out vals: [0x01 0x01]
Connection: 7
0x0e 0x15 0x0f 0x0b* 0x0c 0x0d 0x0a
3) Mux Gain = 20 - microphone working
Node 0x12 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0
- Amp-Out vals: [0x01 0x01]
+ Amp-Out vals: [0x02 0x02]
Connection: 7
0x0e 0x15 0x0f 0x0b* 0x0c 0x0d 0x0a
4) Mux Gain = 30 - microphone not working
Node 0x12 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0
- Amp-Out vals: [0x02 0x02]
+ Amp-Out vals: [0x03 0x03]
Connection: 7
0x0e 0x15 0x0f 0x0b* 0x0c 0x0d 0x0a
4) Mux Gain = 40 - microphone not working
Node 0x12 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0
- Amp-Out vals: [0x03 0x03]
+ Amp-Out vals: [0x04 0x04]
Connection: 7
0x0e 0x15 0x0f 0x0b* 0x0c 0x0d 0x0a
Regards
--
Ivan N. Zlatev
Web: http://www.i-nZ.net
"It's all some kind of whacked out conspiracy."
[-- Attachment #2: codec-info --]
[-- Type: application/octet-stream, Size: 4405 bytes --]
Codec: SigmaTel STAC9221 A1
Address: 0
Vendor Id: 0x83847680
Subsystem Id: 0x106b1700
Revision Id: 0x103401
Default PCM:
rates [0x7e0]: 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
formats [0x1]: PCM
Default Amp-In caps: ofs=0x00, nsteps=0x0e, stepsize=0x05, mute=1
Default Amp-Out caps: ofs=0x7f, nsteps=0x7f, stepsize=0x02, mute=1
Node 0x02 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out
Amp-Out caps: N/A
Amp-Out vals: [0x5b 0x5b]
Power: 0x0
Node 0x03 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out
Amp-Out caps: N/A
Amp-Out vals: [0x7f 0x7f]
Power: 0x0
Node 0x04 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out
Amp-Out caps: N/A
Amp-Out vals: [0x7f 0x7f]
Power: 0x0
Node 0x05 [Audio Output] wcaps 0xd0c05: Stereo Amp-Out
Amp-Out caps: N/A
Amp-Out vals: [0x7f 0x7f]
Power: 0x0
Node 0x06 [Audio Input] wcaps 0x1d0541: Stereo
Power: 0x0
Connection: 1
0x17
Node 0x07 [Audio Input] wcaps 0x1d0541: Stereo
Power: 0x0
Connection: 1
0x18
Node 0x08 [Audio Output] wcaps 0x40211: Stereo Digital
PCM:
rates [0x7e0]: 44100 48000 88200 96000 176400 192000
bits [0xe]: 16 20 24
formats [0x5]: PCM AC3
Node 0x09 [Audio Input] wcaps 0x140311: Stereo Digital
PCM:
rates [0x160]: 44100 48000 96000
bits [0xe]: 16 20 24
formats [0x5]: PCM AC3
Connection: 1
0x11
Node 0x0a [Pin Complex] wcaps 0x400181: Stereo
Pincap 0x08173f: IN OUT HP Detect
Pin Default 0x0121e21f: [Jack] HP Out at Ext Rear
Conn = 1/8, Color = White
Pin-ctls: 0xc0: OUT HP
Connection: 1
0x02
Node 0x0b [Pin Complex] wcaps 0x400181: Stereo
Pincap 0x081737: IN OUT Detect
Pin Default 0x90a7012e: [Fixed] Mic at Int N/A
Conn = Analog, Color = Unknown
Pin-ctls: 0x24: IN
Connection: 1
0x04
Node 0x0c [Pin Complex] wcaps 0x400181: Stereo
Pincap 0x081737: IN OUT Detect
Pin Default 0x9017e110: [Fixed] Speaker at Int N/A
Conn = Analog, Color = White
Pin-ctls: 0x40: OUT
Connection: 1
0x03
Node 0x0d [Pin Complex] wcaps 0x400181: Stereo
Pincap 0x08173f: IN OUT HP Detect
Pin Default 0x400000fd: [N/A] Line Out at Ext N/A
Conn = Unknown, Color = Unknown
Pin-ctls: 0x40: OUT
Connection: 1
0x02
Node 0x0e [Pin Complex] wcaps 0x400081: Stereo
Pincap 0x0824: IN Detect
Pin Default 0x400000fe: [N/A] Line Out at Ext N/A
Conn = Unknown, Color = Unknown
Pin-ctls: 0x20: IN
Node 0x0f [Pin Complex] wcaps 0x400181: Stereo
Pincap 0x0837: IN OUT Detect
Pin Default 0x0181e020: [Jack] Line In at Ext Rear
Conn = 1/8, Color = White
Pin-ctls: 0x20: IN
Connection: 1
0x05
Node 0x10 [Pin Complex] wcaps 0x400301: Stereo Digital
Pincap 0x0810: OUT
Pin Default 0x1145e230: [Jack] SPDIF Out at Int Rear
Conn = Optical, Color = White
Pin-ctls: 0x40: OUT
Connection: 3
0x08* 0x17 0x19
Node 0x11 [Pin Complex] wcaps 0x430681: Stereo Digital
Pincap 0x0810024: IN EAPD Detect
Pin Default 0x11c5e240: [Jack] SPDIF In at Int Rear
Conn = Optical, Color = White
Pin-ctls: 0x20: IN
Power: 0x0
Node 0x12 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 7
0x0e 0x15 0x0f 0x0b* 0x0c 0x0d 0x0a
Node 0x13 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0
Amp-Out vals: [0x00 0x00]
Connection: 7
0x0e 0x15 0x0f 0x0b* 0x0c 0x0d 0x0a
Node 0x14 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out
Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=0
Amp-Out vals: [0x00]
Node 0x15 [Pin Complex] wcaps 0x400001: Stereo
Pincap 0x0820: IN
Pin Default 0x400000fc: [N/A] Line Out at Ext N/A
Conn = Unknown, Color = Unknown
Pin-ctls: 0x00:
Node 0x16 [Volume Knob Widget] wcaps 0x600000: Mono
Node 0x17 [Audio Selector] wcaps 0x300903: Stereo Amp-In
Amp-In caps: N/A
Amp-In vals: [0x0e 0x0e]
Connection: 1
0x12
Node 0x18 [Audio Selector] wcaps 0x300903: Stereo Amp-In
Amp-In caps: N/A
Amp-In vals: [0x80 0x80]
Connection: 1
0x13
Node 0x19 [Vendor Defined Widget] wcaps 0xf30201: Stereo Digital
Node 0x1a [Audio Output] wcaps 0x30201: Stereo Digital
Node 0x1b [Pin Complex] wcaps 0x400301: Stereo Digital
Pincap 0x0810: OUT
Pin Default 0x400000fb: [N/A] Line Out at Ext N/A
Conn = Unknown, Color = Unknown
Pin-ctls: 0x00:
Connection: 1
0x1a
[-- Attachment #3: Type: text/plain, Size: 160 bytes --]
_______________________________________________
Alsa-devel mailing list
Alsa-devel@alsa-project.org
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SigmaTel STAC9221 - Mux Amp-Out > 0x02 == microphone not working
2007-05-27 22:50 SigmaTel STAC9221 - Mux Amp-Out > 0x02 == microphone not working Ivan N. Zlatev
@ 2007-05-29 15:08 ` Takashi Iwai
2007-05-29 15:20 ` Ivan N. Zlatev
0 siblings, 1 reply; 7+ messages in thread
From: Takashi Iwai @ 2007-05-29 15:08 UTC (permalink / raw)
To: Ivan N. Zlatev; +Cc: alsa-devel
At Sun, 27 May 2007 23:50:35 +0100,
Ivan N. Zlatev wrote:
>
> Hello,
>
> I am on an iMac ("*imac-20" model/pinconfig) with a Intel HD card with
> the SigmaTel STAC9221 codec. I have attached the inital codec info
> after modprobe. I am using Alsa HG. Setting the mux gain to a value >
> 20 (0x02 Amp-Out value) results a non-working microphone. Steps and
> codec diffs as follows:
Thanks for the survey!
And, does this volume have any influence on the quality of recorded
sound at all? If not, we should remove this control rather than
keeping a dangerous thing...
Takashi
> 1) initial - microphone working
> 2) Mux Gain = 10 - microphone working
>
> Node 0x12 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
> Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0
> - Amp-Out vals: [0x00 0x00]
> + Amp-Out vals: [0x01 0x01]
> Connection: 7
> 0x0e 0x15 0x0f 0x0b* 0x0c 0x0d 0x0a
>
> 3) Mux Gain = 20 - microphone working
>
> Node 0x12 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
> Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0
> - Amp-Out vals: [0x01 0x01]
> + Amp-Out vals: [0x02 0x02]
> Connection: 7
> 0x0e 0x15 0x0f 0x0b* 0x0c 0x0d 0x0a
>
>
> 4) Mux Gain = 30 - microphone not working
>
> Node 0x12 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
> Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0
> - Amp-Out vals: [0x02 0x02]
> + Amp-Out vals: [0x03 0x03]
> Connection: 7
> 0x0e 0x15 0x0f 0x0b* 0x0c 0x0d 0x0a
>
>
> 4) Mux Gain = 40 - microphone not working
>
> Node 0x12 [Audio Selector] wcaps 0x30010d: Stereo Amp-Out
> Amp-Out caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0
> - Amp-Out vals: [0x03 0x03]
> + Amp-Out vals: [0x04 0x04]
> Connection: 7
> 0x0e 0x15 0x0f 0x0b* 0x0c 0x0d 0x0a
>
> Regards
> --
> Ivan N. Zlatev
>
> Web: http://www.i-nZ.net
> "It's all some kind of whacked out conspiracy."
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SigmaTel STAC9221 - Mux Amp-Out > 0x02 == microphone not working
2007-05-29 15:08 ` Takashi Iwai
@ 2007-05-29 15:20 ` Ivan N. Zlatev
2007-05-29 15:29 ` Takashi Iwai
0 siblings, 1 reply; 7+ messages in thread
From: Ivan N. Zlatev @ 2007-05-29 15:20 UTC (permalink / raw)
To: alsa-devel; +Cc: Takashi Iwai
On 5/29/07, Takashi Iwai <tiwai@suse.de> wrote:
>
> And, does this volume have any influence on the quality of recorded
> sound at all? If not, we should remove this control rather than
> keeping a dangerous thing...
>
Yes. This controls the microphone boost level (without boost the sound
recorded has *very* low volume). Also Windows shows up a +20db
microphone boost slider on this machine.
--
Ivan N. Zlatev
Web: http://www.i-nZ.net
"It's all some kind of whacked out conspiracy."
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SigmaTel STAC9221 - Mux Amp-Out > 0x02 == microphone not working
2007-05-29 15:20 ` Ivan N. Zlatev
@ 2007-05-29 15:29 ` Takashi Iwai
2007-05-29 16:18 ` Takashi Iwai
0 siblings, 1 reply; 7+ messages in thread
From: Takashi Iwai @ 2007-05-29 15:29 UTC (permalink / raw)
To: Ivan N. Zlatev; +Cc: alsa-devel
At Tue, 29 May 2007 16:20:33 +0100,
Ivan N. Zlatev wrote:
>
> On 5/29/07, Takashi Iwai <tiwai@suse.de> wrote:
> >
> > And, does this volume have any influence on the quality of recorded
> > sound at all? If not, we should remove this control rather than
> > keeping a dangerous thing...
> >
>
> Yes. This controls the microphone boost level (without boost the sound
> recorded has *very* low volume). Also Windows shows up a +20db
> microphone boost slider on this machine.
Ah, OK. Then the control seems indicates the wrong max level indeed.
So, we need two fixes:
- rename "Mux Capture Volume" to more intuitive one, such as "Capture
Boost" or something like that.
- limit the max level of this volume to 2.
The latter is a bit hard to fix. Let's see whether I can do some
hack...
thanks,
Takashi
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SigmaTel STAC9221 - Mux Amp-Out > 0x02 == microphone not working
2007-05-29 15:29 ` Takashi Iwai
@ 2007-05-29 16:18 ` Takashi Iwai
2007-05-29 16:49 ` Ivan N. Zlatev
0 siblings, 1 reply; 7+ messages in thread
From: Takashi Iwai @ 2007-05-29 16:18 UTC (permalink / raw)
To: Ivan N. Zlatev; +Cc: alsa-devel
At Tue, 29 May 2007 17:29:10 +0200,
I wrote:
>
> At Tue, 29 May 2007 16:20:33 +0100,
> Ivan N. Zlatev wrote:
> >
> > On 5/29/07, Takashi Iwai <tiwai@suse.de> wrote:
> > >
> > > And, does this volume have any influence on the quality of recorded
> > > sound at all? If not, we should remove this control rather than
> > > keeping a dangerous thing...
> > >
> >
> > Yes. This controls the microphone boost level (without boost the sound
> > recorded has *very* low volume). Also Windows shows up a +20db
> > microphone boost slider on this machine.
>
> Ah, OK. Then the control seems indicates the wrong max level indeed.
> So, we need two fixes:
>
> - rename "Mux Capture Volume" to more intuitive one, such as "Capture
> Boost" or something like that.
>
> - limit the max level of this volume to 2.
>
> The latter is a bit hard to fix. Let's see whether I can do some
> hack...
Could you check the patch below?
(This doesn't rename but just fix the latter item.)
Takashi
diff -r 200fc3a7ef62 pci/hda/hda_codec.c
--- a/pci/hda/hda_codec.c Tue May 29 18:01:06 2007 +0200
+++ b/pci/hda/hda_codec.c Tue May 29 18:17:15 2007 +0200
@@ -711,6 +711,19 @@ static u32 query_amp_caps(struct hda_cod
info->status |= INFO_AMP_CAPS;
}
return info->amp_caps;
+}
+
+int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
+ unsigned int caps)
+{
+ struct hda_amp_info *info;
+
+ info = get_alloc_amp_hash(codec, HDA_HASH_KEY(nid, dir, 0));
+ if (!info)
+ return -EINVAL;
+ info->amp_caps = caps;
+ info->status |= INFO_AMP_CAPS;
+ return 0;
}
/*
diff -r 200fc3a7ef62 pci/hda/hda_local.h
--- a/pci/hda/hda_local.h Tue May 29 18:01:06 2007 +0200
+++ b/pci/hda/hda_local.h Tue May 29 18:17:02 2007 +0200
@@ -277,5 +277,7 @@ static inline u32 get_wcaps(struct hda_c
return codec->wcaps[nid - codec->start_nid];
}
+int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
+ unsigned int caps);
#endif /* __SOUND_HDA_LOCAL_H */
diff -r 200fc3a7ef62 pci/hda/patch_sigmatel.c
--- a/pci/hda/patch_sigmatel.c Tue May 29 18:01:06 2007 +0200
+++ b/pci/hda/patch_sigmatel.c Tue May 29 18:12:30 2007 +0200
@@ -2033,6 +2033,12 @@ static int patch_stac925x(struct hda_cod
codec->patch_ops = stac92xx_patch_ops;
+ /* Fix Mux capture level; max to 2 */
+ snd_hda_override_amp_caps(codec, 0x12, HDA_OUTPUT,
+ (0 << AC_AMPCAP_OFFSET_SHIFT) |
+ (2 << AC_AMPCAP_NUM_STEPS_SHIFT) |
+ (0x27 << AC_AMPCAP_STEP_SIZE_SHIFT) |
+ (0 << AC_AMPCAP_MUTE_SHIFT));
return 0;
}
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SigmaTel STAC9221 - Mux Amp-Out > 0x02 == microphone not working
2007-05-29 16:18 ` Takashi Iwai
@ 2007-05-29 16:49 ` Ivan N. Zlatev
2007-05-29 17:03 ` Takashi Iwai
0 siblings, 1 reply; 7+ messages in thread
From: Ivan N. Zlatev @ 2007-05-29 16:49 UTC (permalink / raw)
To: alsa-devel; +Cc: Takashi Iwai
On 5/29/07, Takashi Iwai <tiwai@suse.de> wrote:
> At Tue, 29 May 2007 17:29:10 +0200,
> I wrote:
> >
> > At Tue, 29 May 2007 16:20:33 +0100,
> > Ivan N. Zlatev wrote:
> > >
> > > On 5/29/07, Takashi Iwai <tiwai@suse.de> wrote:
> > > >
> > > > And, does this volume have any influence on the quality of recorded
> > > > sound at all? If not, we should remove this control rather than
> > > > keeping a dangerous thing...
> > > >
> > >
> > > Yes. This controls the microphone boost level (without boost the sound
> > > recorded has *very* low volume). Also Windows shows up a +20db
> > > microphone boost slider on this machine.
> >
> > Ah, OK. Then the control seems indicates the wrong max level indeed.
> > So, we need two fixes:
> >
> > - rename "Mux Capture Volume" to more intuitive one, such as "Capture
> > Boost" or something like that.
> >
> > - limit the max level of this volume to 2.
> >
> > The latter is a bit hard to fix. Let's see whether I can do some
> > hack...
>
> Could you check the patch below?
> (This doesn't rename but just fix the latter item.)
>
>
> Takashi
>
> diff -r 200fc3a7ef62 pci/hda/hda_codec.c
> --- a/pci/hda/hda_codec.c Tue May 29 18:01:06 2007 +0200
> +++ b/pci/hda/hda_codec.c Tue May 29 18:17:15 2007 +0200
> @@ -711,6 +711,19 @@ static u32 query_amp_caps(struct hda_cod
> info->status |= INFO_AMP_CAPS;
> }
> return info->amp_caps;
> +}
> +
> +int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
> + unsigned int caps)
> +{
> + struct hda_amp_info *info;
> +
> + info = get_alloc_amp_hash(codec, HDA_HASH_KEY(nid, dir, 0));
> + if (!info)
> + return -EINVAL;
> + info->amp_caps = caps;
> + info->status |= INFO_AMP_CAPS;
> + return 0;
> }
>
> /*
> diff -r 200fc3a7ef62 pci/hda/hda_local.h
> --- a/pci/hda/hda_local.h Tue May 29 18:01:06 2007 +0200
> +++ b/pci/hda/hda_local.h Tue May 29 18:17:02 2007 +0200
> @@ -277,5 +277,7 @@ static inline u32 get_wcaps(struct hda_c
> return codec->wcaps[nid - codec->start_nid];
> }
>
> +int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
> + unsigned int caps);
>
> #endif /* __SOUND_HDA_LOCAL_H */
> diff -r 200fc3a7ef62 pci/hda/patch_sigmatel.c
> --- a/pci/hda/patch_sigmatel.c Tue May 29 18:01:06 2007 +0200
> +++ b/pci/hda/patch_sigmatel.c Tue May 29 18:12:30 2007 +0200
> @@ -2033,6 +2033,12 @@ static int patch_stac925x(struct hda_cod
>
> codec->patch_ops = stac92xx_patch_ops;
>
> + /* Fix Mux capture level; max to 2 */
> + snd_hda_override_amp_caps(codec, 0x12, HDA_OUTPUT,
> + (0 << AC_AMPCAP_OFFSET_SHIFT) |
> + (2 << AC_AMPCAP_NUM_STEPS_SHIFT) |
> + (0x27 << AC_AMPCAP_STEP_SIZE_SHIFT) |
> + (0 << AC_AMPCAP_MUTE_SHIFT));
> return 0;
> }
>
>
Works, BUT the last hunk is at the wrong place. The
snd_hda_override_amp_caps call should be in patch_stac922x (...) and
not in patch_stac925x (...)
Cheers!
--
Ivan N. Zlatev
Web: http://www.i-nZ.net
"It's all some kind of whacked out conspiracy."
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: SigmaTel STAC9221 - Mux Amp-Out > 0x02 == microphone not working
2007-05-29 16:49 ` Ivan N. Zlatev
@ 2007-05-29 17:03 ` Takashi Iwai
0 siblings, 0 replies; 7+ messages in thread
From: Takashi Iwai @ 2007-05-29 17:03 UTC (permalink / raw)
To: Ivan N. Zlatev; +Cc: alsa-devel
At Tue, 29 May 2007 17:49:54 +0100,
Ivan N. Zlatev wrote:
>
> On 5/29/07, Takashi Iwai <tiwai@suse.de> wrote:
> > At Tue, 29 May 2007 17:29:10 +0200,
> > I wrote:
> > >
> > > At Tue, 29 May 2007 16:20:33 +0100,
> > > Ivan N. Zlatev wrote:
> > > >
> > > > On 5/29/07, Takashi Iwai <tiwai@suse.de> wrote:
> > > > >
> > > > > And, does this volume have any influence on the quality of recorded
> > > > > sound at all? If not, we should remove this control rather than
> > > > > keeping a dangerous thing...
> > > > >
> > > >
> > > > Yes. This controls the microphone boost level (without boost the sound
> > > > recorded has *very* low volume). Also Windows shows up a +20db
> > > > microphone boost slider on this machine.
> > >
> > > Ah, OK. Then the control seems indicates the wrong max level indeed.
> > > So, we need two fixes:
> > >
> > > - rename "Mux Capture Volume" to more intuitive one, such as "Capture
> > > Boost" or something like that.
> > >
> > > - limit the max level of this volume to 2.
> > >
> > > The latter is a bit hard to fix. Let's see whether I can do some
> > > hack...
> >
> > Could you check the patch below?
> > (This doesn't rename but just fix the latter item.)
> >
> >
> > Takashi
> >
> > diff -r 200fc3a7ef62 pci/hda/hda_codec.c
> > --- a/pci/hda/hda_codec.c Tue May 29 18:01:06 2007 +0200
> > +++ b/pci/hda/hda_codec.c Tue May 29 18:17:15 2007 +0200
> > @@ -711,6 +711,19 @@ static u32 query_amp_caps(struct hda_cod
> > info->status |= INFO_AMP_CAPS;
> > }
> > return info->amp_caps;
> > +}
> > +
> > +int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
> > + unsigned int caps)
> > +{
> > + struct hda_amp_info *info;
> > +
> > + info = get_alloc_amp_hash(codec, HDA_HASH_KEY(nid, dir, 0));
> > + if (!info)
> > + return -EINVAL;
> > + info->amp_caps = caps;
> > + info->status |= INFO_AMP_CAPS;
> > + return 0;
> > }
> >
> > /*
> > diff -r 200fc3a7ef62 pci/hda/hda_local.h
> > --- a/pci/hda/hda_local.h Tue May 29 18:01:06 2007 +0200
> > +++ b/pci/hda/hda_local.h Tue May 29 18:17:02 2007 +0200
> > @@ -277,5 +277,7 @@ static inline u32 get_wcaps(struct hda_c
> > return codec->wcaps[nid - codec->start_nid];
> > }
> >
> > +int snd_hda_override_amp_caps(struct hda_codec *codec, hda_nid_t nid, int dir,
> > + unsigned int caps);
> >
> > #endif /* __SOUND_HDA_LOCAL_H */
> > diff -r 200fc3a7ef62 pci/hda/patch_sigmatel.c
> > --- a/pci/hda/patch_sigmatel.c Tue May 29 18:01:06 2007 +0200
> > +++ b/pci/hda/patch_sigmatel.c Tue May 29 18:12:30 2007 +0200
> > @@ -2033,6 +2033,12 @@ static int patch_stac925x(struct hda_cod
> >
> > codec->patch_ops = stac92xx_patch_ops;
> >
> > + /* Fix Mux capture level; max to 2 */
> > + snd_hda_override_amp_caps(codec, 0x12, HDA_OUTPUT,
> > + (0 << AC_AMPCAP_OFFSET_SHIFT) |
> > + (2 << AC_AMPCAP_NUM_STEPS_SHIFT) |
> > + (0x27 << AC_AMPCAP_STEP_SIZE_SHIFT) |
> > + (0 << AC_AMPCAP_MUTE_SHIFT));
> > return 0;
> > }
> >
> >
>
> Works, BUT the last hunk is at the wrong place. The
> snd_hda_override_amp_caps call should be in patch_stac922x (...) and
> not in patch_stac925x (...)
Aha, a typical error :)
I committed the fixed patch to ALSA HG tree now.
Could you check the HG tree later whether it really works?
Also, any other pending issues?
thanks,
Takashi
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2007-05-29 17:03 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-05-27 22:50 SigmaTel STAC9221 - Mux Amp-Out > 0x02 == microphone not working Ivan N. Zlatev
2007-05-29 15:08 ` Takashi Iwai
2007-05-29 15:20 ` Ivan N. Zlatev
2007-05-29 15:29 ` Takashi Iwai
2007-05-29 16:18 ` Takashi Iwai
2007-05-29 16:49 ` Ivan N. Zlatev
2007-05-29 17:03 ` Takashi Iwai
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).