Ubuntu

[haswell sony vaio pro] Internal microphone not working

Reported by Toufik on 2013-09-18
70
This bug affects 10 people
Affects Status Importance Assigned to Milestone
Linux
New
Undecided
Mirko
linux (Ubuntu)
Medium
David Henningsson

Bug Description

The internal microphone is not working on a new sony vaio pro with ubuntu 13.10 kernel. I've also tried latest mainline kernel v3.11-rc7. FYI, this laptop does not boot pre-saucy kernels.

ProblemType: Bug
DistroRelease: Ubuntu 13.10
Package: linux-image-3.11.0-7-generic 3.11.0-7.14
ProcVersionSignature: Ubuntu 3.11.0-7.14-generic 3.11.1
Uname: Linux 3.11.0-7-generic x86_64
ApportVersion: 2.12.1-0ubuntu4
Architecture: amd64
AudioDevicesInUse:
 USER PID ACCESS COMMAND
 /dev/snd/controlC0: francois 1951 F.... pulseaudio
 /dev/snd/controlC1: francois 1951 F.... pulseaudio
Date: Wed Sep 18 14:00:59 2013
HibernationDevice: RESUME=UUID=336e37fb-47a2-406c-ad64-630659d38f70
InstallationDate: Installed on 2013-07-30 (49 days ago)
InstallationMedia: Ubuntu 13.10 "Saucy Salamander" - Alpha amd64 (20130729)
MachineType: Sony Corporation SVP1321C5E
MarkForUpload: True
ProcFB: 0 inteldrmfb
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-3.11.0-7-generic root=UUID=fe28f457-7a8a-4185-866b-115aded2e40c ro quiet splash vt.handoff=7
RelatedPackageVersions:
 linux-restricted-modules-3.11.0-7-generic N/A
 linux-backports-modules-3.11.0-7-generic N/A
 linux-firmware 1.114
SourcePackage: linux
UpgradeStatus: No upgrade log present (probably fresh install)
dmi.bios.date: 05/17/2013
dmi.bios.vendor: American Megatrends Inc.
dmi.bios.version: R0270V7
dmi.board.asset.tag: N/A
dmi.board.name: VAIO
dmi.board.vendor: Sony Corporation
dmi.board.version: N/A
dmi.chassis.asset.tag: N/A
dmi.chassis.type: 10
dmi.chassis.vendor: Sony Corporation
dmi.chassis.version: N/A
dmi.modalias: dmi:bvnAmericanMegatrendsInc.:bvrR0270V7:bd05/17/2013:svnSonyCorporation:pnSVP1321C5E:pvrC60C1VKQ:rvnSonyCorporation:rnVAIO:rvrN/A:cvnSonyCorporation:ct10:cvrN/A:
dmi.product.name: SVP1321C5E
dmi.product.version: C60C1VKQ
dmi.sys.vendor: Sony Corporation

Toufik (toufik2) wrote :

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed

Would it be possible for you to test the latest upstream kernel? Refer to https://wiki.ubuntu.com/KernelMainlineBuilds . Please test the latest v3.12 kernel[0].

If this bug is fixed in the mainline kernel, please add the following tag 'kernel-fixed-upstream'.

If the mainline kernel does not fix this bug, please add the tag: 'kernel-bug-exists-upstream'.

If you are unable to test the mainline kernel, for example it will not boot, please add the tag: 'kernel-unable-to-test-upstream'.
Once testing of the upstream kernel is complete, please mark this bug as "Confirmed".

Thanks in advance.

[0] http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.12-rc1-saucy/

Changed in linux (Ubuntu):
importance: Undecided → Medium
status: Confirmed → Incomplete
Toufik (toufik2) wrote :

Tested and confirmed with latest upstream kernel v3.12-rc1-saucy

tags: added: kernel-bug-exists-upstream
Changed in linux (Ubuntu):
status: Incomplete → Confirmed
Aaron Sutton (aaron-8) wrote :

Also tested and confirmed with upstream kernel v3.12-rc2-saucy

Joseph Salisbury (jsalisbury) wrote :

This issue appears to be an upstream bug, since you tested the latest upstream kernel. Would it be possible for you to open an upstream bug report[0]? That will allow the upstream Developers to examine the issue, and may provide a quicker resolution to the bug.

Please follow the instructions on the wiki page[0]. The first step is to email the appropriate mailing list. If no response is received, then a bug may be opened on bugzilla.kernel.org.

Once this bug is reported upstream, please add the tag: 'kernel-bug-reported-upstream'.

[0] https://wiki.ubuntu.com/Bugs/Upstream/kernel

Changed in linux (Ubuntu):
status: Confirmed → Triaged
Aaron Sutton (aaron-8) wrote :

Hi,
I've attempted to follow the correct format and have submitted a bug report to the kernel sound maintainer. Also, I've changed the the tag to include 'kernel-bug-reported-upstream'. Hope I did everything correctly as I've never submitted an upstream bug report before.

tags: added: kernel-bug-reported-upstream
Raymond (superquad-vortex2) wrote :

does your Sony Vaio support headset instead of headphone ?

are you using the headset provided by sony ?

there are two type of headsets :CTIA and OMTP using TRRS connector

if the mic Jack detection control is always true even when Mic is not plugged

control.14 {
  iface CARD
  name 'Mic Jack'
  value true
  comment {
   access read
   type BOOLEAN
   count 1
  }
 }

you need to use hda-jack-retask to set misc bit to disable Mic Jack detection of node 0x18 and change the capture source to internal mic

summary: - Internal microphone not working
+ [sony vaio pro] Internal microphone not working
affects: linux (Ubuntu) → alsa-driver (Ubuntu)
affects: alsa-driver (Ubuntu) → linux (Ubuntu)
David Henningsson (diwic) wrote :

Ok, so let's see if we can fix this bug for everyone.

I'm attaching a DKMS package here with the patch I posted in the previous comment. To test, first make sure you don't have any hda-jack-retask override installed (i e if you did what's mentioned in the previous comments, revert it), then download and install the DKMS package. Reboot and test.

Expected behaviour:
 - When there is nothing plugged in, speakers and internal mic should work.
 - Whenever something (headphone or headset) is plugged in, output should switch to headphones and automute the speakers, but you have to manually select internal mic or headset mic in Gnome's sound preferences (or pavucontrol).

This is because the system cannot automatically distinguish between headphones and headsets.

Could some of you test this and report back whether all four (speakers, headphones, internal mic, headset mic) now works as normal, or if there is some trouble? Report whether you have a CTIA or OMTP style headset (if you know).

If there's a problem, please also attach an alsa-info ( https://wiki.ubuntu.com/Audio/AlsaInfo ), preferrably taken when you're in the situation that shows the bug.

Thanks!

Changed in linux (Ubuntu):
status: Triaged → Incomplete
assignee: nobody → David Henningsson (diwic)
summary: - [sony vaio pro] Internal microphone not working
+ [haswell sony vaio pro] Internal microphone not working
Toufik (toufik2) wrote :

Thanks for the patch and the deb David.

Tested with a internal mic (I don't have a headset to test): it works! (I can "see" my voice in gnome settings) Also tried skype test call and I can hear me back! Thanks!

FYI, to install the deb, you need first to remove the 3.12** kernels and use the official saucy kernel 3.11**

David Henningsson (diwic) wrote :

Thanks for the response - anyone with a CTIA headset that can give this a try?

tags: added: patch

On 10/07/2013 05:21 AM, David Henningsson wrote:
> Ok, so let's see if we can fix this bug for everyone.

Thanks for the patch. Works better than before but not there yet.

> Expected behaviour:
> - When there is nothing plugged in, speakers and internal mic should work.

PERFECT!

> - Whenever something (headphone or headset) is plugged in, output should switch to headphones and automute the speakers, but you have to manually select internal mic or headset mic in Gnome's sound preferences (or pavucontrol).

headphone: works as expected.

headset: I see the option to select Headset Microphone in pavucontrol,
however selecting headset microphone yield silence and not the recording
of the headset.

I suspect my headset is OMTP. It is branded Nokia, came with a cheap
pre-paid phone 2-3 years ago. Works with my Chinese imported no-name
Android phone and works with the SONY Vaio Pro 13 in Windows. No luck in
Linux yet.

> If there's a problem, please also attach an alsa-info (
> https://wiki.ubuntu.com/Audio/AlsaInfo ), preferrably taken when you're
> in the situation that shows the bug.

<http://www.alsa-project.org/db/?f=114cc1d47897e5163a9a7c073eb31c3ab4846e4d

with headset connected and input set to Headset Microphone.

> Thanks!

It is you who deserve our gratitude and credit for making our hardware
more useful!

 status new

Changed in linux (Ubuntu):
status: Incomplete → New

P.S.:

to install the deb I did

sudo apt-get install dkms
sudo dpkg -i oem-audio-hda-daily-dkms_0.1_all.deb

Will the following command be good enough to revert back once the distro
packages are fixed?

sudo dpkg -p oem-audio-hda-daily-dkms_0.1_all.deb

This change was made by a bot.

Changed in linux (Ubuntu):
status: New → Confirmed

On 10/07/2013 05:24 PM, Yuv wrote:
> P.S.:
>
> to install the deb I did
>
> sudo apt-get install dkms
> sudo dpkg -i oem-audio-hda-daily-dkms_0.1_all.deb
>
> Will the following command be good enough to revert back once the distro
> packages are fixed?
>
> sudo dpkg -p oem-audio-hda-daily-dkms_0.1_all.deb

I always use "sudo apt-get remove oem-audio-hda-daily-dkms", but I think
your suggestion works too.

--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

On 10/07/2013 05:19 PM, Yuv wrote:
> On 10/07/2013 05:21 AM, David Henningsson wrote:
>> - Whenever something (headphone or headset) is plugged in, output
> should switch to headphones and automute the speakers, but you have to
> manually select internal mic or headset mic in Gnome's sound preferences
> (or pavucontrol).
>
> headphone: works as expected.
>
> headset: I see the option to select Headset Microphone in pavucontrol,
> however selecting headset microphone yield silence and not the recording
> of the headset.
>
> I suspect my headset is OMTP. It is branded Nokia, came with a cheap
> pre-paid phone 2-3 years ago. Works with my Chinese imported no-name
> Android phone and works with the SONY Vaio Pro 13 in Windows. No luck in
> Linux yet.

When you try it in Windows, does it automatically distinguish between a
headphone and headset, or is there some sort of "what did you plugin"
dialog where you choose manually?

One more thing to try w r t the headset mic. In my ppa there is a
package called snd-hda-tools. Install that package and then, with your
headset mic plugged in, try executing this command:

sudo hda-verb /dev/snd/hwC1D0 0x18 SET_PIN_WIDGET_CONTROL 0x22

...does that give a difference w r t the headset mic? If it does not,
also try:

sudo hda-verb /dev/snd/hwC1D0 0x18 SET_PIN_WIDGET_CONTROL 0x21

...and see if it gives a difference.

The last number translates as follows:
0x20 - Hi Z
0x21 - 50%
0x22 - Ground
0x24 - 80%
0x25 - 100%

Where 80% is the default, and 50% is common too, but as Raymond noticed
some VAIOs use ground as vref. HiZ is used for line (not mic) inputs and
100% I've never seen anywhere.

--
David Henningsson, Canonical Ltd.
https://launchpad.net/~diwic

Yuv (yuv) wrote :

On 10/08/2013 05:21 AM, David Henningsson wrote:
> When you try it in Windows, does it automatically distinguish between a
> headphone and headset, or is there some sort of "what did you plugin"
> dialog where you choose manually?

I have never used the headphone in Windows. It seems to recognize the
headset automatically, but I have to manually switch which microphone
(internal or headset) to use in some obscure hidden area of the control
panel. I find Windows generally irritating, but if you want me to do
some diagnostic there, let me know and I'll find a moment to reboot and
to inflict the pain on my notebook (which runs much quieter and cooler
in Xubuntu).

> One more thing to try w r t the headset mic. In my ppa there is a
> package called snd-hda-tools. Install that package and then, with your

Thank you for updating your PPA to support Saucy.

  sudo add-apt-repository ppa:diwic/hda
  sudo apt-get update
  sudo apt-get install snd-hda-tools

> headset mic plugged in, try executing this command:
>
> sudo hda-verb /dev/snd/hwC1D0 0x18 SET_PIN_WIDGET_CONTROL 0x22

Tried all the range:

> 0x20 - Hi Z
> 0x21 - 50%

Did not notice any difference between those two settings. I had to pull
up the pavucontrol sliders to 120% to see some noise in the indicator
bar. I could not hear my voice, not even when screaming at the
microphone, but I could hear my tapping on the microphone.

> 0x22 - Ground
> 0x24 - 80%
> 0x25 - 100%

Silence/noise.

David Henningsson (diwic) wrote :

Ok, so the headset mic is still a mystery then, but at least we got internal mic working, which is better than previously. I'll upstream my patch as it is and hope that someone else can figure out more stuff about the headset mic later.

Signed-off-by: David Henningsson <email address hidden>
---
 Documentation/sound/alsa/HD-Audio-Models.txt | 1 +
 sound/pci/hda/patch_realtek.c | 15 +++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt
index f911e36..ba143cd 100644
--- a/Documentation/sound/alsa/HD-Audio-Models.txt
+++ b/Documentation/sound/alsa/HD-Audio-Models.txt
@@ -28,6 +28,7 @@ ALC269/270/275/276/28x/29x
   alc269-dmic Enable ALC269(VA) digital mic workaround
   alc271-dmic Enable ALC271X digital mic workaround
   inv-dmic Inverted internal mic workaround
+ headset-mic Indicates a combined headset (mic+headphone jack)
   lenovo-dock Enables docking station I/O for some Lenovos
   dell-headset-multi Headset jack, which can also be used as mic-in
   dell-headset-dock Headset jack (without mic-in), and also dock I/O
diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index ed9deb6..8cb3350 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -2819,6 +2819,15 @@ static void alc269_fixup_hweq(struct hda_codec *codec,
  alc_write_coef_idx(codec, 0x1e, coef | 0x80);
 }

+static void alc269_fixup_headset_mic(struct hda_codec *codec,
+ const struct hda_fixup *fix, int action)
+{
+ struct alc_spec *spec = codec->spec;
+
+ if (action == HDA_FIXUP_ACT_PRE_PROBE)
+ spec->parse_flags |= HDA_PINCFG_HEADSET_MIC;
+}
+
 static void alc271_fixup_dmic(struct hda_codec *codec,
          const struct hda_fixup *fix, int action)
 {
@@ -3516,6 +3525,7 @@ enum {
  ALC271_FIXUP_DMIC,
  ALC269_FIXUP_PCM_44K,
  ALC269_FIXUP_STEREO_DMIC,
+ ALC269_FIXUP_HEADSET_MIC,
  ALC269_FIXUP_QUANTA_MUTE,
  ALC269_FIXUP_LIFEBOOK,
  ALC269_FIXUP_AMIC,
@@ -3614,6 +3624,10 @@ static const struct hda_fixup alc269_fixups[] = {
   .type = HDA_FIXUP_FUNC,
   .v.func = alc269_fixup_stereo_dmic,
  },
+ [ALC269_FIXUP_HEADSET_MIC] = {
+ .type = HDA_FIXUP_FUNC,
+ .v.func = alc269_fixup_headset_mic,
+ },
  [ALC269_FIXUP_QUANTA_MUTE] = {
   .type = HDA_FIXUP_FUNC,
   .v.func = alc269_fixup_quanta_mute,
@@ -3979,6 +3993,7 @@ static const struct hda_model_fixup alc269_fixup_models[] = {
  {.id = ALC269_FIXUP_STEREO_DMIC, .name = "alc269-dmic"},
  {.id = ALC271_FIXUP_DMIC, .name = "alc271-dmic"},
  {.id = ALC269_FIXUP_INV_DMIC, .name = "inv-dmic"},
+ {.id = ALC269_FIXUP_HEADSET_MIC, .name = "headset-mic"},
  {.id = ALC269_FIXUP_LENOVO_DOCK, .name = "lenovo-dock"},
  {.id = ALC269_FIXUP_HP_GPIO_LED, .name = "hp-gpio-led"},
  {.id = ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, .name = "dell-headset-multi"},
--
1.7.9.5

The external mic showed up with a precense detect of "always present",
essentially disabling the internal mic. Therefore turn off presence
detection for this pin.

Note: The external mic seems not yet working, but an internal mic is
certainly better than no mic at all.

Cc: <email address hidden>
BugLink: https://bugs.launchpad.net/bugs/1227093
Signed-off-by: David Henningsson <email address hidden>
---
 sound/pci/hda/patch_realtek.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

Note: when doing stable backports, the two lines ".chained = true" and
".chain_id = ALC269_FIXUP_HEADSET_MIC" can be dropped.

diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
index 8cb3350..ec47681 100644
--- a/sound/pci/hda/patch_realtek.c
+++ b/sound/pci/hda/patch_realtek.c
@@ -3556,6 +3556,7 @@ enum {
  ALC282_FIXUP_ASUS_TX300,
  ALC283_FIXUP_INT_MIC,
  ALC290_FIXUP_MONO_SPEAKERS,
+ ALC286_FIXUP_SONY_MIC_NO_PRESENCE,
 };

 static const struct hda_fixup alc269_fixups[] = {
@@ -3844,6 +3845,15 @@ static const struct hda_fixup alc269_fixups[] = {
   .chained = true,
   .chain_id = ALC269_FIXUP_DELL3_MIC_NO_PRESENCE,
  },
+ [ALC286_FIXUP_SONY_MIC_NO_PRESENCE] = {
+ .type = HDA_FIXUP_PINS,
+ .v.pins = (const struct hda_pintbl[]) {
+ { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
+ { }
+ },
+ .chained = true,
+ .chain_id = ALC269_FIXUP_HEADSET_MIC,
+ },
 };

 static const struct snd_pci_quirk alc269_fixup_tbl[] = {
@@ -3908,6 +3918,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
  SND_PCI_QUIRK(0x1043, 0x8398, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
  SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
  SND_PCI_QUIRK(0x1043, 0x8516, "ASUS X101CH", ALC269_FIXUP_ASUS_X101),
+ SND_PCI_QUIRK(0x104d, 0x90b6, "Sony VAIO Pro 13", ALC286_FIXUP_SONY_MIC_NO_PRESENCE),
  SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2),
  SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
  SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
--
1.7.9.5

Takashi Iwai (tiwai) wrote :

At Thu, 10 Oct 2013 12:19:24 +0200,
David Henningsson wrote:
>
> The external mic showed up with a precense detect of "always present",
> essentially disabling the internal mic. Therefore turn off presence
> detection for this pin.
>
> Note: The external mic seems not yet working, but an internal mic is
> certainly better than no mic at all.
>
> Cc: <email address hidden>
> BugLink: https://bugs.launchpad.net/bugs/1227093
> Signed-off-by: David Henningsson <email address hidden>
> ---
> sound/pci/hda/patch_realtek.c | 11 +++++++++++
> 1 file changed, 11 insertions(+)
>
> Note: when doing stable backports, the two lines ".chained = true" and
> ".chain_id = ALC269_FIXUP_HEADSET_MIC" can be dropped.

Then better to split the patch to two, one just for disabling the dead
ext mic pin, and another for adding the headset mic chain. The former
can go to stable while the latter goes to next together with the
previous ALC269_FIXUP_HEADSET_MIC patch.

If adding a new fixup entry for stable, put to somewhere in the middle
so that git cherry-pick would work. Appending to the tail is
problematic because of a few previous fixups aren't merged to stable,
thus the new entry cannot be applied cleanly.

thanks,

Takashi

>
> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> index 8cb3350..ec47681 100644
> --- a/sound/pci/hda/patch_realtek.c
> +++ b/sound/pci/hda/patch_realtek.c
> @@ -3556,6 +3556,7 @@ enum {
> ALC282_FIXUP_ASUS_TX300,
> ALC283_FIXUP_INT_MIC,
> ALC290_FIXUP_MONO_SPEAKERS,
> + ALC286_FIXUP_SONY_MIC_NO_PRESENCE,
> };
>
> static const struct hda_fixup alc269_fixups[] = {
> @@ -3844,6 +3845,15 @@ static const struct hda_fixup alc269_fixups[] = {
> .chained = true,
> .chain_id = ALC269_FIXUP_DELL3_MIC_NO_PRESENCE,
> },
> + [ALC286_FIXUP_SONY_MIC_NO_PRESENCE] = {
> + .type = HDA_FIXUP_PINS,
> + .v.pins = (const struct hda_pintbl[]) {
> + { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
> + { }
> + },
> + .chained = true,
> + .chain_id = ALC269_FIXUP_HEADSET_MIC,
> + },
> };
>
> static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> @@ -3908,6 +3918,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> SND_PCI_QUIRK(0x1043, 0x8398, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
> SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
> SND_PCI_QUIRK(0x1043, 0x8516, "ASUS X101CH", ALC269_FIXUP_ASUS_X101),
> + SND_PCI_QUIRK(0x104d, 0x90b6, "Sony VAIO Pro 13", ALC286_FIXUP_SONY_MIC_NO_PRESENCE),
> SND_PCI_QUIRK(0x104d, 0x9073, "Sony VAIO", ALC275_FIXUP_SONY_VAIO_GPIO2),
> SND_PCI_QUIRK(0x104d, 0x907b, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
> SND_PCI_QUIRK(0x104d, 0x9084, "Sony VAIO", ALC275_FIXUP_SONY_HWEQ),
> --
> 1.7.9.5
>

David Henningsson (diwic) wrote :
Download full text (3.5 KiB)

On 10/10/2013 01:18 PM, Takashi Iwai wrote:
> At Thu, 10 Oct 2013 12:19:24 +0200,
> David Henningsson wrote:
>>
>> The external mic showed up with a precense detect of "always present",
>> essentially disabling the internal mic. Therefore turn off presence
>> detection for this pin.
>>
>> Note: The external mic seems not yet working, but an internal mic is
>> certainly better than no mic at all.
>>
>> Cc: <email address hidden>
>> BugLink: https://bugs.launchpad.net/bugs/1227093
>> Signed-off-by: David Henningsson <email address hidden>
>> ---
>> sound/pci/hda/patch_realtek.c | 11 +++++++++++
>> 1 file changed, 11 insertions(+)
>>
>> Note: when doing stable backports, the two lines ".chained = true" and
>> ".chain_id = ALC269_FIXUP_HEADSET_MIC" can be dropped.
>
> Then better to split the patch to two, one just for disabling the dead
> ext mic pin, and another for adding the headset mic chain. The former
> can go to stable while the latter goes to next together with the
> previous ALC269_FIXUP_HEADSET_MIC patch.

The problem here is somewhat lack of testers. We have only one person
with a headset (with alias Yuv) and that person reports that it does not
work. However, the problem might be with that person's headset so I
probably don't want to completely disable it, just remove its jack
detection. Especially as this would go to stable too.

But ok, I can make three patches, one for headset mic model, one for
sony, and a third that adds the connection between them.

> If adding a new fixup entry for stable, put to somewhere in the middle
> so that git cherry-pick would work. Appending to the tail is
> problematic because of a few previous fixups aren't merged to stable,
> thus the new entry cannot be applied cleanly.

Hmm, but maybe middle will have same problem if we end up changing the
policy. Maybe random position will be better? Or put all stable first
and all non-stable last?

>
>
> thanks,
>
> Takashi
>
>>
>> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
>> index 8cb3350..ec47681 100644
>> --- a/sound/pci/hda/patch_realtek.c
>> +++ b/sound/pci/hda/patch_realtek.c
>> @@ -3556,6 +3556,7 @@ enum {
>> ALC282_FIXUP_ASUS_TX300,
>> ALC283_FIXUP_INT_MIC,
>> ALC290_FIXUP_MONO_SPEAKERS,
>> + ALC286_FIXUP_SONY_MIC_NO_PRESENCE,
>> };
>>
>> static const struct hda_fixup alc269_fixups[] = {
>> @@ -3844,6 +3845,15 @@ static const struct hda_fixup alc269_fixups[] = {
>> .chained = true,
>> .chain_id = ALC269_FIXUP_DELL3_MIC_NO_PRESENCE,
>> },
>> + [ALC286_FIXUP_SONY_MIC_NO_PRESENCE] = {
>> + .type = HDA_FIXUP_PINS,
>> + .v.pins = (const struct hda_pintbl[]) {
>> + { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
>> + { }
>> + },
>> + .chained = true,
>> + .chain_id = ALC269_FIXUP_HEADSET_MIC,
>> + },
>> };
>>
>> static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>> @@ -3908,6 +3918,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
>> SND_PCI_QUIRK(0x1043, 0x8398, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
>> SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS P1005", ALC269_FIXUP_STEREO_DMIC),
>> SND_PCI_QUIRK(0x1043, 0x8516, "ASUS X101CH", ...

Read more...

Takashi Iwai (tiwai) wrote :
Download full text (3.9 KiB)

At Thu, 10 Oct 2013 15:26:03 +0200,
David Henningsson wrote:
>
> On 10/10/2013 01:18 PM, Takashi Iwai wrote:
> > At Thu, 10 Oct 2013 12:19:24 +0200,
> > David Henningsson wrote:
> >>
> >> The external mic showed up with a precense detect of "always present",
> >> essentially disabling the internal mic. Therefore turn off presence
> >> detection for this pin.
> >>
> >> Note: The external mic seems not yet working, but an internal mic is
> >> certainly better than no mic at all.
> >>
> >> Cc: <email address hidden>
> >> BugLink: https://bugs.launchpad.net/bugs/1227093
> >> Signed-off-by: David Henningsson <email address hidden>
> >> ---
> >> sound/pci/hda/patch_realtek.c | 11 +++++++++++
> >> 1 file changed, 11 insertions(+)
> >>
> >> Note: when doing stable backports, the two lines ".chained = true" and
> >> ".chain_id = ALC269_FIXUP_HEADSET_MIC" can be dropped.
> >
> > Then better to split the patch to two, one just for disabling the dead
> > ext mic pin, and another for adding the headset mic chain. The former
> > can go to stable while the latter goes to next together with the
> > previous ALC269_FIXUP_HEADSET_MIC patch.
>
> The problem here is somewhat lack of testers. We have only one person
> with a headset (with alias Yuv) and that person reports that it does not
> work. However, the problem might be with that person's headset so I
> probably don't want to completely disable it, just remove its jack
> detection. Especially as this would go to stable too.
>
> But ok, I can make three patches, one for headset mic model, one for
> sony, and a third that adds the connection between them.
>
> > If adding a new fixup entry for stable, put to somewhere in the middle
> > so that git cherry-pick would work. Appending to the tail is
> > problematic because of a few previous fixups aren't merged to stable,
> > thus the new entry cannot be applied cleanly.
>
> Hmm, but maybe middle will have same problem if we end up changing the
> policy. Maybe random position will be better? Or put all stable first
> and all non-stable last?

Just try at leat to be applicable to 3.11.y :)

Takashi

>
> >
> >
> > thanks,
> >
> > Takashi
> >
> >>
> >> diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
> >> index 8cb3350..ec47681 100644
> >> --- a/sound/pci/hda/patch_realtek.c
> >> +++ b/sound/pci/hda/patch_realtek.c
> >> @@ -3556,6 +3556,7 @@ enum {
> >> ALC282_FIXUP_ASUS_TX300,
> >> ALC283_FIXUP_INT_MIC,
> >> ALC290_FIXUP_MONO_SPEAKERS,
> >> + ALC286_FIXUP_SONY_MIC_NO_PRESENCE,
> >> };
> >>
> >> static const struct hda_fixup alc269_fixups[] = {
> >> @@ -3844,6 +3845,15 @@ static const struct hda_fixup alc269_fixups[] = {
> >> .chained = true,
> >> .chain_id = ALC269_FIXUP_DELL3_MIC_NO_PRESENCE,
> >> },
> >> + [ALC286_FIXUP_SONY_MIC_NO_PRESENCE] = {
> >> + .type = HDA_FIXUP_PINS,
> >> + .v.pins = (const struct hda_pintbl[]) {
> >> + { 0x18, 0x01a1913c }, /* use as headset mic, without its own jack detect */
> >> + { }
> >> + },
> >> + .chained = true,
> >> + .chain_id = ALC269_FIXUP_HEADSET_MIC,
> >> + },
> >> };
> >>
> >> static const struct snd_pci_quirk alc269_fixup_tbl[] = {
> >...

Read more...

On 10/10/2013 09:26 AM, David Henningsson wrote:
> The problem here is somewhat lack of testers. We have only one person
> with a headset (with alias Yuv) and that person reports that it does not
> work. However, the problem might be with that person's headset so I
> probably don't want to completely disable it, just remove its jack
> detection. Especially as this would go to stable too.

I doubt that the problem is with my headset because its mic works in
Windows. If you can wait three weeks, I will be going home for a week
after exams and I have a couple of other headsets there to test.

Yuv (real name, not an alias)

David Henningsson (diwic) wrote :

Ok, so the mic patch was just merged with cc to 3.11 stable, so it's likely to be fixed in an SRU or two (should show up by a robot comment in this bug when it happens). Until then, you can use https://wiki.ubuntu.com/Audio/UpgradingAlsa/DKMS (starting tomorrow probably, as it needs to go through a few systems first).

As for the headset mic, I have no further ideas at the moment. If someone has a CTIA headset nearby, it would be worth testing that.

Changed in linux (Ubuntu):
status: Confirmed → Fix Committed
Toufik (toufik2) wrote :

I've just realised I do have a headset :) The handsfree headset from my mobile! How can I tell if it's CTIA or OMTP?

It shows up in the sound settings as "Headset Microphone" and it works!

Raymond (superquad-vortex2) wrote :

refer to the specification

are the internal Mic stereo (left and right mics)?

and your headset Mic is mono

can you verify this by recording stereo with audacity ?

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
Changed in linux (Ubuntu):
status: Fix Released → Fix Committed
Yuv (yuv) wrote :

OK, I am back home and can test a bit more. Unfortunately my other headsets are all 2.5mm and do not fit into the SONY Vaio Pro's 3.5mm jack. Nevertheless, I am pretty confident that the headset I tested with is fully functional because it works with both the SONY Vaio Pro (when booted to Windows) and with my cellphone. Maybe something is misconfigured on my end, which I could find out with a live USB key. I am waiting for the SRU (Stable Release Update?). I have tried removing the oem-audio-hda-daily-dkms_0.1_all.deb package from my system today but it resulted in no microphone at all and I reinstalled it.

I would like to know more details about the headset that worked for Toufik (comment #28). Mine is an old Nokia headset. Raymond sent me a few weeks back to this link that explains it well: <https://en.wikipedia.org/wiki/Phone_connector_%28audio%29#TRRS_Standards>

Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-saucy' to 'verification-done-saucy'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-saucy

On 10/28/2013 10:37 AM, Brad Figg wrote:
> This bug is awaiting verification that the kernel in -proposed

Thanks for letting me know, I will do so ASAP.

> If verification is not done by 5 working days from today, this fix will
> be dropped from the source code, and this bug will be closed.

WOW, hold it! I will most likely not be able to test before Wednesday,
November 6. While I am familiar with how -proposed works, the
circumstances are such that I am unlikely to have time to fiddle with
and reboot my laptop prior to that date.

If somebody else can test before me, good. Else wait, don't drop the fix!

David Henningsson (diwic) wrote :

> If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

This bug came from upstream stable and thus does not require explicit verification in Ubuntu.

tags: removed: verification-needed-saucy
Brad Figg (brad-figg) on 2013-10-30
tags: added: verification-done-saucy
Launchpad Janitor (janitor) wrote :
Download full text (18.4 KiB)

This bug was fixed in the package linux - 3.11.0-13.20

---------------
linux (3.11.0-13.20) saucy; urgency=low

  [ Brad Figg ]

  * Release Tracking Bug
    - LP: #1242793

  [ Paolo Pisati ]

  * [Config] amhf: VIRTIO_CONSOLE=y
    - LP: #1237982
  * [Config] AHCI_IMX=y
    - LP: #1240038

  [ Tim Gardner ]

  * [Config] CONFIG_USB_OTG=n for all arches
    - LP: #1047527
  * dm-raid4-5: Fix compile issues
    - LP: #1241086
  * [Config] CONFIG_DM_RAID45=m
    - LP: #1241086

  [ Upstream Kernel Changes ]

  * Revert "cw1200: Don't perform SPI transfers in interrupt context"
    - LP: #1237530
  * block: Fix bio_copy_data()
    - LP: #1237530
  * sysv: Add forgotten superblock lock init for v7 fs
    - LP: #1237530
  * bcache: Fix a dumb journal discard bug
    - LP: #1237530
  * bcache: Strip endline when writing the label through sysfs
    - LP: #1237530
  * bcache: Fix for when no journal entries are found
    - LP: #1237530
  * bcache: Fix a writeback performance regression
    - LP: #1237530
  * bcache: Fix a flush/fua performance bug
    - LP: #1237530
  * bcache: Fix a dumb CPU spinning bug in writeback
    - LP: #1237530
  * bcache: Fix a shrinker deadlock
    - LP: #1237530
  * bcache: Fix for handling overlapping extents when reading in a btree
    node
    - LP: #1237530
  * bcache: Fix flushes in writeback mode
    - LP: #1237530
  * kernel/reboot.c: re-enable the function of variable reboot_default
    - LP: #1237530
  * x86/reboot: Add quirk to make Dell C6100 use reboot=pci automatically
    - LP: #1237530
  * tools lib lk: Uninclude linux/magic.h in debugfs.c
    - LP: #1237530
  * x86, efi: Don't map Boot Services on i386
    - LP: #1237530
  * mei: make me client counters less error prone
    - LP: #1237530
  * mei: bus: stop wait for read during cl state transition
    - LP: #1237530
  * mei: cancel stall timers in mei_reset
    - LP: #1237530
  * tty: Fix SIGTTOU not sent with tcflush()
    - LP: #1237530
  * serial: tegra: fix tty-kref leak
    - LP: #1237530
  * serial: pch_uart: fix tty-kref leak in rx-error path
    - LP: #1237530
  * serial: pch_uart: fix tty-kref leak in dma-rx path
    - LP: #1237530
  * ARM: 7837/3: fix Thumb-2 bug in AES assembler code
    - LP: #1237530
  * staging: vt6656: [BUG] main_usb.c oops on device_close move flag
    earlier.
    - LP: #1237530
  * staging: vt6656: [BUG] iwctl_siwencodeext return if device not open
    - LP: #1237530
  * drm/i915/tv: clear adjusted_mode.flags
    - LP: #1237530
  * cw1200: Use a threaded oneshot irq handler for cw1200_spi
    - LP: #1237530
  * xhci: Ensure a command structure points to the correct trb on the
    command ring
    - LP: #1237530
  * xhci: Fix oops happening after address device timeout
    - LP: #1237530
  * USB: fix PM config symbol in uhci-hcd, ehci-hcd, and xhci-hcd
    - LP: #1237530
  * xhci: Fix race between ep halt and URB cancellation
    - LP: #1237530
  * USB: OHCI: accept very late isochronous URBs
    - LP: #1237530
  * USB: UHCI: accept very late isochronous URBs
    - LP: #1237530
  * USB: Fix breakage in ffs_fs_mount()
    - LP: #1237530
  * fsl/usb: Resolve PHY_CLK_VLD instability issue for ULPI phy
    - LP: #1237530
  *...

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
Mirko (mirko-thalmann) on 2013-11-13
Changed in linux:
assignee: nobody → Mirko (mirko-thalmann)
Brad Figg (brad-figg) wrote :

This bug is awaiting verification that the kernel in -proposed solves the problem. Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-raring' to 'verification-done-raring'.

If verification is not done by 5 working days from today, this fix will be dropped from the source code, and this bug will be closed.

See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Thank you!

tags: added: verification-needed-raring
David Henningsson (diwic) wrote :

This bug came from upstream stable and thus does not require explicit verification in Ubuntu.

tags: added: verification-done-raring
removed: verification-needed-raring
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers