Re: [alsa-devel] Audio Jack Out does not work
So it's 03ad6a8c93b6df2 ('ALSA: hda - Fix "PCM" name being used on one DAC when there are two DACs') which causes the problem? Have you tried to just revert that patch?
git show 03ad6a8c93b6df2d65c305b5b5f9474068b45bfb | patch -p1 -R
regards, dan carpenter
Yes; reverting the patch does fix the problem.
On Wed, 2015-04-08 at 01:56 +0300, Dan Carpenter wrote:
So it's 03ad6a8c93b6df2 ('ALSA: hda - Fix "PCM" name being used on > one DAC when there are two DACs') which causes the problem? Have you tried to just revert that patch?
git show 03ad6a8c93b6df2d65c305b5b5f9474068b45bfb | patch -p1 -R
regards, dan carpenter
At Tue, 07 Apr 2015 21:07:06 -0400, Taylor Smock wrote:
Yes; reverting the patch does fix the problem.
What if you just adjust the new volume manually without reverting the patch? Run "alsamixer -c0" (or -c1, depending on the setup). Once after the setup, run "alsactl store" as root to save as the system default volume.
The renamed volume should have been set in full volume as default by the driver, and this shouldn't matter whether PA is new or old. If the mixer adjustment isn't kept after relogin or reboot, it means that some user-space stuff overrides it.
In anyway, please give alsa-info.sh output before and after the commit.
Takashi
On Wed, 2015-04-08 at 01:56 +0300, Dan Carpenter wrote:
So it's 03ad6a8c93b6df2 ('ALSA: hda - Fix "PCM" name being used on > one DAC when there are two DACs') which causes the problem? Have you tried to just revert that patch?
git show 03ad6a8c93b6df2d65c305b5b5f9474068b45bfb | patch -p1 -R
regards, dan carpenter
On Wed, 2015-04-08 at 10:22 +0200, Takashi Iwai wrote:
At Tue, 07 Apr 2015 21:07:06 -0400, Taylor Smock wrote:
Yes; reverting the patch does fix the problem.
What if you just adjust the new volume manually without reverting the patch? Run "alsamixer -c0" (or -c1, depending on the setup). Once after the setup, run "alsactl store" as root to save as the system default volume.
The renamed volume should have been set in full volume as default by the driver, and this shouldn't matter whether PA is new or old. If the mixer adjustment isn't kept after relogin or reboot, it means that some user-space stuff overrides it.
In anyway, please give alsa-info.sh output before and after the commit.
Takashi
On Wed, 2015-04-08 at 01:56 +0300, Dan Carpenter wrote:
So it's 03ad6a8c93b6df2 ('ALSA: hda - Fix "PCM" name being used on > one DAC when there are two DACs') which causes the problem? Have you tried to just revert that patch?
git show 03ad6a8c93b6df2d65c305b5b5f9474068b45bfb | patch -p1 -R
regards, dan carpenter
I ran alsamixer -c0. Headphones did nothing. Speaker+L0 did change headphone volume. PCM also seemed to affect headphone volume.
At Wed, 08 Apr 2015 09:34:58 -0400, Taylor Smock wrote:
On Wed, 2015-04-08 at 10:22 +0200, Takashi Iwai wrote:
At Tue, 07 Apr 2015 21:07:06 -0400, Taylor Smock wrote:
Yes; reverting the patch does fix the problem.
What if you just adjust the new volume manually without reverting the patch? Run "alsamixer -c0" (or -c1, depending on the setup). Once after the setup, run "alsactl store" as root to save as the system default volume.
The renamed volume should have been set in full volume as default by the driver, and this shouldn't matter whether PA is new or old. If the mixer adjustment isn't kept after relogin or reboot, it means that some user-space stuff overrides it.
In anyway, please give alsa-info.sh output before and after the commit.
Takashi
On Wed, 2015-04-08 at 01:56 +0300, Dan Carpenter wrote:
So it's 03ad6a8c93b6df2 ('ALSA: hda - Fix "PCM" name being used on > one DAC when there are two DACs') which causes the problem? Have you tried to just revert that patch?
git show 03ad6a8c93b6df2d65c305b5b5f9474068b45bfb | patch -p1 -R
regards, dan carpenter
I ran alsamixer -c0. Headphones did nothing. Speaker+L0 did change headphone volume.
Please elaborate a bit what you're testing and what you expected. When you change "Headphone" volume and mute, it did nothing for which output? "Speaker+LO" changes which output and which not?
You seem to have three outputs, one headphone jack on a laptop and one on a docking station, and there is a built-in speaker. Since your codec has only two DACs, two of three must be tied.
The bad thing is that BIOS pin configuration doesn't set the headphone pin with the associate number 0x0f but only set it to the dock headphone. Thus the driver assumes that the dock jack is the right headphone and handles the laptop headphone as a sub output. The commit you spotted took this difference more severely, and now you see the unexpected mixer assignment.
So, the right "fix" would be rather to correct the pin config. For example, try the patch below.
(BTW, what is the product of your laptop model? A more exact name can be filled in the quirk string.)
PCM also seemed to affect headphone volume.
This is a mixer element added by alsa-lib softvol plugin, and it's not what the kernel manages.
Judging from the description that this PCM volume affects, you are playing without PulseAudio but dmix, I suppose?
Takashi
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 7b5c93e0e78c..9d935e5c008a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4429,6 +4429,7 @@ enum { ALC269_FIXUP_QUANTA_MUTE, ALC269_FIXUP_LIFEBOOK, ALC269_FIXUP_LIFEBOOK_EXTMIC, + ALC269_FIXUP_FUJITSU_HP_PIN, ALC269_FIXUP_AMIC, ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC, @@ -4585,6 +4586,13 @@ static const struct hda_fixup alc269_fixups[] = { { } }, }, + [ALC269_FIXUP_FUJITSU_HP_PIN] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x21, 0x0221102f }, /* HP out */ + { } + }, + }, [ALC269_FIXUP_AMIC] = { .type = HDA_FIXUP_PINS, .v.pins = (const struct hda_pintbl[]) { @@ -5105,6 +5113,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), SND_PCI_QUIRK(0x104d, 0x9099, "Sony VAIO S13", ALC275_FIXUP_SONY_DISABLE_AAMIX), SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook", ALC269_FIXUP_LIFEBOOK), + SND_PCI_QUIRK(0x10cf, 0x15dc, "Fujitsu", ALC269_FIXUP_FUJITSU_HP_PIN), SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC), SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_BXBT2807_MIC),
On Wed, 2015-04-08 at 16:06 +0200, Takashi Iwai wrote:
At Wed, 08 Apr 2015 09:34:58 -0400, Taylor Smock wrote:
On Wed, 2015-04-08 at 10:22 +0200, Takashi Iwai wrote:
At Tue, 07 Apr 2015 21:07:06 -0400, Taylor Smock wrote:
Yes; reverting the patch does fix the problem.
What if you just adjust the new volume manually without reverting the patch? Run "alsamixer -c0" (or -c1, depending on the setup). Once after the setup, run "alsactl store" as root to save as the system default volume.
The renamed volume should have been set in full volume as default by the driver, and this shouldn't matter whether PA is new or old. If the mixer adjustment isn't kept after relogin or reboot, it means that some user-space stuff overrides it.
In anyway, please give alsa-info.sh output before and after the commit.
Takashi
On Wed, 2015-04-08 at 01:56 +0300, Dan Carpenter wrote:
So it's 03ad6a8c93b6df2 ('ALSA: hda - Fix "PCM" name being used on > one DAC when there are two DACs') which causes the problem? Have you tried to just revert that patch?
git show 03ad6a8c93b6df2d65c305b5b5f9474068b45bfb | patch - p1 -R
regards, dan carpenter
I ran alsamixer -c0. Headphones did nothing. Speaker+L0 did change headphone volume.
Please elaborate a bit what you're testing and what you expected. When you change "Headphone" volume and mute, it did nothing for which output? "Speaker+LO" changes which output and which not?
You seem to have three outputs, one headphone jack on a laptop and one on a docking station, and there is a built-in speaker. Since your codec has only two DACs, two of three must be tied.
The bad thing is that BIOS pin configuration doesn't set the headphone pin with the associate number 0x0f but only set it to the dock headphone. Thus the driver assumes that the dock jack is the right headphone and handles the laptop headphone as a sub output. The commit you spotted took this difference more severely, and now you see the unexpected mixer assignment.
So, the right "fix" would be rather to correct the pin config. For example, try the patch below.
(BTW, what is the product of your laptop model? A more exact name can be filled in the quirk string.)
PCM also seemed to affect headphone volume.
This is a mixer element added by alsa-lib softvol plugin, and it's not what the kernel manages.
Judging from the description that this PCM volume affects, you are playing without PulseAudio but dmix, I suppose?
Takashi
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 7b5c93e0e78c..9d935e5c008a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4429,6 +4429,7 @@ enum { ALC269_FIXUP_QUANTA_MUTE, ALC269_FIXUP_LIFEBOOK, ALC269_FIXUP_LIFEBOOK_EXTMIC,
ALC269_FIXUP_FUJITSU_HP_PIN, ALC269_FIXUP_AMIC, ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC,
@@ -4585,6 +4586,13 @@ static const struct hda_fixup alc269_fixups[] = { { } }, },
[ALC269_FIXUP_FUJITSU_HP_PIN] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
{ 0x21, 0x0221102f }, /* HP out */
{ }
},
}, [ALC269_FIXUP_AMIC] = { .type = HDA_FIXUP_PINS, .v.pins = (const struct hda_pintbl[]) {
@@ -5105,6 +5113,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), SND_PCI_QUIRK(0x104d, 0x9099, "Sony VAIO S13", ALC275_FIXUP_SONY_DISABLE_AAMIX), SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook", ALC269_FIXUP_LIFEBOOK),
SND_PCI_QUIRK(0x10cf, 0x15dc, "Fujitsu",
ALC269_FIXUP_FUJITSU_HP_PIN), SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC), SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_BXBT2807_MIC),
I was testing a music player (Banshee) playing music, and I expected "Headphones" to control the audio output to my headphones.
If it is a BIOS pin configuration, then it is *probably* my fault, since I messed up my BIOS a few years ago.
The patch seems to work, assuming I reverted the change made to sound/pci/hda/hda_generic.c properly (git checkout sound/pci/hda/hda_generic.c) and applied the patch properly (git am SAVED_MBOX_FILE).
My laptop is a Fujitsu Lifebook T731. Unfortunately, the BIOS doesn't know that anymore.
I don't think I'm using dmix (I should be using pulseaudio, since a process is shown in ps aux | grep pulseaudio).
At Wed, 08 Apr 2015 12:34:04 -0400, Taylor Smock wrote:
On Wed, 2015-04-08 at 16:06 +0200, Takashi Iwai wrote:
At Wed, 08 Apr 2015 09:34:58 -0400, Taylor Smock wrote:
On Wed, 2015-04-08 at 10:22 +0200, Takashi Iwai wrote:
At Tue, 07 Apr 2015 21:07:06 -0400, Taylor Smock wrote:
Yes; reverting the patch does fix the problem.
What if you just adjust the new volume manually without reverting the patch? Run "alsamixer -c0" (or -c1, depending on the setup). Once after the setup, run "alsactl store" as root to save as the system default volume.
The renamed volume should have been set in full volume as default by the driver, and this shouldn't matter whether PA is new or old. If the mixer adjustment isn't kept after relogin or reboot, it means that some user-space stuff overrides it.
In anyway, please give alsa-info.sh output before and after the commit.
Takashi
On Wed, 2015-04-08 at 01:56 +0300, Dan Carpenter wrote:
So it's 03ad6a8c93b6df2 ('ALSA: hda - Fix "PCM" name being used on > one DAC when there are two DACs') which causes the problem? Have you tried to just revert that patch?
git show 03ad6a8c93b6df2d65c305b5b5f9474068b45bfb | patch - p1 -R
regards, dan carpenter
I ran alsamixer -c0. Headphones did nothing. Speaker+L0 did change headphone volume.
Please elaborate a bit what you're testing and what you expected. When you change "Headphone" volume and mute, it did nothing for which output? "Speaker+LO" changes which output and which not?
You seem to have three outputs, one headphone jack on a laptop and one on a docking station, and there is a built-in speaker. Since your codec has only two DACs, two of three must be tied.
The bad thing is that BIOS pin configuration doesn't set the headphone pin with the associate number 0x0f but only set it to the dock headphone. Thus the driver assumes that the dock jack is the right headphone and handles the laptop headphone as a sub output. The commit you spotted took this difference more severely, and now you see the unexpected mixer assignment.
So, the right "fix" would be rather to correct the pin config. For example, try the patch below.
(BTW, what is the product of your laptop model? A more exact name can be filled in the quirk string.)
PCM also seemed to affect headphone volume.
This is a mixer element added by alsa-lib softvol plugin, and it's not what the kernel manages.
Judging from the description that this PCM volume affects, you are playing without PulseAudio but dmix, I suppose?
Takashi
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 7b5c93e0e78c..9d935e5c008a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4429,6 +4429,7 @@ enum { ALC269_FIXUP_QUANTA_MUTE, ALC269_FIXUP_LIFEBOOK, ALC269_FIXUP_LIFEBOOK_EXTMIC,
ALC269_FIXUP_FUJITSU_HP_PIN, ALC269_FIXUP_AMIC, ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC,
@@ -4585,6 +4586,13 @@ static const struct hda_fixup alc269_fixups[] = { { } }, },
[ALC269_FIXUP_FUJITSU_HP_PIN] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
{ 0x21, 0x0221102f }, /* HP out */
{ }
},
}, [ALC269_FIXUP_AMIC] = { .type = HDA_FIXUP_PINS, .v.pins = (const struct hda_pintbl[]) {
@@ -5105,6 +5113,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), SND_PCI_QUIRK(0x104d, 0x9099, "Sony VAIO S13", ALC275_FIXUP_SONY_DISABLE_AAMIX), SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook", ALC269_FIXUP_LIFEBOOK),
SND_PCI_QUIRK(0x10cf, 0x15dc, "Fujitsu",
ALC269_FIXUP_FUJITSU_HP_PIN), SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC), SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_BXBT2807_MIC),
I was testing a music player (Banshee) playing music, and I expected "Headphones" to control the audio output to my headphones.
If it is a BIOS pin configuration, then it is *probably* my fault, since I messed up my BIOS a few years ago.
The patch seems to work, assuming I reverted the change made to sound/pci/hda/hda_generic.c properly (git checkout sound/pci/hda/hda_generic.c) and applied the patch properly (git am SAVED_MBOX_FILE).
My laptop is a Fujitsu Lifebook T731. Unfortunately, the BIOS doesn't know that anymore.
I don't think I'm using dmix (I should be using pulseaudio, since a process is shown in ps aux | grep pulseaudio).
OK, then now I applied the patch as a fix, marked with Cc to stable as below. The correction of pin config shouldn't do much harm even if new BIOS already fixed the value.
Takashi
-- 8< -- From: Takashi Iwai tiwai@suse.de Subject: [PATCH] ALSA: hda - Fix headphone pin config for Lifebook T731
Some BIOS version of Fujitsu Lifebook T731 seems to set up the headphone pin (0x21) without the assoc number 0x0f while it's set only to the output on the docking port (0x1a). With the recent commit [03ad6a8c93b6: ALSA: hda - Fix "PCM" name being used on one DAC when there are two DACs], this resulted in the weird mixer element mapping where the headphone on the laptop is assigned as a shared volume with the speaker and the docking port is assigned as an individual headphone.
This patch improves the situation by correcting the headphone pin config to the more appropriate value.
Reported-and-tested-by: Taylor Smock smocktaylor@gmail.com Cc: stable@vger.kernel.org Signed-off-by: Takashi Iwai tiwai@suse.de --- sound/pci/hda/patch_realtek.c | 9 +++++++++ 1 file changed, 9 insertions(+)
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index a07da0bbb2b4..f9d12c0a7e5a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4372,6 +4372,7 @@ enum { ALC269_FIXUP_QUANTA_MUTE, ALC269_FIXUP_LIFEBOOK, ALC269_FIXUP_LIFEBOOK_EXTMIC, + ALC269_FIXUP_LIFEBOOK_HP_PIN, ALC269_FIXUP_AMIC, ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC, @@ -4525,6 +4526,13 @@ static const struct hda_fixup alc269_fixups[] = { { } }, }, + [ALC269_FIXUP_LIFEBOOK_HP_PIN] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x21, 0x0221102f }, /* HP out */ + { } + }, + }, [ALC269_FIXUP_AMIC] = { .type = HDA_FIXUP_PINS, .v.pins = (const struct hda_pintbl[]) { @@ -5018,6 +5026,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ), SND_PCI_QUIRK(0x104d, 0x9099, "Sony VAIO S13", ALC275_FIXUP_SONY_DISABLE_AAMIX), SND_PCI_QUIRK(0x10cf, 0x1475, "Lifebook", ALC269_FIXUP_LIFEBOOK), + SND_PCI_QUIRK(0x10cf, 0x15dc, "Lifebook T731", ALC269_FIXUP_LIFEBOOK_HP_PIN), SND_PCI_QUIRK(0x10cf, 0x1845, "Lifebook U904", ALC269_FIXUP_LIFEBOOK_EXTMIC), SND_PCI_QUIRK(0x144d, 0xc109, "Samsung Ativ book 9 (NP900X3G)", ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x1458, 0xfa53, "Gigabyte BXBT-2807", ALC283_FIXUP_BXBT2807_MIC),
Taylor Smock wrote:
Yes; reverting the patch does fix the problem.
What if you just adjust the new volume manually without reverting the patch? Run "alsamixer -c0" (or -c1, depending on the setup). Once after the setup, run "alsactl store" as root to save as the system default volume.
The renamed volume should have been set in full volume as default by the driver, and this shouldn't matter whether PA is new or old. If the mixer adjustment isn't kept after relogin or reboot, it means that some user-space stuff overrides it.
In anyway, please give alsa-info.sh output before and after the commit.
Takashi
On Wed, 2015-04-08 at 01:56 +0300, Dan Carpenter wrote: > So it's 03ad6a8c93b6df2 ('ALSA: hda - Fix "PCM" name being > used > on > one > DAC when there are two DACs') which causes the problem? > Have > you > tried > to just revert that patch? > > git show 03ad6a8c93b6df2d65c305b5b5f9474068b45bfb | patch - > p1 -R > > regards, > dan carpenter >
I ran alsamixer -c0. Headphones did nothing. Speaker+L0 did change headphone volume.
Please elaborate a bit what you're testing and what you expected. When you change "Headphone" volume and mute, it did nothing for which output? "Speaker+LO" changes which output and which not?
You seem to have three outputs, one headphone jack on a laptop and one on a docking station, and there is a built-in speaker. Since your codec has only two DACs, two of three must be tied.
The bad thing is that BIOS pin configuration doesn't set the headphone pin with the associate number 0x0f but only set it to the dock headphone. Thus the driver assumes that the dock jack is the right headphone and handles the laptop headphone as a sub output. The commit you spotted took this difference more severely, and now you see the unexpected mixer assignment.
So, the right "fix" would be rather to correct the pin config. For example, try the patch below.
(BTW, what is the product of your laptop model? A more exact name can be filled in the quirk string.)
PCM also seemed to affect headphone volume.
This is a mixer element added by alsa-lib softvol plugin, and it's not what the kernel manages.
Judging from the description that this PCM volume affects, you are playing without PulseAudio but dmix, I suppose?
Takashi
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 7b5c93e0e78c..9d935e5c008a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4429,6 +4429,7 @@ enum { ALC269_FIXUP_QUANTA_MUTE, ALC269_FIXUP_LIFEBOOK, ALC269_FIXUP_LIFEBOOK_EXTMIC,
ALC269_FIXUP_FUJITSU_HP_PIN, ALC269_FIXUP_AMIC, ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC,
@@ -4585,6 +4586,13 @@ static const struct hda_fixup alc269_fixups[] = { { } }, },
[ALC269_FIXUP_FUJITSU_HP_PIN] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
{ 0x21, 0x0221102f }, /* HP out */
{ }
},
},
Do you mind explaining the logic of this pin fixup as driver also change max channels from 2 to 4 ?
The parser put one headphone in the line_outs before your patch but type is still line
autoconfig for ALC269VB: line_outs=1 (0x21/0x0/0x0/0x0/0x0) type:line speaker_outs=1 (0x14/0x0/0x0/0x0/0x0) hp_outs=1 (0x1a/0x0/0x0/0x0/0x0) mono: mono_out=0x0 inputs: Internal Mic=0x12 Mic=0x18
the headphone and dock headphone was put in the hp_outsafter your patch
autoconfig for ALC269VB: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) hp_outs=2 (0x1a/0x21/0x0/0x0/0x0) mono: mono_out=0x0 inputs: Internal Mic=0x12 Mic=0x18
Do the driver need to distinguish between
notebook with headphone and Dock headphone notebook with dual headphone jacks
At Thu, 9 Apr 2015 09:34:05 +0800, Raymond Yau wrote:
Taylor Smock wrote: > > Yes; reverting the patch does fix the problem.
What if you just adjust the new volume manually without reverting the patch? Run "alsamixer -c0" (or -c1, depending on the setup). Once after the setup, run "alsactl store" as root to save as the system default volume.
The renamed volume should have been set in full volume as default by the driver, and this shouldn't matter whether PA is new or old. If the mixer adjustment isn't kept after relogin or reboot, it means that some user-space stuff overrides it.
In anyway, please give alsa-info.sh output before and after the commit.
Takashi
> On Wed, 2015-04-08 at 01:56 +0300, Dan Carpenter wrote: > > So it's 03ad6a8c93b6df2 ('ALSA: hda - Fix "PCM" name being > > used > > on > one > > DAC when there are two DACs') which causes the problem? > > Have > > you > > tried > > to just revert that patch? > > > > git show 03ad6a8c93b6df2d65c305b5b5f9474068b45bfb | patch - > > p1 -R > > > > regards, > > dan carpenter > > >
I ran alsamixer -c0. Headphones did nothing. Speaker+L0 did change headphone volume.
Please elaborate a bit what you're testing and what you expected. When you change "Headphone" volume and mute, it did nothing for which output? "Speaker+LO" changes which output and which not?
You seem to have three outputs, one headphone jack on a laptop and one on a docking station, and there is a built-in speaker. Since your codec has only two DACs, two of three must be tied.
The bad thing is that BIOS pin configuration doesn't set the headphone pin with the associate number 0x0f but only set it to the dock headphone. Thus the driver assumes that the dock jack is the right headphone and handles the laptop headphone as a sub output. The commit you spotted took this difference more severely, and now you see the unexpected mixer assignment.
So, the right "fix" would be rather to correct the pin config. For example, try the patch below.
(BTW, what is the product of your laptop model? A more exact name can be filled in the quirk string.)
PCM also seemed to affect headphone volume.
This is a mixer element added by alsa-lib softvol plugin, and it's not what the kernel manages.
Judging from the description that this PCM volume affects, you are playing without PulseAudio but dmix, I suppose?
Takashi
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 7b5c93e0e78c..9d935e5c008a 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4429,6 +4429,7 @@ enum { ALC269_FIXUP_QUANTA_MUTE, ALC269_FIXUP_LIFEBOOK, ALC269_FIXUP_LIFEBOOK_EXTMIC,
ALC269_FIXUP_FUJITSU_HP_PIN, ALC269_FIXUP_AMIC, ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC,
@@ -4585,6 +4586,13 @@ static const struct hda_fixup alc269_fixups[] = { { } }, },
[ALC269_FIXUP_FUJITSU_HP_PIN] = {
.type = HDA_FIXUP_PINS,
.v.pins = (const struct hda_pintbl[]) {
{ 0x21, 0x0221102f }, /* HP out */
{ }
},
},
Do you mind explaining the logic of this pin fixup as driver also change max channels from 2 to 4 ?
The parser put one headphone in the line_outs before your patch but type is still line
autoconfig for ALC269VB: line_outs=1 (0x21/0x0/0x0/0x0/0x0) type:line speaker_outs=1 (0x14/0x0/0x0/0x0/0x0) hp_outs=1 (0x1a/0x0/0x0/0x0/0x0) mono: mono_out=0x0 inputs: Internal Mic=0x12 Mic=0x18
the headphone and dock headphone was put in the hp_outsafter your patch
autoconfig for ALC269VB: line_outs=1 (0x14/0x0/0x0/0x0/0x0) type:speaker speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) hp_outs=2 (0x1a/0x21/0x0/0x0/0x0) mono: mono_out=0x0 inputs: Internal Mic=0x12 Mic=0x18
Do the driver need to distinguish between
notebook with headphone and Dock headphone notebook with dual headphone jacks
The former is handled when the dock headphone is a kind of line-out. Now we handle this laptop as the latter, which fits better in the case of two DACs.
Takashi
So it's 03ad6a8c93b6df2 ('ALSA: hda - Fix "PCM" name being used on one DAC when there are two DACs') which causes the problem? Have you tried to just revert that patch?
git show 03ad6a8c93b6df2d65c305b5b5f9474068b45bfb | patch -p1 -R
Please provide output of alsa-info.sh
This patch only change the name of control, you will also need pulseaudio patch if you are using pulseaudio
http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/modules/alsa/mi...
Are you using a laptop with two DACs , 2.1 speakers and headphone ?
On Wed, Apr 08, 2015 at 09:57:13AM +0800, Raymond Yau wrote:
This patch only change the name of control, you will also need pulseaudio patch if you are using pulseaudio
http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/modules/alsa/mi...
Ugh... You are going to make Linus start cursing.
https://lkml.org/lkml/2012/12/23/75
regards, dan carpenter
This patch only change the name of control, you will also need
pulseaudio
patch if you are using pulseaudio
http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/modules/alsa/mi...
Ugh... You are going to make Linus start cursing.
The patch does not only affect codecs with two DAC , using hda-emu
it also affect several codecs
cmi9880-lg-lw60 idt92hd73c1x5-alienware-m17x stac9200-dell-precision-490 stac9228-dell-xps-m1330
Rename "PCM playback volume" control also force the system to create softvol "PCM playback volume" when application use front or sysdefault device
I don't understand what you are saying. Are you trying to justify breaking userspace somehow?
WE DON:T BREAK USERSPACE!!11! etc etc.
regards, dan carpenter
I don't understand what you are saying. Are you trying to justify breaking userspace somehow?
WE DON:T BREAK USERSPACE!!11! etc etc.
regards, dan carpenter
+ case AUTO_PIN_LINE_OUT: + /* This deals with the case where we have two DACs and + * one LO, one HP and one Speaker */ + if (!ch && cfg->speaker_outs && cfg->hp_outs) {
The patch did not check one LO and two DACs
cfg->line_outs == 1
participants (4)
-
Dan Carpenter
-
Raymond Yau
-
Takashi Iwai
-
Taylor Smock