[alsa-devel] [PATCH] hda: STAC927x invalid association value
STAC_DELL_BIOS quirks were setting the association value wrong for port 0x0f, which prevented it from being included in hp_outs[].
Signed-off-by: Matthew Ranostay mranostay@embeddedalley.com --- diff -r 30701aaf404c pci/hda/patch_sigmatel.c --- a/pci/hda/patch_sigmatel.c Wed Feb 20 12:13:29 2008 +0100 +++ b/pci/hda/patch_sigmatel.c Wed Feb 20 15:01:35 2008 -0700 @@ -3630,7 +3630,7 @@ static int patch_stac927x(struct hda_cod break; case STAC_DELL_BIOS: /* correct the front output jack as a hp out */ - stac92xx_set_config_reg(codec, 0x0f, 0x02270110); + stac92xx_set_config_reg(codec, 0x0f, 0x0227011f); /* correct the front input jack as a mic */ stac92xx_set_config_reg(codec, 0x0e, 0x02a79130); /* fallthru */
At Wed, 20 Feb 2008 17:07:17 -0500, Matthew Ranostay wrote:
STAC_DELL_BIOS quirks were setting the association value wrong for port 0x0f, which prevented it from being included in hp_outs[].
Signed-off-by: Matthew Ranostay mranostay@embeddedalley.com
Applied to HG tree. Hopefully this fixes the problem with Dell XP M1530...
Thanks,
Takashi
diff -r 30701aaf404c pci/hda/patch_sigmatel.c --- a/pci/hda/patch_sigmatel.c Wed Feb 20 12:13:29 2008 +0100 +++ b/pci/hda/patch_sigmatel.c Wed Feb 20 15:01:35 2008 -0700 @@ -3630,7 +3630,7 @@ static int patch_stac927x(struct hda_cod break; case STAC_DELL_BIOS: /* correct the front output jack as a hp out */
stac92xx_set_config_reg(codec, 0x0f, 0x02270110);
/* correct the front input jack as a mic */ stac92xx_set_config_reg(codec, 0x0e, 0x02a79130); /* fallthru */stac92xx_set_config_reg(codec, 0x0f, 0x0227011f);
I tried with "alsa-driver-hg20080221", and now left HP and internal speakers are gone again.
dmesg: [ 15.444000] ALSA /mnt/storage/source/alsa/alsa-driver-hg20080221/pci/hda/hda_codec.c:2994: autoconfig: line_outs=1 (0xf/0x0/0x0/0x0/0x0) [ 15.444000] ALSA /mnt/storage/source/alsa/alsa-driver-hg20080221/pci/hda/hda_codec.c:2998: speaker_outs=1 (0xd/0x0/0x0/0x0/0x0) [ 15.444000] ALSA /mnt/storage/source/alsa/alsa-driver-hg20080221/pci/hda/hda_codec.c:3002: hp_outs=1 (0xa/0xf/0x0/0x0/0x0) [ 15.444000] ALSA /mnt/storage/source/alsa/alsa-driver-hg20080221/pci/hda/hda_codec.c:3003: mono: mono_out=0x0 [ 15.444000] ALSA /mnt/storage/source/alsa/alsa-driver-hg20080221/pci/hda/hda_codec.c:3011: inputs: mic=0xe, fmic=0x0, line=0x0, fline=0x0, cd=0x0, aux=0x0 [ 15.448000] ALSA /mnt/storage/source/alsa/alsa-driver-hg20080221/pci/hda/../../alsa-kernel/pci/hda/patch_sigmatel.c:2222: dac_nids=2 (0x5/0x4/0x0/0x0/0x0)
alsa-info.sh http://pastebin.ca/912640
Was this sw with the fix?
- Anders
Takashi Iwai wrote:
At Wed, 20 Feb 2008 17:07:17 -0500, Matthew Ranostay wrote:
STAC_DELL_BIOS quirks were setting the association value wrong for port 0x0f, which prevented it from being included in hp_outs[].
Signed-off-by: Matthew Ranostay mranostay@embeddedalley.com
Applied to HG tree. Hopefully this fixes the problem with Dell XP M1530...
Thanks,
Takashi
diff -r 30701aaf404c pci/hda/patch_sigmatel.c --- a/pci/hda/patch_sigmatel.c Wed Feb 20 12:13:29 2008 +0100 +++ b/pci/hda/patch_sigmatel.c Wed Feb 20 15:01:35 2008 -0700 @@ -3630,7 +3630,7 @@ static int patch_stac927x(struct hda_cod break; case STAC_DELL_BIOS: /* correct the front output jack as a hp out */
stac92xx_set_config_reg(codec, 0x0f, 0x02270110);
/* correct the front input jack as a mic */ stac92xx_set_config_reg(codec, 0x0e, 0x02a79130); /* fallthru */stac92xx_set_config_reg(codec, 0x0f, 0x0227011f);
At Thu, 21 Feb 2008 16:17:53 +0100, Anders Rønningen wrote:
I tried with "alsa-driver-hg20080221", and now left HP and internal speakers are gone again.
Of course it doesn't work. The daily snapshot was created before today's fix patches. Use mercurial to get the latest sources.
Takashi
I finally got around to compiling the latest source.
[ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:2994: autoconfig: line_outs=1 (0xd/0x0/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:2998: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3002: hp_outs=2 (0xa/0xf/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3003: mono: mono_out=0x0 [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3011: inputs: mic=0xc, fmic=0xe, line=0x0, fline=0x0, cd=0x0, aux=0x0 [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/patch_sigmatel.c:2287: dac_nids=3 (0x2/0x5/0x3/0x0/0x0)
Now I have sound on both HP and Internal speakers, but levelcontrol is not ok.
Internal Speakers: PCM and Front adjust the level, Master does nothing Left HP Jack: PCM and Front adjust the level, Master does nothing Right HP Jack: PCM adjusts level, Master and Front does nothing.
- Anders
Takashi Iwai wrote:
At Thu, 21 Feb 2008 16:17:53 +0100, Anders Rønningen wrote:
I tried with "alsa-driver-hg20080221", and now left HP and internal speakers are gone again.
Of course it doesn't work. The daily snapshot was created before today's fix patches. Use mercurial to get the latest sources.
Takashi
At Sat, 23 Feb 2008 23:29:56 +0100, Anders Rønningen wrote:
I finally got around to compiling the latest source.
[ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:2994: autoconfig: line_outs=1 (0xd/0x0/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:2998: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3002: hp_outs=2 (0xa/0xf/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3003: mono: mono_out=0x0 [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3011: inputs: mic=0xc, fmic=0xe, line=0x0, fline=0x0, cd=0x0, aux=0x0 [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/patch_sigmatel.c:2287: dac_nids=3 (0x2/0x5/0x3/0x0/0x0)
Now I have sound on both HP and Internal speakers, but levelcontrol is not ok.
Internal Speakers: PCM and Front adjust the level, Master does nothing Left HP Jack: PCM and Front adjust the level, Master does nothing Right HP Jack: PCM adjusts level, Master and Front does nothing.
I guess this is also same on 1.0.16? Or is it a regression after 1.0.16?
Could you take alsa-info.sh snapshot for each mixer state? Then we can check the inconsistent mapping between mixer elements and the actual I/Os.
thanks,
Takashi
1.0.16: http://pastebin.ca/916117
This is a regression from 1.0.16. In 1.0.16 everything works nice, except that the volume changes almost seem exponential. With PCM and Front set to max, I can increase the Master slider from 0% up to about 50% almost without hearing any change (or sound). From ~70% and up, the volume increases _very_ much with each step. Don't know if it's supposed to work that way.
-- Anders
Takashi Iwai wrote:
At Sat, 23 Feb 2008 23:29:56 +0100, Anders Rønningen wrote:
I finally got around to compiling the latest source.
[ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:2994: autoconfig: line_outs=1 (0xd/0x0/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:2998: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3002: hp_outs=2 (0xa/0xf/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3003: mono: mono_out=0x0 [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3011: inputs: mic=0xc, fmic=0xe, line=0x0, fline=0x0, cd=0x0, aux=0x0 [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/patch_sigmatel.c:2287: dac_nids=3 (0x2/0x5/0x3/0x0/0x0)
Now I have sound on both HP and Internal speakers, but levelcontrol is not ok.
Internal Speakers: PCM and Front adjust the level, Master does nothing Left HP Jack: PCM and Front adjust the level, Master does nothing Right HP Jack: PCM adjusts level, Master and Front does nothing.
I guess this is also same on 1.0.16? Or is it a regression after 1.0.16?
Could you take alsa-info.sh snapshot for each mixer state? Then we can check the inconsistent mapping between mixer elements and the actual I/Os.
thanks,
Takashi
On Sun, 2008-02-24 at 06:29 +0800, Anders Rønningen wrote:
I finally got around to compiling the latest source.
[ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:2994: autoconfig: line_outs=1 (0xd/0x0/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:2998: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3002: hp_outs=2 (0xa/0xf/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3003: mono: mono_out=0x0 [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3011: inputs: mic=0xc, fmic=0xe, line=0x0, fline=0x0, cd=0x0, aux=0x0 [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/patch_sigmatel.c:2287: dac_nids=3 (0x2/0x5/0x3/0x0/0x0)
Now I have sound on both HP and Internal speakers, but levelcontrol is not ok.
Internal Speakers: PCM and Front adjust the level, Master does nothing Left HP Jack: PCM and Front adjust the level, Master does nothing Right HP Jack: PCM adjusts level, Master and Front does nothing.
The Right HP Jack should be adjusted by "Surround". Because there are three jacks on the front panel, they can work on 6-channel model.
Were you able to adjust "Right HP Jack" through "Front" in alsa-1.0.16?
Thanks!
- Anders
Yes. In 1.0.16, Master and PCM adjust Left HP, while Master, Front and PCM adjust Right HP. This means that with Front at 100%, I can adjust Master and PCM and have equal level in Left/Right HP
-- Anders
On Mon, Feb 25, 2008 at 6:11 AM, Jiang zhe zhe.jiang@intel.com wrote:
On Sun, 2008-02-24 at 06:29 +0800, Anders Rønningen wrote:
I finally got around to compiling the latest source.
[ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:2994: autoconfig: line_outs=1 (0xd/0x0/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:2998: speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3002: hp_outs=2 (0xa/0xf/0x0/0x0/0x0) [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3003: mono: mono_out=0x0 [ 14.160000] ALSA /mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/hda_codec.c:3011: inputs: mic=0xc, fmic=0xe, line=0x0, fline=0x0, cd=0x0, aux=0x0 [ 14.160000] ALSA
/mnt/storage/source/alsa/mercurial/alsa-driver/pci/hda/../../alsa-kernel/pci/hda/patch_sigmatel.c:2287:
dac_nids=3 (0x2/0x5/0x3/0x0/0x0)
Now I have sound on both HP and Internal speakers, but levelcontrol is not ok.
Internal Speakers: PCM and Front adjust the level, Master does nothing Left HP Jack: PCM and Front adjust the level, Master does nothing Right HP Jack: PCM adjusts level, Master and Front does nothing.
The Right HP Jack should be adjusted by "Surround". Because there are three jacks on the front panel, they can work on 6-channel model.
Were you able to adjust "Right HP Jack" through "Front" in alsa-1.0.16?
Thanks!
- Anders
participants (4)
-
Anders Rønningen
-
Jiang zhe
-
Matthew Ranostay
-
Takashi Iwai