[Bug 585853]
Sure, my patch just follows the license of the original code. So it's in MIT/X11 license. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/585853 Title: Not possible to use xdm/wdm, only can use gdm (Lucid, Maverick) To manage notifications about this bug go to: https://bugs.launchpad.net/lqueue/+bug/585853/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 881826] Re: [alsa-devel] [RFC] Fix for conflict of HDMI and SPDIF IEC958 controls
At Mon, 15 Oct 2012 21:10:44 +0800, Raymond Yau wrote: how about those hdmi jack and iec958 on ad1989b? On AD codecs, all digital outputs are exposed as a single cloned device with HDA_PCM_TYPE_SPDIF. how about ad1988b with nvidia codec ? Nvidia codec provides devices only with HDA_PCM_TYPE_HDMI, of course. from user point of view , how can they differenitate hdmi jack is digital ouput and hdmi output ? The device 1 is from AD and the device 3 is from Nvidia codec, as you can see below. And this is exactly the case the conflict happens as I mentioned in the original mail. will your fix change the spdif of those motherboard with ad1988b which have iec958 but no hdmi jack ? It won't change anything unless both SPDIF and HDMI *devices* are actually created. Which is connected to what output, you can't know exactly unless you compare the obtained ELD. The HD-audio spec isn't good enough to identify the actual output. it seem that there is no presence detect on this codec ELD has nothing to do with the presence detect bit. ftp://download.nvidia.com/XFree86/gpu-hdmi-audio-document/gpu-hdmi-audio.html#_examples 6.1.2. Chipset with 8-channel support, single stream This configuration is used in MCP77, MCP78, MCP79, MCP7A, and ION. In the case where multiple HDMI display connectors are present, the audio stream is broadcast to all HDMI connectors at once. A single ALSA device is exposed. ELD and PD information is not available on these chipsets. In these chipsets, the multiple 2-channel converters are aggregated by the ALSA driver and exposed as a single 8-channel device. Some chipsets support 2, or 8 channels (MCP77). Other chipsets support 2, 6, or 8 channels (MCP79). id = 0x10de0002, .name = MCP77/78 HDMI,.patch = patch_nvhdmi_8ch_7x }, does it mean that this hdmi codec support 8 channels but no ELD info ? Right. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/881826 Title: [Analog Devices AD1988B, Green Headphone Out, Front] Pulseaudio fails to detect card To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/881826/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 939161] Re: [alsa-devel] [PATCH] ALSA: hda - Remove ignore_misc_bit
At Mon, 17 Sep 2012 09:39:01 +0200, David Henningsson wrote: But the jack detection controls don't follow this yet. Maybe we can set such a jack control as inactive state when the jack detection is disabled. (And this reminds me that we can cut off Phantom name hack by following the same rule -- just set the control inactive when it has no real detection. But it still appears in control list.) Looking at the alsa-lib API, this seems doable. It seems possible to figure out using snd_hctl_elem_info and then snd_ctl_elem_info_is_inactive. If it is also runtime changeable (i e depending on some other mixer control), we need a callback to fire on the hctl. Why are you using snd_hctl? For looking over jack controls, using snd_ctl_* is more straightforward. Also, which callback are you thinking of? The phantom jack is basically just a placeholder, so there should be no activity from itself. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/939161 Title: Hardware not showed in Gnome-Control-Center. - [M31EI Series, Realtek ALC861, Green Headphone Out, Rear] To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/939161/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1052460] Re: [PATCH] ALSA: hda - limit internal mic boost for Asus X202E
At Tue, 18 Sep 2012 14:26:59 +0200, David Henningsson wrote: When the input gain for the internal mic is set to its maximum level, the background noise becomes so high - and any relevant signal clipped - that the setting becomes unusable. It is better to limit the amplification. BugLink: https://bugs.launchpad.net/bugs/1052460 Signed-off-by: David Henningsson david.hennings...@canonical.com --- Feel free to add cc to stable if you think it makes sense to do so. Alsa info available at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1052460/+attachment/3322585/+files/alsa-info.txt.unplugged Thanks, applied now with Cc to stable 3.5+. Takashi sound/pci/hda/patch_via.c | 29 + 1 file changed, 29 insertions(+) diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index d5f36a1..74fb6fd 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c @@ -3666,6 +3666,32 @@ static void set_widgets_power_state_vt2002P(struct hda_codec *codec) update_power_state(codec, 0x21, AC_PWRST_D3); } +/* + * pin fix-up + */ +enum { + VIA_FIXUP_INTMIC_BOOST, +}; + +static void via_fixup_intmic_boost(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + if (action == HDA_FIXUP_ACT_PRE_PROBE) + override_mic_boost(codec, 0x30, 0, 2, 40); +} + +static const struct hda_fixup via_fixups[] = { + [VIA_FIXUP_INTMIC_BOOST] = { + .type = HDA_FIXUP_FUNC, + .v.func = via_fixup_intmic_boost, + }, +}; + +static const struct snd_pci_quirk vt2002p_fixups[] = { + SND_PCI_QUIRK(0x1043, 0x8532, Asus X202E, VIA_FIXUP_INTMIC_BOOST), + {} +}; + /* patch for vt2002P */ static int patch_vt2002P(struct hda_codec *codec) { @@ -3682,6 +3708,9 @@ static int patch_vt2002P(struct hda_codec *codec) override_mic_boost(codec, 0x29, 0, 3, 40); add_secret_dac_path(codec); + snd_hda_pick_fixup(codec, NULL, vt2002p_fixups, via_fixups); + snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PRE_PROBE); + /* automatic parse from the BIOS config */ err = via_parse_auto_config(codec); if (err 0) { -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1052460 Title: Asus X202E internal mic boost too high To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1052460/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 559939] Re: [PATCH] ALSA: usb - disable broken hw volume for Tenx TP6911
At Thu, 20 Sep 2012 10:20:41 +0200, David Henningsson wrote: While going through Ubuntu bugs, I discovered this patch being posted and a confirmation that the patch works as expected. Finding out how the hw volume really works would be preferrable to just disabling the broken one, but this would be better than nothing. Credit: sndfnsdfin (qawsnews) BugLink: https://bugs.launchpad.net/bugs/559939 Signed-off-by: David Henningsson david.hennings...@canonical.com Applied now. Thanks. Takashi --- sound/usb/mixer.c |7 +++ 1 file changed, 7 insertions(+) diff --git a/sound/usb/mixer.c b/sound/usb/mixer.c index 4f40ba8..fe56c9d 100644 --- a/sound/usb/mixer.c +++ b/sound/usb/mixer.c @@ -1267,6 +1267,13 @@ static int parse_audio_feature_unit(struct mixer_build *state, int unitid, void /* disable non-functional volume control */ master_bits = ~UAC_CONTROL_BIT(UAC_FU_VOLUME); break; + case USB_ID(0x1130, 0xf211): + snd_printk(KERN_INFO +usbmixer: volume control quirk for Tenx TP6911 Audio Headset\n); + /* disable non-functional volume control */ + channels = 0; + break; + } if (channels 0) first_ch_bits = snd_usb_combine_bytes(bmaControls + csize, csize); -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/559939 Title: [USB-Audio - USB AUDIO ] no volume control possible with Tenx USB audio adapter To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/559939/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1037642] Re: [PATCH] ALSA: hda - use both input paths on Conexant auto parser
At Thu, 20 Sep 2012 15:41:21 +0200, David Henningsson wrote: On the Thinkpad W520 - and probably several other machines with Conexant 506x chips - the Dock Mic and Mic are connected to the same two selector nodes. This patch will make Dock Mic take one selector node and Mic take the other, when possible. Without the patch, both paths would take the first selector, leading to the normal Mic's volume being controlled by Dock Mic Boost. (On other machines, this could instead fixup similar problems between Mic and Line In, for example.) BugLink: https://bugs.launchpad.net/bugs/1037642 Signed-off-by: David Henningsson david.hennings...@canonical.com Applied now, thanks. --- I asked for alsa-info on this one but got Ubuntu apport info instead, see e g https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1037642/+attachment/3323954/+files/Card0.Codecs.codec.0.txt In general I guess this could be sent to stable but it always feels scary when it's generic code :-) what do you think? I think it doesn't need to be in stable in this case, as this will result in the mixer element renames. If anything is missing, it'd be good to fix in stable. But, this is a mis-assigned name, but still controllable. Takashi sound/pci/hda/patch_conexant.c | 20 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index b871b013..c03d3b8 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c @@ -3540,8 +3540,9 @@ static int __select_input_connection(struct hda_codec *codec, hda_nid_t mux, hda_nid_t pin, hda_nid_t *srcp, bool do_select, int depth) { + struct conexant_spec *spec = codec-spec; hda_nid_t conn[HDA_MAX_NUM_INPUTS]; - int i, nums; + int startidx, i, nums; switch (get_wcaps_type(get_wcaps(codec, mux))) { case AC_WID_AUD_IN: @@ -3565,14 +3566,25 @@ static int __select_input_connection(struct hda_codec *codec, hda_nid_t mux, depth++; if (depth == 2) return -1; + + /* Try to rotate around connections to avoid one boost controlling +another input path as well */ + startidx = 0; + for (i = 0; i spec-private_imux.num_items; i++) + if (spec-imux_info[i].pin == pin) { + startidx = i; + break; + } + for (i = 0; i nums; i++) { - int ret = __select_input_connection(codec, conn[i], pin, srcp, + int j = (i + startidx) % nums; + int ret = __select_input_connection(codec, conn[j], pin, srcp, do_select, depth); if (ret = 0) { if (do_select) snd_hda_codec_write(codec, mux, 0, - AC_VERB_SET_CONNECT_SEL, i); - return i; + AC_VERB_SET_CONNECT_SEL, j); + return j; } } return -1; -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1037642 Title: [Thinkpad W520] headset microphone controlled by dock mic path To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1037642/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1075882] Re: [RFC PATCH] ALSA: hda - Keep power link on for PantherPoint HDMI
At Wed, 7 Nov 2012 09:22:33 +0100, David Henningsson wrote: On some of the PantherPoint HDMI machines we currently enable, we're seeing trouble with unsol events, i e detecting monitor presence, especially when on battery and after suspend/resume. BugLink: https://bugs.launchpad.net/bugs/1075882 Tested-by: Cyrus Lien cyrus.l...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_hdmi.c |8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) So far this is the workaround we have found to be working. Sometimes, it also seems that cat /proc/asound/cardx/codec#x can also make the HDMI unsol event trigger, so that the problem fixes itself. We have not run any battery life tests to see if this causes more power consumption. Looks safe at least, so I applied to for-next branch to give more testing. If you find a better solution, let me know. thanks, Takashi diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 39ca100..3155267 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -1288,13 +1288,17 @@ static int hdmi_parse_codec(struct hda_codec *codec) } } +#ifdef CONFIG_PM + /* We're seeing some problems with unsolicited hot plug events on + * PantherPoint after S3, if this is not enabled */ + if (codec-vendor_id == 0x80862806) + codec-bus-power_keep_link_on = 1; /* * G45/IbexPeak don't support EPSS: the unsolicited pin hot plug event * can be lost and presence sense verb will become inaccurate if the * HDA link is powered off at hot plug or hw initialization time. */ -#ifdef CONFIG_PM - if (!(snd_hda_param_read(codec, codec-afg, AC_PAR_POWER_STATE) + else if (!(snd_hda_param_read(codec, codec-afg, AC_PAR_POWER_STATE) AC_PWRST_EPSS)) codec-bus-power_keep_link_on = 1; #endif -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1075882 Title: PantherPoint HDMI - jack detection broken after suspend To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1075882/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1189363] Re: [PATCH 1/2 (v2)] ALSA: hda - Headset mic support for three more machines
Hi David, I'm currently traveling, and will apply the patch in the weekend, as it doesn't look like an urgent fix. Thanks, Takashi On Jun 11, 2013 11:09 AM, David Henningsson david.hennings...@canonical.com wrote: They need these quirks to have headset mic support. BugLink: https://bugs.launchpad.net/bugs/1189363 Tested-by: Shawn Wang shawn.w...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_realtek.c |3 +++ 1 file changed, 3 insertions(+) Note that this patch replaces the patch sent yesterday. I added one more ID in this version. diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 02e22b4..af9e71b 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3483,6 +3483,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1028, 0x05ca, Dell, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05cb, Dell, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05de, Dell, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x05e0, Dell, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05e9, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05ea, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05eb, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), @@ -3494,6 +3495,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1028, 0x05f5, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05f6, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05f8, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0606, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0608, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0609, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x1586, HP, ALC269_FIXUP_HP_MUTE_LED_MIC2), SND_PCI_QUIRK(0x103c, 0x18e6, HP, ALC269_FIXUP_HP_GPIO_LED), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1189363 Title: Headset support on three more Dell machines To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1189363/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1189363] Re: [PATCH 2/2] ALSA: hda - Add models for Dell headset jacks
At Tue, 11 Jun 2013 11:06:49 +0200, David Henningsson wrote: These headset jacks keep coming in on more and more platforms, and it's possible I don't catch them all. Make it easier to test and verify by making models. Signed-off-by: David Henningsson david.hennings...@canonical.com The patch does more than it says; it reformats and modifies HD-Audio-Models.txt. If it's intended to be merged to 3.10 kernel, please make things as minimal as possible, then prepare another patch for cleaning up the whole document. thanks, Takashi --- Documentation/sound/alsa/HD-Audio-Models.txt | 41 ++ sound/pci/hda/patch_realtek.c|3 ++ 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt index bb8b0dc..9a0927c 100644 --- a/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/Documentation/sound/alsa/HD-Audio-Models.txt @@ -21,27 +21,30 @@ ALC267/268 == inv-dmic Inverted internal mic workaround -ALC269/270/275/276/280/282 +ALC269/270/275/276/28x/29x == - laptop-amicLaptops with analog-mic input - laptop-dmicLaptops with digital-mic input - alc269-dmicEnable ALC269(VA) digital mic workaround - alc271-dmicEnable ALC271X digital mic workaround - inv-dmic Inverted internal mic workaround - lenovo-dock Enables docking station I/O for some Lenovos - -ALC662/663/272 + laptop-amicLaptops with analog-mic input + laptop-dmicLaptops with digital-mic input + alc269-dmicEnable ALC269(VA) digital mic workaround + alc271-dmicEnable ALC271X digital mic workaround + inv-dmic Inverted internal mic workaround + lenovo-dockEnables 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 + +ALC662/663/668/272 == - mario Chromebook mario model fixup - asus-mode1 ASUS - asus-mode2 ASUS - asus-mode3 ASUS - asus-mode4 ASUS - asus-mode5 ASUS - asus-mode6 ASUS - asus-mode7 ASUS - asus-mode8 ASUS - inv-dmic Inverted internal mic workaround + mario Chromebook mario model fixup + asus-mode1 ASUS + asus-mode2 ASUS + asus-mode3 ASUS + asus-mode4 ASUS + asus-mode5 ASUS + asus-mode6 ASUS + asus-mode7 ASUS + asus-mode8 ASUS + inv-dmic Inverted internal mic workaround + dell-headset-multi Headset jack, which can also be used as mic-in ALC680 == diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index af9e71b..403010c 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3599,6 +3599,8 @@ static const struct hda_model_fixup alc269_fixup_models[] = { {.id = ALC269_FIXUP_INV_DMIC, .name = inv-dmic}, {.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}, + {.id = ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, .name = dell-headset-dock}, {} }; @@ -4278,6 +4280,7 @@ static const struct hda_model_fixup alc662_fixup_models[] = { {.id = ALC662_FIXUP_ASUS_MODE7, .name = asus-mode7}, {.id = ALC662_FIXUP_ASUS_MODE8, .name = asus-mode8}, {.id = ALC662_FIXUP_INV_DMIC, .name = inv-dmic}, + {.id = ALC668_FIXUP_DELL_MIC_NO_PRESENCE, .name = dell-headset-multi}, {} }; -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1189363 Title: Headset support on three more Dell machines To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1189363/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1189363] Re: [PATCH 2/2] ALSA: hda - Add models for Dell headset jacks
At Mon, 17 Jun 2013 09:58:46 +0200, David Henningsson wrote: On 06/17/2013 09:49 AM, Takashi Iwai wrote: At Tue, 11 Jun 2013 11:06:49 +0200, David Henningsson wrote: These headset jacks keep coming in on more and more platforms, and it's possible I don't catch them all. Make it easier to test and verify by making models. Signed-off-by: David Henningsson david.hennings...@canonical.com The patch does more than it says; it reformats and modifies HD-Audio-Models.txt. If it's intended to be merged to 3.10 kernel, please make things as minimal as possible, then prepare another patch for cleaning up the whole document. Given Linus's latest don't send me non-critical stuff comment [1], I was expecting you to defer this patch to 3.11 anyway. If you can merge the first patch (the one that adds three headset IDs) to 3.10, that would be appreciated though. The addition of IDs are real fixes, so they should go to 3.10. Then the only question is how annoying for you if the additional model string would be missing. If it doesn't matter, I can postpone it, of course. Also, I'm not sure how to split this patch, all reformat/modifications are just because of the documentation of the added models. Simply add three lines to HD-Audio-Models.txt together with three lines addition to patch_realtek.c. Total six lines. Don't be bothered by the aligned tabs. Takashi thanks, Takashi --- Documentation/sound/alsa/HD-Audio-Models.txt | 41 ++ sound/pci/hda/patch_realtek.c|3 ++ 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt index bb8b0dc..9a0927c 100644 --- a/Documentation/sound/alsa/HD-Audio-Models.txt +++ b/Documentation/sound/alsa/HD-Audio-Models.txt @@ -21,27 +21,30 @@ ALC267/268 == inv-dmic Inverted internal mic workaround -ALC269/270/275/276/280/282 +ALC269/270/275/276/28x/29x == - laptop-amic Laptops with analog-mic input - laptop-dmic Laptops with digital-mic input - alc269-dmic Enable ALC269(VA) digital mic workaround - alc271-dmic Enable ALC271X digital mic workaround - inv-dmicInverted internal mic workaround - lenovo-dock Enables docking station I/O for some Lenovos - -ALC662/663/272 + laptop-amic Laptops with analog-mic input + laptop-dmic Laptops with digital-mic input + alc269-dmic Enable ALC269(VA) digital mic workaround + alc271-dmic Enable ALC271X digital mic workaround + inv-dmicInverted internal mic workaround + 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 + +ALC662/663/668/272 == - mario Chromebook mario model fixup - asus-mode1 ASUS - asus-mode2 ASUS - asus-mode3 ASUS - asus-mode4 ASUS - asus-mode5 ASUS - asus-mode6 ASUS - asus-mode7 ASUS - asus-mode8 ASUS - inv-dmicInverted internal mic workaround + mario Chromebook mario model fixup + asus-mode1 ASUS + asus-mode2 ASUS + asus-mode3 ASUS + asus-mode4 ASUS + asus-mode5 ASUS + asus-mode6 ASUS + asus-mode7 ASUS + asus-mode8 ASUS + inv-dmicInverted internal mic workaround + dell-headset-multi Headset jack, which can also be used as mic-in ALC680 == diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index af9e71b..403010c 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3599,6 +3599,8 @@ static const struct hda_model_fixup alc269_fixup_models[] = { {.id = ALC269_FIXUP_INV_DMIC, .name = inv-dmic}, {.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}, + {.id = ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, .name = dell-headset-dock}, {} }; @@ -4278,6 +4280,7 @@ static const struct hda_model_fixup alc662_fixup_models[] = { {.id = ALC662_FIXUP_ASUS_MODE7, .name = asus-mode7}, {.id = ALC662_FIXUP_ASUS_MODE8, .name = asus-mode8}, {.id = ALC662_FIXUP_INV_DMIC, .name = inv-dmic}, + {.id = ALC668_FIXUP_DELL_MIC_NO_PRESENCE, .name = dell-headset-multi}, {} }; -- 1.7.9.5 -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic [1] https://lkml.org/lkml/2013/6/8/108 -- You received this bug notification because you
[Bug 1189363] Re: [PATCH 2/2] ALSA: hda - Add models for Dell headset jacks
At Mon, 17 Jun 2013 11:06:18 +0200, David Henningsson wrote: On 06/17/2013 10:06 AM, Takashi Iwai wrote: At Mon, 17 Jun 2013 09:58:46 +0200, David Henningsson wrote: On 06/17/2013 09:49 AM, Takashi Iwai wrote: At Tue, 11 Jun 2013 11:06:49 +0200, David Henningsson wrote: These headset jacks keep coming in on more and more platforms, and it's possible I don't catch them all. Make it easier to test and verify by making models. Signed-off-by: David Henningsson david.hennings...@canonical.com The patch does more than it says; it reformats and modifies HD-Audio-Models.txt. If it's intended to be merged to 3.10 kernel, please make things as minimal as possible, then prepare another patch for cleaning up the whole document. Given Linus's latest don't send me non-critical stuff comment [1], I was expecting you to defer this patch to 3.11 anyway. If you can merge the first patch (the one that adds three headset IDs) to 3.10, that would be appreciated though. The addition of IDs are real fixes, so they should go to 3.10. Then the only question is how annoying for you if the additional model string would be missing. If it doesn't matter, I can postpone it, of course. It would be helpful to have the models in 3.10 but not an absolute requirement. Also, I'm not sure how to split this patch, all reformat/modifications are just because of the documentation of the added models. Simply add three lines to HD-Audio-Models.txt together with three lines addition to patch_realtek.c. Total six lines. Don't be bothered by the aligned tabs. Ok, I've now splitted that patch into two and just sent the result. Thanks, applied new patches now. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1189363 Title: Headset support on three more Dell machines To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1189363/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1248465] Re: [PATCH] ALSA: hda - Make sure mute LEDs stay on during runtime suspend (Realtek)
At Wed, 6 Nov 2013 10:50:44 +0100, David Henningsson wrote: Some HP machines with Realtek codecs have mute LEDs connected to VREF pins. However when these go into runtime suspend, the pin powers down and its pin control is disabled, thus disabling the LED too. This patch fixes that issue by making sure that the pin stays in D0 with correct pin control. Cc: sta...@kernel.org BugLink: https://bugs.launchpad.net/bugs/1248465 Tested-by: Franz Hsieh franz.hs...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. I do wonder, though, whether the LED survives even after turning AFG to D3. With IDT codecs, we had to keep AFG D0 just for keeping this VREF stuff. Maybe Realtek codecs behave differently. Takashi --- sound/pci/hda/patch_realtek.c | 20 1 file changed, 20 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index a51f48c..0acbe82 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2955,6 +2955,23 @@ static void alc269_fixup_mic_mute_hook(void *private_data, int enabled) snd_hda_set_pin_ctl_cache(codec, spec-mute_led_nid, pinval); } +/* Make sure the led works even in runtime suspend */ +static unsigned int led_power_filter(struct hda_codec *codec, + hda_nid_t nid, + unsigned int power_state) +{ + struct alc_spec *spec = codec-spec; + + if (power_state != AC_PWRST_D3 || nid != spec-mute_led_nid) + return power_state; + + /* Set pin ctl again, it might have just been set to 0 */ + snd_hda_set_pin_ctl(codec, nid, + snd_hda_codec_get_pin_target(codec, nid)); + + return AC_PWRST_D0; +} + static void alc269_fixup_hp_mute_led(struct hda_codec *codec, const struct hda_fixup *fix, int action) { @@ -2974,6 +2991,7 @@ static void alc269_fixup_hp_mute_led(struct hda_codec *codec, spec-mute_led_nid = pin - 0x0a + 0x18; spec-gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; spec-gen.vmaster_mute_enum = 1; + codec-power_filter = led_power_filter; snd_printd(Detected mute LED for %x:%d\n, spec-mute_led_nid, spec-mute_led_polarity); break; @@ -2989,6 +3007,7 @@ static void alc269_fixup_hp_mute_led_mic1(struct hda_codec *codec, spec-mute_led_nid = 0x18; spec-gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; spec-gen.vmaster_mute_enum = 1; + codec-power_filter = led_power_filter; } } @@ -3001,6 +3020,7 @@ static void alc269_fixup_hp_mute_led_mic2(struct hda_codec *codec, spec-mute_led_nid = 0x19; spec-gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; spec-gen.vmaster_mute_enum = 1; + codec-power_filter = led_power_filter; } } -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1248465 Title: Mute LEDs turn off when on battery mode (HP / Realtek) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1248465/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1248476] Re: [PATCH 1/1] ALSA: HDA - Limit mic boost and add mute LED for an HP machine
At Wed, 6 Nov 2013 11:20:01 +0100, David Henningsson wrote: This machine has a mute LED as well as a noisy internal mic. Hence it needs quirks for both limiting the mic boost as well as enabling the LED. BugLink: https://bugs.launchpad.net/bugs/1248476 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c |8 1 file changed, 8 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 01bf812..a51f48c 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3565,6 +3565,7 @@ enum { ALC271_FIXUP_HP_GATE_MIC_JACK, ALC269_FIXUP_ACER_AC700, ALC269_FIXUP_LIMIT_INT_MIC_BOOST, + ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED, ALC269VB_FIXUP_ORDISSIMO_EVE2, ALC283_FIXUP_CHROME_BOOK, ALC282_FIXUP_ASUS_TX300, @@ -3834,6 +3835,12 @@ static const struct hda_fixup alc269_fixups[] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_limit_int_mic_boost, }, + [ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc269_fixup_limit_int_mic_boost, + .chained = true, + .chain_id = ALC269_FIXUP_HP_MUTE_LED_MIC1, + }, [ALC269VB_FIXUP_ORDISSIMO_EVE2] = { .type = HDA_FIXUP_PINS, .v.pins = (const struct hda_pintbl[]) { @@ -3915,6 +3922,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x18e6, HP, ALC269_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x1973, HP Pavilion, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x1983, HP Pavilion, ALC269_FIXUP_HP_MUTE_LED_MIC1), + SND_PCI_QUIRK(0x103c, 0x218b, HP, ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED), SND_PCI_QUIRK(0x103c, 0x21ed, HP Falco Chromebook, ALC283_FIXUP_CHROME_BOOK), SND_PCI_QUIRK_VENDOR(0x103c, HP, ALC269_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x1043, 0x103f, ASUS TX300, ALC282_FIXUP_ASUS_TX300), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1248476 Title: Add limit mic boost and mute LED support for an HP machine To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1248476/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1248856] Re: [PATCH] ALSA: hda - Another Dell headset quirk
At Thu, 7 Nov 2013 09:28:59 +0100, David Henningsson wrote: This machine has a multi-function headset jack. BugLink: https://bugs.launchpad.net/bugs/1248856 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c |1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 44f1210..daf7205 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4796,6 +4796,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = { SND_PCI_QUIRK(0x1025, 0x038b, Acer Aspire 8943G, ALC662_FIXUP_ASPIRE), SND_PCI_QUIRK(0x1028, 0x05d8, Dell, ALC668_FIXUP_DELL_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05db, Dell, ALC668_FIXUP_DELL_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0626, Dell, ALC668_FIXUP_DELL_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x1632, HP RP5800, ALC662_FIXUP_HP_RP5800), SND_PCI_QUIRK(0x1043, 0x1477, ASUS N56VZ, ALC662_FIXUP_BASS_CHMAP), SND_PCI_QUIRK(0x1043, 0x1bf3, ASUS N76VZ, ALC662_FIXUP_BASS_CHMAP), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1248856 Title: Yet another Dell headset To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1248856/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1248949] Re: [PATCH] ALSA: hda - Add multifunction jack support for ALC255
At Thu, 7 Nov 2013 14:08:41 +0100, David Henningsson wrote: From: Kailang Yang kail...@realtek.com The new codec ALC255 needs its own set of verbs to enable multifunction jacks. (Context and whitespace adjustments by David Henningsson) BugLink: https://bugs.launchpad.net/bugs/1248949 Tested-by: Doro Wu doro...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_realtek.c | 91 + 1 file changed, 91 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index daf7205..ceadd65 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -588,6 +588,18 @@ static int alc_read_coef_idx(struct hda_codec *codec, return val; } +static int alc_read_coefex_idx(struct hda_codec *codec, + hda_nid_t nid, + unsigned int coef_idx) +{ + unsigned int val; + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_COEF_INDEX, + coef_idx); + val = snd_hda_codec_read(codec, nid, 0, + AC_VERB_GET_PROC_COEF, 0); + return val; +} Rewrite alc_read_coef_idx() using this new function, too, e.g. #define alc_write_coef_idx(codec, idx, val) \ alc_read_coefex_idx(codec, 0x20, idx, val) static void alc_write_coef_idx(struct hda_codec *codec, unsigned int coef_idx, unsigned int coef_val) { @@ -597,6 +609,15 @@ static void alc_write_coef_idx(struct hda_codec *codec, unsigned int coef_idx, coef_val); } +static void alc_write_coefex_idx(struct hda_codec *codec, hda_nid_t nid, + unsigned int coef_idx, unsigned int coef_val) +{ + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_COEF_INDEX, + coef_idx); + snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_PROC_COEF, + coef_val); +} Ditto. + /* a special bypass for COEF 0; read the cached value at the second time */ static unsigned int alc_get_coef0(struct hda_codec *codec) { @@ -3109,6 +3130,14 @@ static void alc_headset_mode_unplugged(struct hda_codec *codec) int val; switch (codec-vendor_id) { + case 0x10ec0255: + alc_write_coef_idx(codec, 0x1b, 0x0c0b); + alc_write_coef_idx(codec, 0x45, 0xd089); + val = alc_read_coefex_idx(codec, 0x57, 0x05); + alc_write_coefex_idx(codec, 0x57, 0x05, val ~(114)); + alc_write_coef_idx(codec, 0x06, 0x6104); + alc_write_coefex_idx(codec, 0x57, 0x03, 0x8aa6); Try to comment what these actually do. Not necessarily too detailed, but we need to have some ideas. I regret to have merged the former Realtek headset patches that have lots of such verbs without certain comments. thanks, Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1248949 Title: Headset jack support for ALC255 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1248949/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1248949] Re: [PATCH] ALSA: hda - Add multifunction jack support for ALC255
At Fri, 08 Nov 2013 11:10:48 +0100, David Henningsson wrote: On 11/08/2013 09:19 AM, Kailang wrote: Hi David, I modified as attach patch. It included coef_idx to use coefex_idx. BR, Kailang Thanks! @Takashi, does this new patch look good enough for you? Yes, I applied it now (although more comments wouldn't be bad :) Thanks. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1248949 Title: Headset jack support for ALC255 To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1248949/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1008600] Re: [PATCH] Fix access of freed memory in namehints
At Fri, 13 Sep 2013 13:21:44 -0400, David Henningsson wrote: Sometimes a hook manipulates the config tree, which makes currently running iterators point to freed memory. As a workaround, make two copies, one for the iterators and another for the hooks. BugLink: https://bugs.launchpad.net/bugs/1008600 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- src/control/namehint.c | 22 +- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/control/namehint.c b/src/control/namehint.c index 8d5e925..28975a4 100644 --- a/src/control/namehint.c +++ b/src/control/namehint.c @@ -406,7 +406,7 @@ static const next_devices_t next_devices[] = { }; #endif -static int add_card(snd_config_t *config, struct hint_list *list, int card) +static int add_card(snd_config_t *config, snd_config_t *rw_config, struct hint_list *list, int card) { int err, ok; snd_config_t *conf, *n; @@ -449,7 +449,7 @@ static int add_card(snd_config_t *config, struct hint_list *list, int card) ok = 0; for (device = 0; err = 0 device = max_device; device++) { list-device = device; - err = try_config(config, list, list-siface, str); + err = try_config(rw_config, list, list-siface, str); if (err 0) break; ok++; @@ -464,7 +464,7 @@ static int add_card(snd_config_t *config, struct hint_list *list, int card) if (err 0) { list-card = card; list-device = -1; - err = try_config(config, list, list-siface, str); + err = try_config(rw_config, list, list-siface, str); } if (err == -ENOMEM) goto __error; @@ -493,7 +493,8 @@ static int get_card_name(struct hint_list *list, int card) return 0; } -static int add_software_devices(snd_config_t *config, struct hint_list *list) +static int add_software_devices(snd_config_t *config, snd_config_t *rw_config, + struct hint_list *list) { int err; snd_config_t *conf, *n; @@ -509,7 +510,7 @@ static int add_software_devices(snd_config_t *config, struct hint_list *list) continue; list-card = -1; list-device = -1; - err = try_config(config, list, list-siface, str); + err = try_config(rw_config, list, list-siface, str); if (err == -ENOMEM) return -ENOMEM; } @@ -547,7 +548,7 @@ int snd_device_name_hint(int card, const char *iface, void ***hints) struct hint_list list; char ehints[24]; const char *str; - snd_config_t *conf, *local_config = NULL; + snd_config_t *conf, *local_config = NULL, *local_config_rw = NULL; snd_config_update_t *local_config_update = NULL; snd_config_iterator_t i, next; int err; @@ -557,6 +558,7 @@ int snd_device_name_hint(int card, const char *iface, void ***hints) err = snd_config_update_r(local_config, local_config_update, NULL); if (err 0) return err; + err = snd_config_copy(local_config_rw, local_config); list.list = NULL; list.count = list.allocated = 0; list.siface = iface; @@ -586,9 +588,9 @@ int snd_device_name_hint(int card, const char *iface, void ***hints) if (card = 0) { err = get_card_name(list, card); if (err = 0) - err = add_card(local_config, list, card); + err = add_card(local_config, local_config_rw, list, card); } else { - add_software_devices(local_config, list); + add_software_devices(local_config, local_config_rw, list); err = snd_card_next(card); if (err 0) goto __error; @@ -596,7 +598,7 @@ int snd_device_name_hint(int card, const char *iface, void ***hints) err = get_card_name(list, card); if (err 0) goto __error; - err = add_card(local_config, list, card); + err = add_card(local_config, local_config_rw, list, card); if (err 0) goto __error; err = snd_card_next(card); @@ -630,6 +632,8 @@ int snd_device_name_hint(int card, const char *iface, void ***hints) if (list.cardname) free(list.cardname); } + if (local_config_rw) + snd_config_delete(local_config_rw); if (local_config) snd_config_delete(local_config);
[Bug 1231931] Re: [PATCH] Enable internal mic on a Thinkpad machine
At Fri, 27 Sep 2013 13:10:25 +0200, David Henningsson wrote: From: Kailang kail...@realtek.com More thorough testing showed that these verbs were necessary to improve quality of the internal mic. Patch originally from Realtek. Cc: sta...@kernel.org (3.11) BugLink: https://bugs.launchpad.net/bugs/1231931 Signed-off-by: David Henningsson david.hennings...@canonical.com --- Applied it now, but dropped the Cc to stable, since this can't be applied cleanly without your former patch, which wasn't merged to stable either. If you'd like to move them to Cc, please inform the all necessary upstream commit ids. thanks, Takashi sound/pci/hda/patch_realtek.c | 13 - 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index bc07d36..c4d54a9 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3531,6 +3531,7 @@ enum { ALC269VB_FIXUP_ORDISSIMO_EVE2, ALC283_FIXUP_CHROME_BOOK, ALC282_FIXUP_ASUS_TX300, + ALC283_FIXUP_INT_MIC, }; static const struct hda_fixup alc269_fixups[] = { @@ -3790,6 +3791,16 @@ static const struct hda_fixup alc269_fixups[] = { .type = HDA_FIXUP_FUNC, .v.func = alc282_fixup_asus_tx300, }, + [ALC283_FIXUP_INT_MIC] = { + .type = HDA_FIXUP_VERBS, + .v.verbs = (const struct hda_verb[]) { + {0x20, AC_VERB_SET_COEF_INDEX, 0x1a}, + {0x20, AC_VERB_SET_PROC_COEF, 0x0011}, + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -3874,7 +3885,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x17aa, 0x2214, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x17aa, 0x2215, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x17aa, 0x5013, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), - SND_PCI_QUIRK(0x17aa, 0x501a, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x17aa, 0x501a, Thinkpad, ALC283_FIXUP_INT_MIC), SND_PCI_QUIRK(0x17aa, 0x5026, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x17aa, 0x5109, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x17aa, 0x3bf8, Quanta FL1, ALC269_FIXUP_PCM_44K), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1231931 Title: Enable internal mic on a Lenovo machine To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1231931/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1250377] Re: [PATCH] ALSA: hda - Fix Line Out automute on Realtek multifunction jacks
At Tue, 12 Nov 2013 11:10:57 +0100, David Henningsson wrote: In case there is both a multifunction headset jack and a Line Out jack, automuting was not working properly from the Line Out jack. This patch fixes that issue. Cc: sta...@vger.kernel.org (3.10+) BugLink: https://bugs.launchpad.net/bugs/1250377 Tested-by: Cyrus Lien cyrus.l...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c |4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 24d924d..04d1e6b 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3344,8 +3344,10 @@ static void alc_update_headset_mode(struct hda_codec *codec) else new_headset_mode = ALC_HEADSET_MODE_HEADPHONE; - if (new_headset_mode == spec-current_headset_mode) + if (new_headset_mode == spec-current_headset_mode) { + snd_hda_gen_update_outputs(codec); return; + } switch (new_headset_mode) { case ALC_HEADSET_MODE_UNPLUGGED: -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1250377 Title: Automute broken with Realtek multifunction headset jacks To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1250377/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1239392] Re: [PATCH] ALSA: hda - Fix inverted internal mic not indicated on some machines
At Mon, 14 Oct 2013 10:16:22 +0200, David Henningsson wrote: The create_bind_cap_vol_ctl does not create any control indicating that an inverted dmic is present. Therefore, create multiple capture volumes in this scenario, so we always have some indication that the internal mic is inverted. This happens on the Lenovo Ideapad U310 as well as the Lenovo Yoga 13 (both are based on the CX20590 codec), but the fix is generic and could be needed for other codecs/machines too. Thanks to Szymon Acedański for the pointer and a draft patch. BugLink: https://bugs.launchpad.net/bugs/1239392 BugLink: https://bugs.launchpad.net/bugs/1227491 Reported-by: Szymon Acedański ac...@mimuw.edu.pl Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/hda_generic.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) I think this fix is safe enough to send to Linus and stable, but will leave the final judgement to Takashi. Yes, this looks good as a stable material, as far as I've tested, too. Applied it now. Thanks! Takashi diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index ac41e9c..26ad4f0 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c @@ -3531,7 +3531,7 @@ static int create_capture_mixers(struct hda_codec *codec) if (!multi) err = create_single_cap_vol_ctl(codec, n, vol, sw, inv_dmic); - else if (!multi_cap_vol) + else if (!multi_cap_vol !inv_dmic) err = create_bind_cap_vol_ctl(codec, n, vol, sw); else err = create_multi_cap_vol_ctl(codec); -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1239392 Title: Lenovo IdeaPad Yoga 13: Inverted Internal microphone (phase inversion) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1239392/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1236228] Re: [PATCH] ALSA: hda - Fix mono speakers and headset mic on Dell Vostro 5470
At Mon, 7 Oct 2013 10:39:59 +0200, David Henningsson wrote: On this machine, DAC on node 0x03 seems to give mono output. Also, it needs additional patches for headset mic support. It supports CTIA style headsets only. Alsa-info available at the bug link below. Cc: sta...@kernel.org (v3.10+) BugLink: https://bugs.launchpad.net/bugs/1236228 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c | 27 +++ 1 file changed, 27 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 0e303b9..52c26d3 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3496,6 +3496,15 @@ static void alc282_fixup_asus_tx300(struct hda_codec *codec, } } +static void alc290_fixup_mono_speakers(struct hda_codec *codec, +const struct hda_fixup *fix, int action) +{ + if (action == HDA_FIXUP_ACT_PRE_PROBE) + /* Remove DAC node 0x03, as it seems to be +giving mono output */ + snd_hda_override_wcaps(codec, 0x03, 0); +} + enum { ALC269_FIXUP_SONY_VAIO, ALC275_FIXUP_SONY_VAIO_GPIO2, @@ -3522,6 +3531,7 @@ enum { ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE, + ALC269_FIXUP_DELL3_MIC_NO_PRESENCE, ALC269_FIXUP_HEADSET_MODE, ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC, ALC269_FIXUP_ASUS_X101_FUNC, @@ -3535,6 +3545,7 @@ enum { ALC283_FIXUP_CHROME_BOOK, ALC282_FIXUP_ASUS_TX300, ALC283_FIXUP_INT_MIC, + ALC290_FIXUP_MONO_SPEAKERS, }; static const struct hda_fixup alc269_fixups[] = { @@ -3712,6 +3723,15 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC }, + [ALC269_FIXUP_DELL3_MIC_NO_PRESENCE] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x1a, 0x01a1913c }, /* use as headset mic, without its own jack detect */ + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_HEADSET_MODE_NO_HP_MIC + }, [ALC269_FIXUP_HEADSET_MODE] = { .type = HDA_FIXUP_FUNC, .v.func = alc_fixup_headset_mode, @@ -3804,6 +3824,12 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST }, + [ALC290_FIXUP_MONO_SPEAKERS] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc290_fixup_mono_speakers, + .chained = true, + .chain_id = ALC269_FIXUP_DELL3_MIC_NO_PRESENCE, + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -3845,6 +3871,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1028, 0x0608, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0609, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0613, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0616, Dell Vostro 5470, ALC290_FIXUP_MONO_SPEAKERS), SND_PCI_QUIRK(0x1028, 0x15cc, Dell X5 Precision, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x15cd, Dell X5 Precision, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x1586, HP, ALC269_FIXUP_HP_MUTE_LED_MIC2), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1236228 Title: Dell vostro 5470 has mono speakers and broken headset mic To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1236228/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1236965] Re: [PATCH] ALSA: hda - Enable surround speakers (when line out is also present)
At Thu, 10 Oct 2013 09:01:25 +0200, David Henningsson wrote: In the case where we have both line out and more than stereo speakers, the speaker DACs will end up in extra_out_nid. In fact, AFAIU, speakers are the only ones that can end up in extra_out_nid, and if we have several of those, they should be surround outputs rather than copy front. BugLink: https://bugs.launchpad.net/bugs/1236965 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/hda_codec.c | 19 ++- 1 file changed, 14 insertions(+), 5 deletions(-) Notes: * Thanks to Raymond Yau for the pointer * Not tested (yet), except in hda-emu * Not sure if this should be sent to stable or not, given that it is a change of behaviour * Alsainfo available here: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1236965/+attachment/3867946/+files/alsaInfoWhenAudioPlaybackFailing.txt Thanks, I applied this to for-next branch, as this is the behavior fix. The copy of front channels are intentional in the current code, so the patch isn't a fix but rather an enhancement, IMO. Takashi diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index 5b6c4e3..68801ba 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -5395,11 +5395,6 @@ int snd_hda_multi_out_analog_prepare(struct hda_codec *codec, snd_hda_codec_setup_stream(codec, mout-hp_out_nid[i], stream_tag, 0, format); - for (i = 0; i ARRAY_SIZE(mout-extra_out_nid); i++) - if (!mout-no_share_stream mout-extra_out_nid[i]) - snd_hda_codec_setup_stream(codec, -mout-extra_out_nid[i], -stream_tag, 0, format); /* surrounds */ for (i = 1; i mout-num_dacs; i++) { @@ -5410,6 +5405,20 @@ int snd_hda_multi_out_analog_prepare(struct hda_codec *codec, snd_hda_codec_setup_stream(codec, nids[i], stream_tag, 0, format); } + + /* extra surrounds */ + for (i = 0; i ARRAY_SIZE(mout-extra_out_nid); i++) { + int ch = 0; + if (!mout-extra_out_nid[i]) + break; + if (chs = (i + 1) * 2) + ch = i * 2; + else if (!mout-no_share_stream) + break; + snd_hda_codec_setup_stream(codec, mout-extra_out_nid[i], +stream_tag, ch, format); + } + return 0; } EXPORT_SYMBOL_HDA(snd_hda_multi_out_analog_prepare); -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1236965 Title: pulseaudio does not recognize internal speakers [P180HMx, Realtek ALC892, Speaker, Internal] volume slider problem To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1236965/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1227093] Re: [PATCH 2/2] ALSA: hda - Fix microphone for Sony VAIO Pro 13 (Haswell model)
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: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1227093 Signed-off-by: David Henningsson david.hennings...@canonical.com --- 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 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1227093 Title: [haswell sony vaio pro] Internal microphone not working To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1227093/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1227093] Re: [PATCH 2/2] ALSA: hda - Fix microphone for Sony VAIO Pro 13 (Haswell model)
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: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1227093 Signed-off-by: David Henningsson david.hennings...@canonical.com --- 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[] = { @@ -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, Canonical Ltd. https://launchpad.net/~diwic -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1227093 Title: [haswell sony vaio pro] Internal microphone not working To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1227093/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1186170] Re: [PATCH] ALSA: hda - Add headset quirk for two Dell machines
At Fri, 31 May 2013 10:41:04 +0200, David Henningsson wrote: This quirk is required for the headset mic to work on these two machines. BugLink: https://bugs.launchpad.net/bugs/1186170 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c |2 ++ 1 file changed, 2 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 59d2e91..aa4bf82 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3493,6 +3493,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1028, 0x05f4, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05f5, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05f6, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x05f8, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0609, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x1586, HP, ALC269_FIXUP_HP_MUTE_LED_MIC2), SND_PCI_QUIRK(0x103c, 0x18e6, HP, ALC269_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x1973, HP Pavilion, ALC269_FIXUP_HP_MUTE_LED_MIC1), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1186170 Title: Headset support two Dell machines To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1186170/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1169143] Re: [PATCH] ALSA: hda - Implement headset jack functionality for some Dell hw
At Mon, 15 Apr 2013 15:44:14 +0200, David Henningsson wrote: On some machines, there is a headset jack that can support both headphone, headsets (of both CTIA and OMTP type) and mic-in. On other machines, the headset jack supports headphone, headsets (both CTIA and OMTP), but not mic-in. This patch implements that functionality as different capture sources. Buglink: https://bugs.launchpad.net/bugs/1169143 Tested-by: David Chen david.c...@canonical.com Co-authored-by: Kailang kail...@realtek.com Signed-off-by: David Henningsson david.hennings...@canonical.com Applied now. Thanks. Takashi --- sound/pci/hda/patch_realtek.c | 386 + 1 file changed, 386 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 6cf27f5..f3307eb 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -52,6 +52,20 @@ enum { ALC_INIT_GPIO3, }; +enum { + ALC_HEADSET_MODE_UNKNOWN, + ALC_HEADSET_MODE_UNPLUGGED, + ALC_HEADSET_MODE_HEADSET, + ALC_HEADSET_MODE_MIC, + ALC_HEADSET_MODE_HEADPHONE, +}; + +enum { + ALC_HEADSET_TYPE_UNKNOWN, + ALC_HEADSET_TYPE_CTIA, + ALC_HEADSET_TYPE_OMTP, +}; + struct alc_customize_define { unsigned int sku_cfg; unsigned char port_connectivity; @@ -87,6 +101,11 @@ struct alc_spec { unsigned int gpio_led; /* used for alc269_fixup_hp_gpio_led() */ + hda_nid_t headset_mic_pin; + hda_nid_t headphone_mic_pin; + int current_headset_mode; + int current_headset_type; + /* hooks */ void (*init_hook)(struct hda_codec *codec); #ifdef CONFIG_PM @@ -2798,6 +2817,302 @@ static void alc269_fixup_hp_gpio_led(struct hda_codec *codec, } } +static void alc_headset_mode_unplugged(struct hda_codec *codec) +{ + int val; + + switch (codec-vendor_id) { + case 0x10ec0283: + alc_write_coef_idx(codec, 0x1b, 0x0c0b); + alc_write_coef_idx(codec, 0x45, 0xc429); + val = alc_read_coef_idx(codec, 0x35); + alc_write_coef_idx(codec, 0x35, val 0xbfff); + alc_write_coef_idx(codec, 0x06, 0x2104); + alc_write_coef_idx(codec, 0x1a, 0x0001); + alc_write_coef_idx(codec, 0x26, 0x0004); + alc_write_coef_idx(codec, 0x32, 0x42a3); + break; + case 0x10ec0292: + alc_write_coef_idx(codec, 0x76, 0x000e); + alc_write_coef_idx(codec, 0x6c, 0x2400); + alc_write_coef_idx(codec, 0x18, 0x7308); + alc_write_coef_idx(codec, 0x6b, 0xc429); + break; + case 0x10ec0668: + alc_write_coef_idx(codec, 0x15, 0x0d40); + alc_write_coef_idx(codec, 0xb7, 0x802b); + break; + } + snd_printdd(Headset jack set to unplugged mode.\n); +} + + +static void alc_headset_mode_mic_in(struct hda_codec *codec, hda_nid_t hp_pin, + hda_nid_t mic_pin) +{ + int val; + + switch (codec-vendor_id) { + case 0x10ec0283: + alc_write_coef_idx(codec, 0x45, 0xc429); + snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); + val = alc_read_coef_idx(codec, 0x35); + alc_write_coef_idx(codec, 0x35, val | 114); + alc_write_coef_idx(codec, 0x06, 0x2100); + alc_write_coef_idx(codec, 0x1a, 0x0021); + alc_write_coef_idx(codec, 0x26, 0x008c); + snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); + break; + case 0x10ec0292: + snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); + alc_write_coef_idx(codec, 0x19, 0xa208); + alc_write_coef_idx(codec, 0x2e, 0xacf0); + break; + case 0x10ec0668: + alc_write_coef_idx(codec, 0x11, 0x0001); + snd_hda_set_pin_ctl_cache(codec, hp_pin, 0); + alc_write_coef_idx(codec, 0xb7, 0x802b); + alc_write_coef_idx(codec, 0xb5, 0x1040); + val = alc_read_coef_idx(codec, 0xc3); + alc_write_coef_idx(codec, 0xc3, val | 112); + snd_hda_set_pin_ctl_cache(codec, mic_pin, PIN_VREF50); + break; + } + snd_printdd(Headset jack set to mic-in mode.\n); +} + +static void alc_headset_mode_default(struct hda_codec *codec) +{ + switch (codec-vendor_id) { + case 0x10ec0283: + alc_write_coef_idx(codec, 0x06, 0x2100); + alc_write_coef_idx(codec, 0x32, 0x4ea3); + break; + case 0x10ec0292: + alc_write_coef_idx(codec, 0x76, 0x000e); + alc_write_coef_idx(codec, 0x6c, 0x2400); + alc_write_coef_idx(codec, 0x6b, 0xc429); + alc_write_coef_idx(codec, 0x18, 0x7308); + break; + case 0x10ec0668: + alc_write_coef_idx(codec,
[Bug 1169138] Re: [PATCH] ALSA: hda - Fix headset mic support for Asus X101CH
At Mon, 15 Apr 2013 12:50:02 +0200, David Henningsson wrote: With this patch, a TRRS headset mic cannot be successfully detected on the Asus X101CH, and we can also distinguish between headphone and headset automatically. Buglink: https://bugs.launchpad.net/bugs/1169138 Co-authored-by: Kailang kail...@realtek.com Tested-by: Luis Henriques luis.henriq...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com --- Now that we have better headset mic support infrastructure, I remembered I forgot to upstream this patch. It was originally provided by Realtek (therefore, I cannot answer for the msleeps and exactly why this is needed). I just rewrote it for the current kernel version. Applied now , but I had to rebase again after applying your headset mic patch. Please check whether it's OK later. thanks, Takashi sound/pci/hda/patch_realtek.c | 56 + 1 file changed, 56 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 6cf27f5..1b7aed5 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2680,6 +2680,34 @@ static void alc269_fixup_quanta_mute(struct hda_codec *codec, spec-gen.automute_hook = alc269_quanta_automute; } +static void alc269_x101_hp_automute_hook(struct hda_codec *codec, + struct hda_jack_tbl *jack) +{ + struct alc_spec *spec = codec-spec; + int vref; + msleep(200); + snd_hda_gen_hp_automute(codec, jack); + + vref = spec-gen.hp_jack_present ? PIN_VREF80 : 0; + msleep(100); + snd_hda_codec_write(codec, 0x18, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, + vref); + msleep(500); + snd_hda_codec_write(codec, 0x18, 0, AC_VERB_SET_PIN_WIDGET_CONTROL, + vref); +} + +static void alc269_fixup_x101_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; + spec-gen.hp_automute_hook = alc269_x101_hp_automute_hook; + } +} + + /* update mute-LED according to the speaker mute state via mic VREF pin */ static void alc269_fixup_mic_mute_hook(void *private_data, int enabled) { @@ -2837,6 +2865,9 @@ enum { ALC269_FIXUP_INV_DMIC, ALC269_FIXUP_LENOVO_DOCK, ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT, + ALC269_FIXUP_ASUS_X101_FUNC, + ALC269_FIXUP_ASUS_X101_VERB, + ALC269_FIXUP_ASUS_X101, ALC271_FIXUP_AMIC_MIC2, ALC271_FIXUP_HP_GATE_MIC_JACK, ALC269_FIXUP_ACER_AC700, @@ -2996,6 +3027,30 @@ static const struct hda_fixup alc269_fixups[] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_pincfg_no_hp_to_lineout, }, + [ALC269_FIXUP_ASUS_X101_FUNC] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc269_fixup_x101_headset_mic, + }, + [ALC269_FIXUP_ASUS_X101_VERB] = { + .type = HDA_FIXUP_VERBS, + .v.verbs = (const struct hda_verb[]) { + {0x18, AC_VERB_SET_PIN_WIDGET_CONTROL, 0}, + {0x20, AC_VERB_SET_COEF_INDEX, 0x08}, + {0x20, AC_VERB_SET_PROC_COEF, 0x0310}, + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_ASUS_X101_FUNC + }, + [ALC269_FIXUP_ASUS_X101] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x18, 0x04a1182c }, /* Headset mic */ + { } + }, + .chained = true, + .chain_id = ALC269_FIXUP_ASUS_X101_VERB + }, [ALC271_FIXUP_AMIC_MIC2] = { .type = HDA_FIXUP_PINS, .v.pins = (const struct hda_pintbl[]) { @@ -3044,6 +3099,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x834a, ASUS S101, ALC269_FIXUP_STEREO_DMIC), 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, 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 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1169138 Title: Headset mic support on Asus X101CH To manage notifications about this bug go to:
[Bug 1089795] Re: [PATCH] ALSA: hda - Limit internal mic boost for a few Asus machines
At Mon, 22 Apr 2013 14:30:14 +0200, David Henningsson wrote: These are being reported as being so noisy at high mic boost levels, so they are unusable in practice. Therefore artificially limit the boosts. BugLink: https://bugs.launchpad.net/bugs/1089795 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c | 42 - 1 file changed, 41 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 28b3f5a..6e5d383 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3156,6 +3156,38 @@ static void alc271_hp_gate_mic_jack(struct hda_codec *codec, } } +static void alc269_fixup_limit_int_mic_boost(struct hda_codec *codec, + const struct hda_fixup *fix, + int action) +{ + struct alc_spec *spec = codec-spec; + struct auto_pin_cfg *cfg = spec-gen.autocfg; + int i; + + /* The mic boosts on level 2 and 3 are too noisy +on the internal mic input. +Therefore limit the boost to 0 or 1. */ + + if (action != HDA_FIXUP_ACT_PROBE) + return; + + for (i = 0; i cfg-num_inputs; i++) { + hda_nid_t nid = cfg-inputs[i].pin; + unsigned int defcfg; + if (cfg-inputs[i].type != AUTO_PIN_MIC) + continue; + defcfg = snd_hda_codec_get_pincfg(codec, nid); + if (snd_hda_get_input_pin_attr(defcfg) != INPUT_PIN_ATTR_INT) + continue; + + snd_hda_override_amp_caps(codec, nid, HDA_INPUT, + (0x00 AC_AMPCAP_OFFSET_SHIFT) | + (0x01 AC_AMPCAP_NUM_STEPS_SHIFT) | + (0x2f AC_AMPCAP_STEP_SIZE_SHIFT) | + (0 AC_AMPCAP_MUTE_SHIFT)); + } +} + enum { ALC269_FIXUP_SONY_VAIO, ALC275_FIXUP_SONY_VAIO_GPIO2, @@ -3190,6 +3222,7 @@ enum { ALC271_FIXUP_AMIC_MIC2, ALC271_FIXUP_HP_GATE_MIC_JACK, ALC269_FIXUP_ACER_AC700, + ALC269_FIXUP_LIMIT_INT_MIC_BOOST, }; static const struct hda_fixup alc269_fixups[] = { @@ -3428,6 +3461,10 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC271_FIXUP_DMIC, }, + [ALC269_FIXUP_LIMIT_INT_MIC_BOOST] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc269_fixup_limit_int_mic_boost, + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -3458,11 +3495,14 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x1973, HP Pavilion, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x1983, HP Pavilion, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK_VENDOR(0x103c, HP, ALC269_FIXUP_HP_MUTE_LED), + SND_PCI_QUIRK(0x1043, 0x106d, Asus K53BE, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x1043, 0x115d, Asus 1015E, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x1043, 0x1427, Asus Zenbook UX31E, ALC269VB_FIXUP_DMIC), SND_PCI_QUIRK(0x1043, 0x1517, Asus Zenbook UX31A, ALC269VB_FIXUP_DMIC), + SND_PCI_QUIRK(0x1043, 0x16e3, ASUS UX50, ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, Asus G73Jw, ALC269_FIXUP_ASUS_G73JW), SND_PCI_QUIRK(0x1043, 0x1b13, Asus U41SV, ALC269_FIXUP_INV_DMIC), - SND_PCI_QUIRK(0x1043, 0x16e3, ASUS UX50, ALC269_FIXUP_STEREO_DMIC), + SND_PCI_QUIRK(0x1043, 0x1c23, Asus X55U, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x1043, 0x831a, ASUS P901, ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x834a, ASUS S101, ALC269_FIXUP_STEREO_DMIC), SND_PCI_QUIRK(0x1043, 0x8398, ASUS P1005, ALC269_FIXUP_STEREO_DMIC), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1089795 Title: Please limit mic boost on Asus 1015E, X55U and K53BE To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1089795/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1180351] Re: [PATCH] ALSA: hda - Add headset mic support for another Dell machine
At Wed, 15 May 2013 13:56:00 +0200, David Henningsson wrote: BugLink: https://bugs.launchpad.net/bugs/1180351 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c |1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 6bf47f7..59d2e91 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3482,6 +3482,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1028, 0x05c9, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05ca, Dell, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05cb, Dell, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x05de, Dell, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05e9, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05ea, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05eb, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1180351 Title: Headset support on another Dell machine To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1180351/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1136110] Re: [alsa-devel] Asynchronous audio USB chips: choppy playback since 3.8-rc7
At Wed, 03 Apr 2013 12:15:25 +0200, David Henningsson wrote: Hi ALSA developers, Just to get your attention here on what seems to be an USB audio regression. The bug is described in detail here: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110?comments=all Quoting the bug: This bug seems to affect only a certain kind of hardware, which is called Asynchronous USB Digital Audio Codec (DAC). It's said that such a DAC hosts the clock itself (USB Device Host). An ordinary DAC, so called Synchronous USB DAC, uses the clock hosted by the mother board, which is not affected by this bug. When this bug affects an asynchronous USB DAC, the audio played by the DAC is constantly interrupted. The playback itself does not stop, but the output becomes discontinous, filling with constant crackling noises, destroying everything the DAC plays. According to the bug reporter, which seems to have done quite a bit of research, this started between 3.8-rc6 and 3.8-rc7 as well as stable kernels and the bug also lists a few commits which could be the cause, none under sound/usb though. Yes, there is no commits regarding usb-audio itself between 3.8-rc6 and rc7, so the likely culprit is in drivers/usb (usually either drivers/usb/host or drivers/usb/core). There are a bunch of changes there, so further bisection would be appreciated. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1136110 Title: USB Audio Codec choppy playback To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1136110/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1095315] Re: [alsa-devel] [RFC PATCH] ALSA: usb - fix race in creation of M-Audio Fast track pro driver
At Mon, 14 Jan 2013 08:21:56 +0100, David Henningsson wrote: On 01/04/2013 05:02 PM, David Henningsson wrote: A patch in the 3.2 kernel caused regression with hotplugging the M-Audio Fast track pro, or sound after suspend. I don't have the device so I haven't done a full analysis, but it seems userspace (both udev and pulseaudio) got confused when a card was created, immediately destroyed, and then created again. Since there were no counter proposal patches and the below code actually fixes a problem for users, would you mind committing it? OK, applied now. Takashi However, at least one person in the bug report (martin djfun) reports that this patch resolves the issue for him. It also leaves a message in the log: snd-usb-audio: probe of 1-1.1:1.1 failed with error -5 which is a bit misleading. It is better than non-working audio, but maybe there's a more elegant solution? BugLink: https://bugs.launchpad.net/bugs/1095315 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/usb/quirks.c |8 +--- 1 file changed, 5 insertions(+), 3 deletions(-) ...oh, and if you end up taking this patch as it is, you should probably add cc to stable (3.2+). diff --git a/sound/usb/quirks.c b/sound/usb/quirks.c index acc12f0..e71fc8b 100644 --- a/sound/usb/quirks.c +++ b/sound/usb/quirks.c @@ -387,11 +387,13 @@ static int snd_usb_fasttrackpro_boot_quirk(struct usb_device *dev) * rules */ err = usb_driver_set_configuration(dev, 2); - if (err 0) { + if (err 0) snd_printdd(error usb_driver_set_configuration: %d\n, err); - return -ENODEV; - } + /* Always return an error, so that we stop creating a device + that will just be destroyed and recreated with a new + configuration */ + return -ENODEV; } else snd_printk(KERN_INFO usb-audio: Fast Track Pro config OK\n); -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1095315 Title: [USB-Audio - FastTrack Pro, recording] No sound at all To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1095315/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1099372] Re: [PATCH] ALSA: hda - mute LEDs on HP: also check PCI SSID
At Mon, 14 Jan 2013 12:59:10 +0100, David Henningsson wrote: If the codec subvendor is not set to HP, maybe the PCI SSID is set to HP. If so, there might still be a valid mute LED string in BIOS/UEFI. Cc: sta...@vger.kernel.org Buglink: https://bugs.launchpad.net/bugs/1099372 Reported-and-tested-by: Tammy Yang tammy.y...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Is there any real machine showing this bug? If yes, could you give alsa-info.sh output? thanks, Takashi --- sound/pci/hda/patch_sigmatel.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index a86547c..40c74a2 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -4948,7 +4948,8 @@ static int find_mute_led_cfg(struct hda_codec *codec, int default_polarity) spec-gpio_led_polarity); return 1; } - if ((codec-subsystem_id 16) == PCI_VENDOR_ID_HP) { + if ((codec-subsystem_id 16) == PCI_VENDOR_ID_HP || +codec-bus-pci-subsystem_vendor == PCI_VENDOR_ID_HP) { while ((dev = dmi_find_device(DMI_DEV_TYPE_OEM_STRING, NULL, dev))) { if (sscanf(dev-name, HP_Mute_LED_%d_%x, -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1099372 Title: Mute LED not working on a new HP machine To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1099372/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1099372] Re: [PATCH] ALSA: hda - mute LEDs on HP: also check PCI SSID
At Mon, 14 Jan 2013 14:24:37 +0100, David Henningsson wrote: On 01/14/2013 01:50 PM, Takashi Iwai wrote: At Mon, 14 Jan 2013 12:59:10 +0100, David Henningsson wrote: If the codec subvendor is not set to HP, maybe the PCI SSID is set to HP. If so, there might still be a valid mute LED string in BIOS/UEFI. Cc: sta...@vger.kernel.org Buglink: https://bugs.launchpad.net/bugs/1099372 Reported-and-tested-by: Tammy Yang tammy.y...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Is there any real machine showing this bug? Yes, but it is pre-release hardware, so maybe the BIOS/UEFI might not be the final version. If you like, we can wait and see if the problem is corrected in later BIOS/UEFI versions. Yes, I'm sure that it's a problem of early BIOS/UEFI version. At least it's worth to report HP about it. I was thinking that this patch does not hurt anyway. I'm fine to apply, but wonder whether it's really a target for stable kernel (unless the device is already in market). If yes, could you give alsa-info.sh output? https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1099372/+attachment/3482841/+files/alsa-info-hp.txt OK, thanks. Takashi thanks, Takashi --- sound/pci/hda/patch_sigmatel.c |3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index a86547c..40c74a2 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -4948,7 +4948,8 @@ static int find_mute_led_cfg(struct hda_codec *codec, int default_polarity) spec-gpio_led_polarity); return 1; } - if ((codec-subsystem_id 16) == PCI_VENDOR_ID_HP) { + if ((codec-subsystem_id 16) == PCI_VENDOR_ID_HP || + codec-bus-pci-subsystem_vendor == PCI_VENDOR_ID_HP) { while ((dev = dmi_find_device(DMI_DEV_TYPE_OEM_STRING, NULL, dev))) { if (sscanf(dev-name, HP_Mute_LED_%d_%x, -- 1.7.9.5 -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1099372 Title: Mute LED not working on a new HP machine To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1099372/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 886975] Re: [PATCH] ALSA: hda - Fix clicking noise on Thinkpad T61/R61i
At Mon, 17 Dec 2012 16:33:10 +0100, David Henningsson wrote: On 12/12/2012 06:15 PM, Takashi Iwai wrote: At Wed, 12 Dec 2012 18:02:04 +0100, David Henningsson wrote: The bug reporter reports that setting the speaker pin to D3 before turning off its pinctl fixes the clicking noise on powersave for Thinkpad T61. Thanks to c4pp4 for doing most of the work with this bug, including reporting and testing, and writing preliminary patches. BugLink: https://bugs.launchpad.net/bugs/886975 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_conexant.c | 36 1 file changed, 32 insertions(+), 4 deletions(-) Note: c4pp4 pointed out that in his case, only the speaker needed to go to D3 before pinctl, but noticed no regressions from the below implementation, so I made the fixup more generic (easier to reuse later). Well, if going to D3 is already achieved there, there is no point to call snd_hda_shutup_pins(). snd_hda_shutup_pins() itself is for reducing the click noise while the codec is going down to D3. Thus, for this particular machine, simply disable snd_hda_shutup_pins() call from suspend, and make D3 call in reboot_notify. Looking at the bug report, c4pp4 has just reported back that reverting the old commit 697c373e34613609cb5 improves the situation - there are less clicks compared to the current situation. Quoting c4pp4 below: The patch [697c373e34613609cb5] in fact caused click noise hell because the initial click noise is still alive and in addition there were born new click noises, louder click noise and double click noise. They start to appear when using power-save mode, when suspending computer and when rebooting computer. So maybe revert that patch? Yes, feel free to submit the patch. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/886975 Title: [Thinkpad R61i/T61] Lenovo sound chip Conexant CX20549 Venice doesn't work correctly. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/886975/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 886975] Re: [PATCH] Revert ALSA: hda - Shut up pins at power-saving mode with Conexnat codecs
At Wed, 19 Dec 2012 09:44:47 +0100, David Henningsson wrote: This reverts commit 697c373e34613609cb5450f98b91fefb6e910588. The original patch was meant to remove clicking, but in fact caused even more clicking instead. Thanks to c4pp4 for doing most of the work with this bug. BugLink: https://bugs.launchpad.net/bugs/886975 Signed-off-by: David Henningsson david.hennings...@canonical.com --- @c4pp4: Is this consistent with what you have done to reduce the clicking? Will you recommend upstream Linux to take the patch below? So, it shouldn't be merged yet right now? Now is the last chance for merging it to 3.8-rc1. Takashi sound/pci/hda/patch_conexant.c | 16 1 file changed, 16 deletions(-) diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index 60890bf..dd798c3 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c @@ -558,24 +558,12 @@ static int conexant_build_controls(struct hda_codec *codec) return 0; } -#ifdef CONFIG_PM -static int conexant_suspend(struct hda_codec *codec) -{ - snd_hda_shutup_pins(codec); - return 0; -} -#endif - static const struct hda_codec_ops conexant_patch_ops = { .build_controls = conexant_build_controls, .build_pcms = conexant_build_pcms, .init = conexant_init, .free = conexant_free, .set_power_state = conexant_set_power, -#ifdef CONFIG_PM - .suspend = conexant_suspend, -#endif - .reboot_notify = snd_hda_shutup_pins, }; #ifdef CONFIG_SND_HDA_INPUT_BEEP @@ -4405,10 +4393,6 @@ static const struct hda_codec_ops cx_auto_patch_ops = { .init = cx_auto_init, .free = conexant_free, .unsol_event = snd_hda_jack_unsol_event, -#ifdef CONFIG_PM - .suspend = conexant_suspend, -#endif - .reboot_notify = snd_hda_shutup_pins, }; /* -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/886975 Title: [Thinkpad R61i/T61] Lenovo sound chip Conexant CX20549 Venice doesn't work correctly. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/886975/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 886975] Re: [PATCH] Revert ALSA: hda - Shut up pins at power-saving mode with Conexnat codecs
At Wed, 19 Dec 2012 11:34:46 +0100, David Henningsson wrote: On 12/19/2012 11:24 AM, Takashi Iwai wrote: At Wed, 19 Dec 2012 09:44:47 +0100, David Henningsson wrote: This reverts commit 697c373e34613609cb5450f98b91fefb6e910588. The original patch was meant to remove clicking, but in fact caused even more clicking instead. Thanks to c4pp4 for doing most of the work with this bug. BugLink: https://bugs.launchpad.net/bugs/886975 Signed-off-by: David Henningsson david.hennings...@canonical.com --- @c4pp4: Is this consistent with what you have done to reduce the clicking? Will you recommend upstream Linux to take the patch below? So, it shouldn't be merged yet right now? Now is the last chance for merging it to 3.8-rc1. If we don't have time waiting for c4pp4's confirmation without missing the entire 3.8 cycle, then I think we should merge it. It's no new feature, so it's fine to merge it at any time during 3.8 cycle, even after 3.8-rc1. But such a fix should be merged with Cc to stable, so a bit more tests would be better. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/886975 Title: [Thinkpad R61i/T61] Lenovo sound chip Conexant CX20549 Venice doesn't work correctly. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/886975/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1132562] Re: [PATCH] ALSA: hda - Use LPIB position fix for Acer AO751h
At Thu, 28 Feb 2013 08:18:30 +0100, David Henningsson wrote: The user reports a regression (choppy audio), and that position_fix=1 (or position_fix=4) fixes the issue. This is a Poulsbo controller (8086:811b (rev 07)), so might be worth checking if other Poulsbo machines suffer from the same bug. Cc: sta...@vger.kernel.org [v3.7+] BugLink: https://bugs.launchpad.net/bugs/1132562 Signed-off-by: David Henningsson david.hennings...@canonical.com Please check whether the latest sound git tree works as is. We enabled the LPIB delay counting for Poulsbo there, and it may fix most cases. Takashi --- sound/pci/hda/hda_intel.c |1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 4cea6bb6..3505f1e 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -3114,6 +3114,7 @@ static bool check_hdmi_disabled(struct pci_dev *pci) * white/black-listing for position_fix */ static struct snd_pci_quirk position_fix_list[] = { + SND_PCI_QUIRK(0x1025, 0x0244, Acer AO751h, POS_FIX_LPIB), SND_PCI_QUIRK(0x1028, 0x01cc, Dell D820, POS_FIX_LPIB), SND_PCI_QUIRK(0x1028, 0x01de, Dell Precision 390, POS_FIX_LPIB), SND_PCI_QUIRK(0x103c, 0x306d, HP dv3, POS_FIX_LPIB), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1132562 Title: [Acer AO751h] choppy sounds, lots of rewinds To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1132562/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1132562] Re: [PATCH] ALSA: hda - Use LPIB position fix for Acer AO751h
At Thu, 28 Feb 2013 09:49:23 +0100, David Henningsson wrote: On 02/28/2013 08:21 AM, Takashi Iwai wrote: At Thu, 28 Feb 2013 08:18:30 +0100, David Henningsson wrote: The user reports a regression (choppy audio), and that position_fix=1 (or position_fix=4) fixes the issue. This is a Poulsbo controller (8086:811b (rev 07)), so might be worth checking if other Poulsbo machines suffer from the same bug. Cc: sta...@vger.kernel.org [v3.7+] BugLink: https://bugs.launchpad.net/bugs/1132562 Signed-off-by: David Henningsson david.hennings...@canonical.com Please check whether the latest sound git tree works as is. We enabled the LPIB delay counting for Poulsbo there, and it may fix most cases. The test was done on a 3.8 based kernel. Isn't LPIB delay counting enabled there as well? No, it was added fairly recently. I didn't put Cc to stable for the commit f748abcc5bf62de007019d841f7caba81cc3d673. If this is confirmed to work in general for Poulsbo, we can merge to stable. But, overall I wonder why POSFIX_LPIB is needed for this device. In the recent kernels up to 3.8, LPIB is used as default for Poulsbo. Takashi Takashi (Alsa-info is here: https://launchpadlibrarian.net/132247367/AlsaInfo.txt ) Takashi --- sound/pci/hda/hda_intel.c |1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index 4cea6bb6..3505f1e 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -3114,6 +3114,7 @@ static bool check_hdmi_disabled(struct pci_dev *pci) * white/black-listing for position_fix */ static struct snd_pci_quirk position_fix_list[] = { + SND_PCI_QUIRK(0x1025, 0x0244, Acer AO751h, POS_FIX_LPIB), SND_PCI_QUIRK(0x1028, 0x01cc, Dell D820, POS_FIX_LPIB), SND_PCI_QUIRK(0x1028, 0x01de, Dell Precision 390, POS_FIX_LPIB), SND_PCI_QUIRK(0x103c, 0x306d, HP dv3, POS_FIX_LPIB), -- 1.7.9.5 -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1132562 Title: [Acer AO751h] choppy sounds, lots of rewinds To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1132562/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1132562] Re: [PATCH] ALSA: hda - Use LPIB position fix for Acer AO751h
At Thu, 28 Feb 2013 11:05:20 +0100, David Henningsson wrote: On 02/28/2013 10:29 AM, Takashi Iwai wrote: At Thu, 28 Feb 2013 09:49:23 +0100, David Henningsson wrote: On 02/28/2013 08:21 AM, Takashi Iwai wrote: At Thu, 28 Feb 2013 08:18:30 +0100, David Henningsson wrote: The user reports a regression (choppy audio), and that position_fix=1 (or position_fix=4) fixes the issue. This is a Poulsbo controller (8086:811b (rev 07)), so might be worth checking if other Poulsbo machines suffer from the same bug. Cc: sta...@vger.kernel.org [v3.7+] BugLink: https://bugs.launchpad.net/bugs/1132562 Signed-off-by: David Henningsson david.hennings...@canonical.com Please check whether the latest sound git tree works as is. We enabled the LPIB delay counting for Poulsbo there, and it may fix most cases. The test was done on a 3.8 based kernel. Isn't LPIB delay counting enabled there as well? No, it was added fairly recently. I didn't put Cc to stable for the commit f748abcc5bf62de007019d841f7caba81cc3d673. If this is confirmed to work in general for Poulsbo, we can merge to stable. But, overall I wonder why POSFIX_LPIB is needed for this device. In the recent kernels up to 3.8, LPIB is used as default for Poulsbo. According to git describe --contains, this commit was added to v3.8-rc6, and released into Ubuntu before this bug was filed. Ah, right, I forgot it was included in 3.8-final... Probably this commit is was what caused the regression then, and so the cc to stable should be to 3.8+, not 3.7+. Possible. We seem have no reliable generic solution for Poulsbo, unfortunately. But, POSFIX_LPIB is most likely buggy in the regard of capture. Can the tester check whether the recording really works, also without pulseaudio, too?) I guess POSFIX_COMBO would work better for Poulsbo. (Oh I dropped AZX_DCAPS_POSFIX_COMBO, and we may need to revive in in bit 24) Takashi Takashi Have you cloned yourself, or is it just a race condition? :-) It must be a dejavu, aka a bug, due to a lack of caffeine. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1132562 Title: [Acer AO751h] choppy sounds, lots of rewinds To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1132562/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1109298] Re: [PATCH] alsa-lib: Add sys/types.h to include list
At Tue, 12 Feb 2013 10:06:11 +0100, David Henningsson wrote: This is needed by snd_pcm_format_silence* functions which return u_int*_t. It was discovered while trying to compile ALSA programs with eglibc 2.17. Credits to Richard Shaw, Gary Buhrmaster, Matthieu Baerts and Adam Conrad for this fix. BugLink: https://bugs.launchpad.net/bugs/1109298 BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=885306 Signed-off-by: David Henningsson david.hennings...@canonical.com For u_int_* types, wouldn't it better to include stdint.h? Takashi --- include/asoundlib-head.h |1 + 1 file changed, 1 insertion(+) diff --git a/include/asoundlib-head.h b/include/asoundlib-head.h index 20c8a68..6edbab0 100644 --- a/include/asoundlib-head.h +++ b/include/asoundlib-head.h @@ -31,6 +31,7 @@ #include unistd.h #include stdio.h #include stdlib.h +#include sys/types.h #include string.h #include fcntl.h #include assert.h -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1109298 Title: [Regression] error when trying to compile a program which uses alsa/asoundlib.h with EGLIBC 2.17 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/1109298/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1109298] Re: [PATCH] alsa-lib: Add sys/types.h to include list
At Tue, 12 Feb 2013 10:16:13 +0100, David Henningsson wrote: On 02/12/2013 10:10 AM, Takashi Iwai wrote: At Tue, 12 Feb 2013 10:06:11 +0100, David Henningsson wrote: This is needed by snd_pcm_format_silence* functions which return u_int*_t. It was discovered while trying to compile ALSA programs with eglibc 2.17. Credits to Richard Shaw, Gary Buhrmaster, Matthieu Baerts and Adam Conrad for this fix. BugLink: https://bugs.launchpad.net/bugs/1109298 BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=885306 Signed-off-by: David Henningsson david.hennings...@canonical.com For u_int_* types, wouldn't it better to include stdint.h? Hmm, it looks like stdint.h declares uint_* whereas sys/types.h declares u_int_* (notice the _ between u and int). Do you think we should change snd_pcm_format_silence* from u_int to uint? Ah, OK, then sys/types.h is the right inclusion. Maybe conversion to uint_*_t would be more universal, but I don't think it's worth, as these types are used in many places in the public API already. I'll take your patch as is now. thanks, Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1109298 Title: [Regression] error when trying to compile a program which uses alsa/asoundlib.h with EGLIBC 2.17 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/1109298/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1155016] Re: [PATCH] ALSA: hda - Disable IDT eapd_switch if there are no internal speakers
At Thu, 14 Mar 2013 10:42:00 +0100, David Henningsson wrote: If there are no internal speakers, we should not turn the eapd switch off, because it might be necessary to keep high for Headphone. BugLink: https://bugs.launchpad.net/bugs/1155016 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_sigmatel.c | 25 + 1 file changed, 25 insertions(+) Hi Takashi, I encountered the bug when working with a pre-release machine (so no alsa-info, unfortunately). Feel free to commit if you think this is a good idea. Or can you think of a use case where this would cause a regression? I'm inclined for avoiding applying this at that place for all IDT/STAC codecs, but only to specific codec. patch_stac92hd73xx() is the only IDT codecs setting spec-eapd_switch, and other places are only for legacy STAC codecs, which I don't want to touch too much any longer. spec-eapd_switch can be set on/off well even after calling stac_parse_auto_config(), I guess, so it can be done in patch_*() as well. That is, I mean a patch like below. thanks, Takashi --- diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index d57c81e..b82cbc5 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -815,6 +815,29 @@ static int find_mute_led_cfg(struct hda_codec *codec, int default_polarity) return 0; } +/* check whether a built-in speaker is included in parsed pins */ +static bool has_builtin_speaker(struct hda_codec *codec) +{ + struct sigmatel_spec *spec = codec-spec; + hda_nid_t *nid_pin; + int nids, i; + + if (spec-gen.autocfg.line_out_type == AUTO_PIN_SPEAKER_OUT) { + nid_pin = spec-gen.autocfg.line_out_pins; + nids = spec-gen.autocfg.line_outs; + } else { + nid_pin = spec-gen.autocfg.speaker_pins; + nids = spec-gen.autocfg.speaker_outs; + } + + for (i = 0; i nids; i++) { + unsigned int def_conf = snd_hda_codec_get_pincfg(codec, nid_pin[i]); + if (snd_hda_get_input_pin_attr(def_conf) == INPUT_PIN_ATTR_INT) + return true; + } + return false; +} + /* * PC beep controls */ @@ -3891,6 +3914,12 @@ static int patch_stac92hd73xx(struct hda_codec *codec) return err; } + /* Don't GPIO-mute speakers if there are no internal speakers, because +* the GPIO might be necessary for Headphone +*/ + if (spec-eapd_switch !has_builtin_speaker(codec)) + spec-eapd_switch = false; + codec-proc_widget_hook = stac92hd7x_proc_hook; snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_PROBE); -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1155016 Title: Headphone not working on a desktop machine To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1155016/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1248116] Re: [PATCH] ALSA: hda - Disable Front HP jack detection on Gigabyte Z87X-UD3H
At Wed, 1 Jan 2014 14:01:34 +0100, David Henningsson wrote: This motherboard seems to have a flaky jack detection - when the front HP is not present, the jack state quickly switches on and off. This has been reported by three people in the bug, so I doubt it's a user error this time. BugLink: https://bugs.launchpad.net/bugs/1248116 Signed-off-by: David Henningsson david.hennings...@canonical.com Applied, thanks. Takashi --- sound/pci/hda/patch_realtek.c | 12 +++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 16c0caa..6a705a8 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -1810,6 +1810,7 @@ enum { ALC882_FIXUP_ACER_ASPIRE_7736, ALC882_FIXUP_ASUS_W90V, ALC889_FIXUP_CD, + ALC889_FIXUP_FRONT_HP_NO_PRESENCE, ALC889_FIXUP_VAIO_TT, ALC888_FIXUP_EEE1601, ALC882_FIXUP_EAPD, @@ -2027,6 +2028,15 @@ static const struct hda_fixup alc882_fixups[] = { { } } }, + [ALC889_FIXUP_FRONT_HP_NO_PRESENCE] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x1b, 0x02214120 }, /* Front HP jack is flaky, disable jack detect */ + { } + }, + .chained = true, + .chain_id = ALC889_FIXUP_CD, + }, [ALC889_FIXUP_VAIO_TT] = { .type = HDA_FIXUP_PINS, .v.pins = (const struct hda_pintbl[]) { @@ -2258,7 +2268,7 @@ static const struct snd_pci_quirk alc882_fixup_tbl[] = { SND_PCI_QUIRK(0x1071, 0x8258, Evesham Voyaeger, ALC882_FIXUP_EAPD), SND_PCI_QUIRK(0x1462, 0x7350, MSI-7350, ALC889_FIXUP_CD), SND_PCI_QUIRK_VENDOR(0x1462, MSI, ALC882_FIXUP_GPIO3), - SND_PCI_QUIRK(0x1458, 0xa002, Gigabyte EP45-DS3, ALC889_FIXUP_CD), + SND_PCI_QUIRK(0x1458, 0xa002, Gigabyte EP45-DS3/Z87X-UD3H, ALC889_FIXUP_FRONT_HP_NO_PRESENCE), SND_PCI_QUIRK(0x147b, 0x107a, Abit AW9D-MAX, ALC882_FIXUP_ABIT_AW9D_MAX), SND_PCI_QUIRK_VENDOR(0x1558, Clevo laptop, ALC882_FIXUP_EAPD), SND_PCI_QUIRK(0x161f, 0x2054, Medion laptop, ALC883_FIXUP_EAPD), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1248116 Title: [Gigabyte Z87X-UD3H] PulseAudio switch rapidly port making the sound horrible To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1248116/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1256212] Re: [PATCH] ALSA: hda - Add mono speaker quirk for Dell Inspiron 5439
At Fri, 29 Nov 2013 15:10:20 +0800, David Henningsson wrote: This machine also has mono output if run through DAC node 0x03. Cc: sta...@vger.kernel.org (v3.10+) BugLink: https://bugs.launchpad.net/bugs/1256212 Tested-by: David Chen david.c...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. But I already composed a pull request for 3.13-rc2, so this is slipped from it. Takashi --- sound/pci/hda/patch_realtek.c |1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 2ad568e..8099200 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4243,6 +4243,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1028, 0x0614, Dell Inspiron 3135, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0616, Dell Vostro 5470, ALC290_FIXUP_MONO_SPEAKERS), SND_PCI_QUIRK(0x1028, 0x061f, Dell, ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0638, Dell Inspiron 5439, ALC290_FIXUP_MONO_SPEAKERS), SND_PCI_QUIRK(0x1028, 0x063f, Dell, ALC255_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x15cc, Dell X5 Precision, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x15cd, Dell X5 Precision, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1256212 Title: Dell inspiron 5439 has mono speakers To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1256212/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1256840] Re: [PATCH] ALSA: hda - Fix headset mic input after muted internal mic (Dell/Realtek)
At Mon, 2 Dec 2013 18:06:20 +0800, David Henningsson wrote: By trial and error, I found this patch could work around an issue where the headset mic would stop working if you switch between the internal mic and the headset mic, and the internal mic was muted. It still takes a second or two before the headset mic actually starts working, but still better than nothing. I'd like to add stable to this patch, but I'd like Kailang's ack first because I don't know what the verbs really do. OK, I'll keep this pending for a day or two until Kailang's ack. thanks, Takashi BugLink: https://bugs.launchpad.net/bugs/1256840 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_realtek.c |2 ++ 1 file changed, 2 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 537991c..85d1c8b 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3338,6 +3338,7 @@ static void alc_headset_mode_ctia(struct hda_codec *codec) alc_write_coef_idx(codec, 0x18, 0x7388); break; case 0x10ec0668: + alc_write_coef_idx(codec, 0x11, 0x0001); alc_write_coef_idx(codec, 0x15, 0x0d60); alc_write_coef_idx(codec, 0xc3, 0x); break; @@ -3366,6 +3367,7 @@ static void alc_headset_mode_omtp(struct hda_codec *codec) alc_write_coef_idx(codec, 0x18, 0x7388); break; case 0x10ec0668: + alc_write_coef_idx(codec, 0x11, 0x0001); alc_write_coef_idx(codec, 0x15, 0x0d50); alc_write_coef_idx(codec, 0xc3, 0x); break; -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1256840 Title: Switch device from Internal-Mic (with Mute Status) to Headset-Mic for record, recording is silent. To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1256840/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1260225] Re: [PATCH] ALSA: hda - Add enable_msi=0 workaround for four HP machines
At Thu, 12 Dec 2013 09:52:03 +0100, David Henningsson wrote: While enabling these machines, we found we would sometimes lose an interrupt if we change hardware volume during playback, and that disabling msi fixed this issue. (Losing the interrupt caused underruns and crackling audio, as the one second timeout is usually bigger than the period size.) The machines were all machines from HP, running AMD Hudson controller, and Realtek ALC282 codec. Cc: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1260225 Signed-off-by: David Henningsson david.hennings...@canonical.com Applied, thanks. Takashi --- sound/pci/hda/hda_intel.c |4 1 file changed, 4 insertions(+) diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index af86c71..440c355 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -3446,6 +3446,10 @@ static void check_probe_mask(struct azx *chip, int dev) * white/black-list for enable_msi */ static struct snd_pci_quirk msi_black_list[] = { + SND_PCI_QUIRK(0x103c, 0x2191, HP, 0), /* AMD Hudson */ + SND_PCI_QUIRK(0x103c, 0x2192, HP, 0), /* AMD Hudson */ + SND_PCI_QUIRK(0x103c, 0x21f7, HP, 0), /* AMD Hudson */ + SND_PCI_QUIRK(0x103c, 0x21fa, HP, 0), /* AMD Hudson */ SND_PCI_QUIRK(0x1043, 0x81f2, ASUS, 0), /* Athlon64 X2 + nvidia */ SND_PCI_QUIRK(0x1043, 0x81f6, ASUS, 0), /* nvidia */ SND_PCI_QUIRK(0x1043, 0x822d, ASUS, 0), /* Athlon64 X2 + nvidia MCP55 */ -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1260225 Title: Crackling audio on HP / AMD Hudson machines when changing volume during playback To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1260225/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1253038] Re: [PATCH] ALSA: hda - A casual Dell Headset quirk
At Wed, 20 Nov 2013 11:43:30 +0100, David Henningsson wrote: You're looking at a casual headset patch, for a specific hardware it will match, and suddenly, the headset jack will work, so please apply this simple quirk! BugLink: https://bugs.launchpad.net/bugs/1253038 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied now. Takashi, not a Bard --- sound/pci/hda/patch_realtek.c |1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 8593d4e..a90bfab 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4915,6 +4915,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = { SND_PCI_QUIRK(0x1025, 0x038b, Acer Aspire 8943G, ALC662_FIXUP_ASPIRE), SND_PCI_QUIRK(0x1028, 0x05d8, Dell, ALC668_FIXUP_DELL_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05db, Dell, ALC668_FIXUP_DELL_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0625, Dell, ALC668_FIXUP_DELL_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0626, Dell, ALC668_FIXUP_DELL_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x1632, HP RP5800, ALC662_FIXUP_HP_RP5800), SND_PCI_QUIRK(0x1043, 0x1477, ASUS N56VZ, ALC662_FIXUP_BASS_CHMAP), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1253038 Title: Another Dell headset quirk To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1253038/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1211920] Re: [PATCH] ALSA: hda - Enable subwoofer on Dell Vostro 5460/5470
At Fri, 20 Dec 2013 16:08:13 +0100, David Henningsson wrote: In this case, there are two DACs, and DAC 0x03 is mono. In order to make headphones and front speaker use DAC 0x02, and subwoofer use DAC 0x03, we artificially cut the connection from nodes 0x14 and 0x15 to node 0x03, so they can only use DAC 0x02. In addition, the 5460 and 5470 differs in the sense that 5470 also needs a headset mic patch, whereas 5460 has individual detection for headphone and headset mic. BugLink: https://bugs.launchpad.net/bugs/1211920 Signed-off-by: David Henningsson david.hennings...@canonical.com --- I'm adding Kailang to cc on this one; hopefully he'll scream if this patch is doing anything dangerous, such as if there's a risk to blow up the subwoofer. OK, I applied it now to for-next branch. Let me know if this is to be removed. thanks, Takashi sound/pci/hda/patch_realtek.c | 43 +++-- 1 file changed, 37 insertions(+), 6 deletions(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index dfe4080..16c0caa 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3770,10 +3770,14 @@ static void alc282_fixup_asus_tx300(struct hda_codec *codec, static void alc290_fixup_mono_speakers(struct hda_codec *codec, const struct hda_fixup *fix, int action) { - if (action == HDA_FIXUP_ACT_PRE_PROBE) - /* Remove DAC node 0x03, as it seems to be -giving mono output */ - snd_hda_override_wcaps(codec, 0x03, 0); + if (action == HDA_FIXUP_ACT_PRE_PROBE) { + /* DAC node 0x03 is giving mono output. We therefore want to +make sure 0x14 (front speaker) and 0x15 (headphones) use the +stereo DAC, while leaving 0x17 (bass speaker) for node 0x03. */ + hda_nid_t conn1[2] = { 0x0c }; + snd_hda_override_conn_list(codec, 0x14, 1, conn1); + snd_hda_override_conn_list(codec, 0x15, 1, conn1); + } } #if IS_ENABLED(CONFIG_THINKPAD_ACPI) @@ -3913,6 +3917,9 @@ enum { ALC282_FIXUP_ASUS_TX300, ALC283_FIXUP_INT_MIC, ALC290_FIXUP_MONO_SPEAKERS, + ALC290_FIXUP_MONO_SPEAKERS_HSJACK, + ALC290_FIXUP_SUBWOOFER, + ALC290_FIXUP_SUBWOOFER_HSJACK, ALC269_FIXUP_THINKPAD_ACPI, ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, ALC255_FIXUP_HEADSET_MODE, @@ -4235,9 +4242,31 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_LIMIT_INT_MIC_BOOST }, + [ALC290_FIXUP_SUBWOOFER_HSJACK] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x17, 0x90170112 }, /* subwoofer */ + { } + }, + .chained = true, + .chain_id = ALC290_FIXUP_MONO_SPEAKERS_HSJACK, + }, + [ALC290_FIXUP_SUBWOOFER] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x17, 0x90170112 }, /* subwoofer */ + { } + }, + .chained = true, + .chain_id = ALC290_FIXUP_MONO_SPEAKERS, + }, [ALC290_FIXUP_MONO_SPEAKERS] = { .type = HDA_FIXUP_FUNC, .v.func = alc290_fixup_mono_speakers, + }, + [ALC290_FIXUP_MONO_SPEAKERS_HSJACK] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc290_fixup_mono_speakers, .chained = true, .chain_id = ALC269_FIXUP_DELL3_MIC_NO_PRESENCE, }, @@ -4282,6 +4311,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1028, 0x05cb, Dell, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05cc, Dell X5 Precision, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05cd, Dell X5 Precision, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x05da, Dell Vostro 5460, ALC290_FIXUP_SUBWOOFER), SND_PCI_QUIRK(0x1028, 0x05de, Dell, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05e0, Dell, ALC269_FIXUP_DELL2_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05e9, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), @@ -4303,10 +4333,11 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1028, 0x0610, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0613, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0614, Dell Inspiron 3135, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), - SND_PCI_QUIRK(0x1028, 0x0616, Dell Vostro 5470, ALC290_FIXUP_MONO_SPEAKERS), + SND_PCI_QUIRK(0x1028, 0x0615, Dell Vostro 5470, ALC290_FIXUP_SUBWOOFER_HSJACK), + SND_PCI_QUIRK(0x1028, 0x0616, Dell Vostro 5470,
[Bug 1155202] Re: [RFC PATCH] ALSA: hda - Detect codecs on Intel DZ77SL-50K
At Wed, 22 Jan 2014 12:32:28 +0100, David Henningsson wrote: From: Niraj kulkarnini...@rediffmail.com Apparently this board seems to need some extra initialization before a proper codec probe value can be read. BugLink: https://bugs.launchpad.net/bugs/1155202 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/hda_intel.c |6 ++ 1 file changed, 6 insertions(+) Hi Takashi, Here's a patch from Niraj, which has found this code below to make audio work on the Intel DZ77SL-50K board. Without it, no codecs will be detected. I'm not sure if you like it this way or if you want me or Niraj to change anything, or debug further. Or maybe add a new quirk for this particular device? Of course, I don't like this :) The patch essentially disables the codec reset in *all* cases after a codec is probed. This smells badly of a future regression. FWIW, you can set a forced codec probe mask in probe_mask_list[]. The bit 0x100 means to force the detection. But, before going that direction, could you clarify how this fixes the probing at all? Which azx_init_chip() calls hinders the probing of an active codec? thanks, Takashi diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index fa2879a..2bf46e9 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -1306,6 +1306,12 @@ static void azx_init_chip(struct azx *chip, int full_reset) /* reset controller */ azx_reset(chip, full_reset); + if (!chip-codec_mask) { + azx_writel(chip, GCTL, 0x100); + while(azx_readl(chip, GCTL) != 0x0); + azx_writel(chip, GCTL, 0x1); + azx_reset(chip, full_reset); + } /* initialize interrupts */ azx_int_clear(chip); -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1155202 Title: [Intel DZ77SL-50K, Intel PantherPoint HDMI, Digital Out, HDMI] No sound at all To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1155202/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1155202] Re: [RFC PATCH] ALSA: hda - Detect codecs on Intel DZ77SL-50K
At Wed, 22 Jan 2014 13:25:34 +0100, David Henningsson wrote: On 01/22/2014 12:40 PM, Takashi Iwai wrote: At Wed, 22 Jan 2014 12:32:28 +0100, David Henningsson wrote: From: Niraj kulkarnini...@rediffmail.com Apparently this board seems to need some extra initialization before a proper codec probe value can be read. BugLink: https://bugs.launchpad.net/bugs/1155202 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/hda_intel.c |6 ++ 1 file changed, 6 insertions(+) Hi Takashi, Here's a patch from Niraj, which has found this code below to make audio work on the Intel DZ77SL-50K board. Without it, no codecs will be detected. I'm not sure if you like it this way or if you want me or Niraj to change anything, or debug further. Or maybe add a new quirk for this particular device? Of course, I don't like this :) The patch essentially disables the codec reset in *all* cases after a codec is probed. This smells badly of a future regression. Hmm, but I don't see how the patch *disables* any codec reset. It only does an *extra* controller reset in some cases. Ah, yes. I misread the code. FWIW, you can set a forced codec probe mask in probe_mask_list[]. The bit 0x100 means to force the detection. Yes, we tried this and it did not help. If the codecs do not show up naturally in STATETS, then they cannot be communicated with either. OK. But, before going that direction, could you clarify how this fixes the probing at all? Which azx_init_chip() calls hinders the probing of an active codec? It seems more like, the particular chip or board requires a special quirky initialization sequence. The problem is that it doesn't explain exactly what this special initialization does. How does this magic sequence come? For example, why does it need to set UNSOL flag at first? Is the while loop guaranteed to quit for a reasonable time? Can't it be simply calling azx_reset() twice? And, yet another question comes up: doesn't S4 need the similar workaround? If S4 works, what's the difference? Takashi thanks, Takashi diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c index fa2879a..2bf46e9 100644 --- a/sound/pci/hda/hda_intel.c +++ b/sound/pci/hda/hda_intel.c @@ -1306,6 +1306,12 @@ static void azx_init_chip(struct azx *chip, int full_reset) /* reset controller */ azx_reset(chip, full_reset); + if (!chip-codec_mask) { + azx_writel(chip, GCTL, 0x100); + while(azx_readl(chip, GCTL) != 0x0); + azx_writel(chip, GCTL, 0x1); + azx_reset(chip, full_reset); + } /* initialize interrupts */ azx_int_clear(chip); -- 1.7.9.5 -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1155202 Title: [Intel DZ77SL-50K, Intel PantherPoint HDMI, Digital Out, HDMI] No sound at all To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1155202/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 886975] Re: [PATCH] ALSA: hda - Remove speaker clicks on CX20549
At Thu, 14 Feb 2013 11:36:39 +0100, David Henningsson wrote: This chip needs the speaker pin to go to D3 to avoid clicks, so default_power_filter does not work here. This was found on Thinkpad R61i/T61i but I guess it applies to the entire chip. If not, quirks should be set for at least PCI SSID 17aa:20ac. Thanks to c4pp4 for testing. BugLink: https://bugs.launchpad.net/bugs/886975 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied now. Just wonder, though, whether rather setting spec-gen.power_down_unused = 1 works. When it's set, the generic parser applies the own power filter, and it doesn't have the EAPD check either (plus it does more aggressive power-down of unused widgets). Or, maybe we just drop the EAPD check, and move it to specific fixup. AFAIK, it was required only for old Gateway laptops. Takashi --- sound/pci/hda/patch_conexant.c |1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index 7d941ef..941bf6c 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c @@ -3350,6 +3350,7 @@ static int patch_conexant_auto(struct hda_codec *codec) switch (codec-vendor_id) { case 0x14f15045: codec-single_adc_amp = 1; + codec-power_filter = NULL; /* Needs speaker amp to D3 to avoid click */ break; case 0x14f15047: codec-pin_amp_workaround = 1; -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/886975 Title: [Thinkpad R61i/T61] Lenovo sound chip Conexant CX20549 Venice doesn't work correctly. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/886975/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1128934] Re: [PATCH] ALSA: hda - add quirks for mute LED on two HP machines
At Mon, 18 Feb 2013 11:41:55 +0100, David Henningsson wrote: These two machines have no mute LED string in BIOS. BugLink: https://bugs.launchpad.net/bugs/1128934 Tested-by: Tammy Yang tammy.y...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. --- Should be sent to stable too, but I guess the patch have to be rewritten to fit. Yes, once when this patch is merged, feel free to send such one to stable tree. Takashi sound/pci/hda/patch_realtek.c | 19 +++ 1 file changed, 19 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 48c9d10..e575685 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2726,6 +2726,18 @@ static void alc269_fixup_hp_mute_led(struct hda_codec *codec, } } +static void alc269_fixup_hp_mute_led_mic1(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-mute_led_polarity = 0; + spec-mute_led_nid = 0x18; + spec-gen.vmaster_mute.hook = alc269_fixup_mic_mute_hook; + spec-gen.vmaster_mute_enum = 1; + } +} + static void alc269_fixup_hp_mute_led_mic2(struct hda_codec *codec, const struct hda_fixup *fix, int action) { @@ -2771,6 +2783,7 @@ enum { ALC269VB_FIXUP_AMIC, ALC269VB_FIXUP_DMIC, ALC269_FIXUP_HP_MUTE_LED, + ALC269_FIXUP_HP_MUTE_LED_MIC1, ALC269_FIXUP_HP_MUTE_LED_MIC2, ALC269_FIXUP_INV_DMIC, ALC269_FIXUP_LENOVO_DOCK, @@ -2903,6 +2916,10 @@ static const struct hda_fixup alc269_fixups[] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_hp_mute_led, }, + [ALC269_FIXUP_HP_MUTE_LED_MIC1] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc269_fixup_hp_mute_led_mic1, + }, [ALC269_FIXUP_HP_MUTE_LED_MIC2] = { .type = HDA_FIXUP_FUNC, .v.func = alc269_fixup_hp_mute_led_mic2, @@ -2947,6 +2964,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1025, 0x029b, Acer 1810TZ, ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x1025, 0x0349, Acer AOD260, ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x103c, 0x1586, HP, ALC269_FIXUP_HP_MUTE_LED_MIC2), + SND_PCI_QUIRK(0x103c, 0x1973, HP Pavilion, ALC269_FIXUP_HP_MUTE_LED_MIC1), + SND_PCI_QUIRK(0x103c, 0x1983, HP Pavilion, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK_VENDOR(0x103c, HP, ALC269_FIXUP_HP_MUTE_LED), SND_PCI_QUIRK(0x1043, 0x1427, Asus Zenbook UX31E, ALC269VB_FIXUP_DMIC), SND_PCI_QUIRK(0x1043, 0x1517, Asus Zenbook UX31A, ALC269VB_FIXUP_DMIC), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1128934 Title: Mute LED not working on another HP machine To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1128934/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1213820] Re: [PATCH v2] ALSA: hda - Limit internal mic boost for a few more Thinkpad machines
At Mon, 19 Aug 2013 12:22:33 +0200, David Henningsson wrote: The higher mic boosts (on internal mic) are so noisy they're unusable in practice. BugLink: https://bugs.launchpad.net/bugs/1213820 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c |5 + 1 file changed, 5 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d67a48c..00d00b3 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3704,9 +3704,14 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x17aa, 0x21fb, Thinkpad T430s, ALC269_FIXUP_LENOVO_DOCK), SND_PCI_QUIRK(0x17aa, 0x2203, Thinkpad X230 Tablet, ALC269_FIXUP_LENOVO_DOCK), SND_PCI_QUIRK(0x17aa, 0x2208, Thinkpad T431s, ALC269_FIXUP_LENOVO_DOCK), + SND_PCI_QUIRK(0x17aa, 0x220c, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x17aa, 0x2212, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x17aa, 0x2214, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x17aa, 0x2215, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x17aa, 0x5013, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x17aa, 0x501a, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x17aa, 0x5026, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x17aa, 0x5109, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x17aa, 0x3bf8, Quanta FL1, ALC269_FIXUP_PCM_44K), SND_PCI_QUIRK(0x17aa, 0x9e54, LENOVO NB, ALC269_FIXUP_LENOVO_EAPD), SND_PCI_QUIRK(0x1b7d, 0xa831, Ordissimo EVE2 , ALC269VB_FIXUP_ORDISSIMO_EVE2), /* Also known as Malata PC-B1303 */ -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1213820 Title: A few more Thinkpads need mic boost limit To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1213820/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1213055] Re: [PATCH 1/2] ALSA: hda - Fix internal mic boost on three Thinkpad machines
At Fri, 16 Aug 2013 14:09:01 +0200, David Henningsson wrote: The internal mic boost is so noisy on boosts 2 and 3 so they are unusable in practice. BugLink: https://bugs.launchpad.net/bugs/1213055 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied both patches. Takashi --- sound/pci/hda/patch_realtek.c |3 +++ 1 file changed, 3 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 6ae9504..6ec96f9 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3704,6 +3704,9 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x17aa, 0x21fb, Thinkpad T430s, ALC269_FIXUP_LENOVO_DOCK), SND_PCI_QUIRK(0x17aa, 0x2208, Thinkpad T431s, ALC269_FIXUP_LENOVO_DOCK), SND_PCI_QUIRK(0x17aa, 0x2203, Thinkpad X230 Tablet, ALC269_FIXUP_LENOVO_DOCK), + SND_PCI_QUIRK(0x17aa, 0x2214, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x17aa, 0x2215, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), + SND_PCI_QUIRK(0x17aa, 0x5013, Thinkpad, ALC269_FIXUP_LIMIT_INT_MIC_BOOST), SND_PCI_QUIRK(0x17aa, 0x3bf8, Quanta FL1, ALC269_FIXUP_PCM_44K), SND_PCI_QUIRK(0x17aa, 0x9e54, LENOVO NB, ALC269_FIXUP_LENOVO_EAPD), SND_PCI_QUIRK(0x1b7d, 0xa831, Ordissimo EVE2 , ALC269VB_FIXUP_ORDISSIMO_EVE2), /* Also known as Malata PC-B1303 */ -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1213055 Title: Limit mic boost on three Thinkpad machines To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1213055/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1195597] Re: [PATCH] ALSA: hda - Yet another Dell headset mic quirk
At Fri, 28 Jun 2013 08:53:34 +0200, David Henningsson wrote: This quirk is needed for the headset mic to work on this Dell machine. BugLink: https://bugs.launchpad.net/bugs/1195597 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c |1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index ae12111..6d7041d 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3509,6 +3509,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1028, 0x0606, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0608, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0609, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x0613, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x103c, 0x1586, HP, ALC269_FIXUP_HP_MUTE_LED_MIC2), SND_PCI_QUIRK(0x103c, 0x18e6, HP, ALC269_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x1973, HP Pavilion, ALC269_FIXUP_HP_MUTE_LED_MIC1), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1195597 Title: Yet another Dell headset To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1195597/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1195636] Re: [PATCH] ALSA: hda - Guess what, it's two more Dell headset mic quirks
At Fri, 28 Jun 2013 11:09:56 +0200, David Henningsson wrote: Add two more machines that need quirks for headset mics to work. Tested-by: Shawn Wang shawn.w...@canonical.com BugLink: https://bugs.launchpad.net/bugs/1195636 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied this one, too. Takashi --- sound/pci/hda/patch_realtek.c |2 ++ 1 file changed, 2 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 6d7041d..86c2406 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3506,6 +3506,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1028, 0x05f5, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05f6, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x05f8, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x05f9, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), + SND_PCI_QUIRK(0x1028, 0x05fb, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0606, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0608, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), SND_PCI_QUIRK(0x1028, 0x0609, Dell, ALC269_FIXUP_DELL1_MIC_NO_PRESENCE), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1195636 Title: Headset support on two more Dell machines To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1195636/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1198030] Re: [PATCH] ALSA: hda - Headphone mic support for an Asus/Conexant device
At Tue, 16 Jul 2013 11:48:10 +0200, David Henningsson wrote: This Conexant codec has a single jack that can be used as either headphone or mic (but not headset). The existing hp_mic functionality does not apply here, because the mic and the HP are on separate pins. Hence make a lighter version of what has been earlier done for Realtek codecs. BugLink: https://bugs.launchpad.net/bugs/1198030 Tested-by: Franz Hsieh franz.hs...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_conexant.c | 79 +++- 1 file changed, 78 insertions(+), 1 deletion(-) diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index de00ce1..4edd2d0 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c @@ -66,6 +66,8 @@ struct conexant_spec { hda_nid_t eapds[4]; bool dynamic_eapd; + unsigned int parse_flags; /* flag for snd_hda_parse_pin_defcfg() */ + #ifdef ENABLE_CXT_STATIC_QUIRKS const struct snd_kcontrol_new *mixers[5]; int num_mixers; @@ -3200,6 +3202,9 @@ static int cx_auto_init(struct hda_codec *codec) snd_hda_gen_init(codec); if (!spec-dynamic_eapd) cx_auto_turn_eapd(codec, spec-num_eapds, spec-eapds, true); + + snd_hda_apply_fixup(codec, HDA_FIXUP_ACT_INIT); + return 0; } @@ -3224,6 +3229,8 @@ enum { CXT_PINCFG_LEMOTE_A1205, CXT_FIXUP_STEREO_DMIC, CXT_FIXUP_INC_MIC_BOOST, + CXT_FIXUP_HEADPHONE_MIC_PIN, + CXT_FIXUP_HEADPHONE_MIC, }; static void cxt_fixup_stereo_dmic(struct hda_codec *codec, @@ -3246,6 +3253,59 @@ static void cxt5066_increase_mic_boost(struct hda_codec *codec, (0 AC_AMPCAP_MUTE_SHIFT)); } +static void cxt_update_headset_mode(struct hda_codec *codec) +{ + /* The verbs used in this function were tested on a Conexant CX20751/2 codec. */ + int i; + bool mic_mode = false; + struct conexant_spec *spec = codec-spec; + struct auto_pin_cfg *cfg = spec-gen.autocfg; + + hda_nid_t mux_pin = spec-gen.imux_pins[spec-gen.cur_mux[0]]; + + for (i = 0; i cfg-num_inputs; i++) + if (cfg-inputs[i].pin == mux_pin) { + mic_mode = !!cfg-inputs[i].is_headphone_mic; + break; + } + + if (mic_mode) { + snd_hda_codec_write_cache(codec, 0x1c, 0, 0x410, 0x7c); /* enable merged mode for analog int-mic */ + spec-gen.hp_jack_present = false; + } else { + snd_hda_codec_write_cache(codec, 0x1c, 0, 0x410, 0x54); /* disable merged mode for analog int-mic */ + spec-gen.hp_jack_present = snd_hda_jack_detect(codec, spec-gen.autocfg.hp_pins[0]); + } + + snd_hda_gen_update_outputs(codec); +} + +static void cxt_update_headset_mode_hook(struct hda_codec *codec, + struct snd_ctl_elem_value *ucontrol) +{ + cxt_update_headset_mode(codec); +} + +static void cxt_fixup_headphone_mic(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + struct conexant_spec *spec = codec-spec; + + switch (action) { + case HDA_FIXUP_ACT_PRE_PROBE: + spec-parse_flags |= HDA_PINCFG_HEADPHONE_MIC; + break; + case HDA_FIXUP_ACT_PROBE: + spec-gen.cap_sync_hook = cxt_update_headset_mode_hook; + spec-gen.automute_hook = cxt_update_headset_mode; + break; + case HDA_FIXUP_ACT_INIT: + cxt_update_headset_mode(codec); + break; + } +} + + /* ThinkPad X200 co with cxt5051 */ static const struct hda_pintbl cxt_pincfg_lenovo_x200[] = { { 0x16, 0x042140ff }, /* HP (seq# overridden) */ @@ -3302,6 +3362,19 @@ static const struct hda_fixup cxt_fixups[] = { .type = HDA_FIXUP_FUNC, .v.func = cxt5066_increase_mic_boost, }, + [CXT_FIXUP_HEADPHONE_MIC_PIN] = { + .type = HDA_FIXUP_PINS, + .chained = true, + .chain_id = CXT_FIXUP_HEADPHONE_MIC, + .v.pins = (const struct hda_pintbl[]) { + { 0x18, 0x03a1913d }, /* use as headphone mic, without its own jack detect */ + { } + } + }, + [CXT_FIXUP_HEADPHONE_MIC] = { + .type = HDA_FIXUP_FUNC, + .v.func = cxt_fixup_headphone_mic, + }, }; static const struct snd_pci_quirk cxt5051_fixups[] = { @@ -3311,6 +3384,7 @@ static const struct snd_pci_quirk cxt5051_fixups[] = { static const struct snd_pci_quirk cxt5066_fixups[] = { SND_PCI_QUIRK(0x1025, 0x0543, Acer Aspire One 522, CXT_FIXUP_STEREO_DMIC), + SND_PCI_QUIRK(0x1043, 0x138d, Asus, CXT_FIXUP_HEADPHONE_MIC_PIN),
[Bug 1034779] Re: [PATCH] ALSA: hda - Fix pop noise in headphones on S3 for Asus X55A, X55V
At Thu, 9 Aug 2012 10:35:27 +0200, David Henningsson wrote: To turn off pin control for the pin was tested, and helped against this issue. BugLink: https://bugs.launchpad.net/bugs/1034779 Tested-by: Chih-Hsyuan Ho chih...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_via.c |8 1 file changed, 8 insertions(+) Alsa-info at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1034779/+attachment/3254105/+files/asus-x55a-alsa-info.log diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index 80d90cb..c9484fe 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c @@ -1752,6 +1752,14 @@ static int via_suspend(struct hda_codec *codec) { struct via_spec *spec = codec-spec; vt1708_stop_hp_work(spec); + + if (spec-codec_type == VT1802) { + /* Fix pop noise on headphones */ + int i; + for (i = 0; i spec-autocfg.hp_outs; i++) + snd_hda_set_pin_ctl(codec, spec-autocfg.hp_pins[0], 0); Shouldn't this be spec-autocfg.hp_pins[i]? thanks, Takashi + } + return 0; } #endif -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1034779 Title: [Asus X55A, X55V] Pop noise in headphones on S3 suspend To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1034779/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1034779] Re: [PATCH] ALSA: hda - Fix pop noise in headphones on S3 for Asus X55A, X55V
At Thu, 9 Aug 2012 10:56:12 +0200, David Henningsson wrote: To turn off pin control for the pin was tested, and helped against this issue. BugLink: https://bugs.launchpad.net/bugs/1034779 Tested-by: Chih-Hsyuan Ho chih...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_via.c |8 1 file changed, 8 insertions(+) Alsa-info at: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1034779/+attachment/3254105/+files/asus-x55a-alsa-info.log diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c index 80d90cb..c9484fe 100644 --- a/sound/pci/hda/patch_via.c +++ b/sound/pci/hda/patch_via.c @@ -1752,6 +1752,14 @@ static int via_suspend(struct hda_codec *codec) { struct via_spec *spec = codec-spec; vt1708_stop_hp_work(spec); + + if (spec-codec_type == VT1802) { + /* Fix pop noise on headphones */ + int i; + for (i = 0; i spec-autocfg.hp_outs; i++) + snd_hda_set_pin_ctl(codec, spec-autocfg.hp_pins[i], 0); + } + return 0; } #endif -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1034779 Title: [Asus X55A, X55V] Pop noise in headphones on S3 suspend To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1034779/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1060729] Re: [PATCH] ALSA: hda - avoid unneccesary indices on Headphone Jack controls
At Wed, 3 Oct 2012 11:12:53 +0200, David Henningsson wrote: In case there is one Headphone Jack and one Dock Headphone Jack, one of them will get an index, even though that is not needed. This patch fixes that issue. BugLink: https://bugs.launchpad.net/bugs/1060729 Signed-off-by: David Henningsson david.hennings...@canonical.com Applied. This one doesn't need to go to stable, right? Takashi --- sound/pci/hda/hda_auto_parser.c | 49 +-- 1 file changed, 37 insertions(+), 12 deletions(-) Alsa-info at: https://launchpadlibrarian.net/118211803/AlsaInfo diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/pci/hda/hda_auto_parser.c index a98e25e..4ec6dc8 100644 --- a/sound/pci/hda/hda_auto_parser.c +++ b/sound/pci/hda/hda_auto_parser.c @@ -498,6 +498,38 @@ static const char *check_output_sfx(hda_nid_t nid, const hda_nid_t *pins, return channel_sfx[i]; } +static const char *check_output_pfx(struct hda_codec *codec, hda_nid_t nid) +{ + unsigned int def_conf = snd_hda_codec_get_pincfg(codec, nid); + int attr = snd_hda_get_input_pin_attr(def_conf); + + /* check the location */ + switch (attr) { + case INPUT_PIN_ATTR_DOCK: + return Dock ; + case INPUT_PIN_ATTR_FRONT: + return Front ; + } + return ; +} + +static int get_hp_label_index(struct hda_codec *codec, hda_nid_t nid, + const hda_nid_t *pins, int num_pins) +{ + int i, j, idx = 0; + + const char *pfx = check_output_pfx(codec, nid); + + i = find_idx_in_nid_list(nid, pins, num_pins); + if (i 0) + return -1; + for (j = 0; j i; j++) + if (pfx == check_output_pfx(codec, pins[j])) + idx++; + + return idx; +} + static int fill_audio_out_name(struct hda_codec *codec, hda_nid_t nid, const struct auto_pin_cfg *cfg, const char *name, char *label, int maxlen, @@ -505,20 +537,13 @@ static int fill_audio_out_name(struct hda_codec *codec, hda_nid_t nid, { unsigned int def_conf = snd_hda_codec_get_pincfg(codec, nid); int attr = snd_hda_get_input_pin_attr(def_conf); - const char *pfx = , *sfx = ; + const char *pfx, *sfx = ; /* handle as a speaker if it's a fixed line-out */ if (!strcmp(name, Line Out) attr == INPUT_PIN_ATTR_INT) name = Speaker; - /* check the location */ - switch (attr) { - case INPUT_PIN_ATTR_DOCK: - pfx = Dock ; - break; - case INPUT_PIN_ATTR_FRONT: - pfx = Front ; - break; - } + pfx = check_output_pfx(codec, nid); + if (cfg) { /* try to give a unique suffix if needed */ sfx = check_output_sfx(nid, cfg-line_out_pins, cfg-line_outs, @@ -528,8 +553,8 @@ static int fill_audio_out_name(struct hda_codec *codec, hda_nid_t nid, indexp); if (!sfx) { /* don't add channel suffix for Headphone controls */ - int idx = find_idx_in_nid_list(nid, cfg-hp_pins, -cfg-hp_outs); + int idx = get_hp_label_index(codec, nid, cfg-hp_pins, + cfg-hp_outs); if (idx = 0) *indexp = idx; sfx = ; -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1060729 Title: [Lenovo X200s] Headphone Jacks state error To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1060729/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1059523] Re: [PATCH] ALSA: hda - fix indices on boost volume on Conexant
At Tue, 2 Oct 2012 10:14:23 +0200, David Henningsson wrote: After the recent patch ALSA: hda - use both input paths on Conexant auto parser suddenly we can have more than one Mic Boost, this happened on Acer Aspire One 722. Therefore we must add the possibility to put an index on this Mic Boost just as we do for the other Mic Boost earlier in the same function. BugLink: https://bugs.launchpad.net/bugs/1059523 Signed-off-by: David Henningsson david.hennings...@canonical.com Applied, thanks. Takashi --- sound/pci/hda/patch_conexant.c |2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index c03d3b8..c11ad8a 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c @@ -4273,7 +4273,7 @@ static int cx_auto_add_boost_volume(struct hda_codec *codec, int idx, if (get_wcaps(codec, mux) AC_WCAP_OUT_AMP) { spec-imux_info[idx].boost = mux; - return cx_auto_add_volume(codec, label, Boost, 0, + return cx_auto_add_volume(codec, label, Boost, cidx, mux, HDA_OUTPUT); } return 0; -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1059523 Title: [Acer Aspire One 722] Broken support of Intel HDA in 3.5.0-16 kernel To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1059523/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 886975] Re: [PATCH] ALSA: hda - Fix clicking noise on Thinkpad T61/R61i
At Wed, 12 Dec 2012 18:02:04 +0100, David Henningsson wrote: The bug reporter reports that setting the speaker pin to D3 before turning off its pinctl fixes the clicking noise on powersave for Thinkpad T61. Thanks to c4pp4 for doing most of the work with this bug, including reporting and testing, and writing preliminary patches. BugLink: https://bugs.launchpad.net/bugs/886975 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_conexant.c | 36 1 file changed, 32 insertions(+), 4 deletions(-) Note: c4pp4 pointed out that in his case, only the speaker needed to go to D3 before pinctl, but noticed no regressions from the below implementation, so I made the fixup more generic (easier to reuse later). Well, if going to D3 is already achieved there, there is no point to call snd_hda_shutup_pins(). snd_hda_shutup_pins() itself is for reducing the click noise while the codec is going down to D3. Thus, for this particular machine, simply disable snd_hda_shutup_pins() call from suspend, and make D3 call in reboot_notify. Takashi diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index a3a2263..27e6ca7 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c @@ -144,6 +144,7 @@ struct conexant_spec { unsigned int asus:1; unsigned int pin_eapd_ctrls:1; unsigned int fixup_stereo_dmic:1; + unsigned int d3_before_shutup:1; /* Needs speaker to go to D3 before pinctl */ unsigned int adc_switching:1; @@ -558,13 +559,22 @@ static int conexant_build_controls(struct hda_codec *codec) return 0; } -#ifdef CONFIG_PM static int conexant_suspend(struct hda_codec *codec) { + struct conexant_spec *spec = codec-spec; + + if (spec-d3_before_shutup) + snd_hda_codec_set_power_to_all(codec, codec-afg, AC_PWRST_D3, +false); snd_hda_shutup_pins(codec); return 0; } -#endif + +static void conexant_reboot_notify(struct hda_codec *codec) +{ + conexant_suspend(codec); +} + static const struct hda_codec_ops conexant_patch_ops = { .build_controls = conexant_build_controls, @@ -575,7 +585,7 @@ static const struct hda_codec_ops conexant_patch_ops = { #ifdef CONFIG_PM .suspend = conexant_suspend, #endif - .reboot_notify = snd_hda_shutup_pins, + .reboot_notify = conexant_reboot_notify, }; #ifdef CONFIG_SND_HDA_INPUT_BEEP @@ -4408,7 +4418,7 @@ static const struct hda_codec_ops cx_auto_patch_ops = { #ifdef CONFIG_PM .suspend = conexant_suspend, #endif - .reboot_notify = snd_hda_shutup_pins, + .reboot_notify = conexant_reboot_notify, }; /* @@ -4421,6 +4431,7 @@ enum { CXT_PINCFG_LEMOTE_A1205, CXT_FIXUP_STEREO_DMIC, CXT_FIXUP_INC_MIC_BOOST, + CXT_FIXUP_D3_BEFORE_SHUTUP, }; static void cxt_fixup_stereo_dmic(struct hda_codec *codec, @@ -4430,6 +4441,13 @@ static void cxt_fixup_stereo_dmic(struct hda_codec *codec, spec-fixup_stereo_dmic = 1; } +static void cxt_fixup_d3_before_shutup(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + struct conexant_spec *spec = codec-spec; + spec-d3_before_shutup = 1; +} + static void cxt5066_increase_mic_boost(struct hda_codec *codec, const struct hda_fixup *fix, int action) { @@ -4499,6 +4517,15 @@ static const struct hda_fixup cxt_fixups[] = { .type = HDA_FIXUP_FUNC, .v.func = cxt5066_increase_mic_boost, }, + [CXT_FIXUP_D3_BEFORE_SHUTUP] = { + .type = HDA_FIXUP_FUNC, + .v.func = cxt_fixup_d3_before_shutup, + }, +}; + +static const struct snd_pci_quirk cxt5045_fixups[] = { + SND_PCI_QUIRK(0x17aa, 0x20ac, Lenovo T61/R61i, CXT_FIXUP_D3_BEFORE_SHUTUP), + {} }; static const struct snd_pci_quirk cxt5051_fixups[] = { @@ -4553,6 +4580,7 @@ static int patch_conexant_auto(struct hda_codec *codec) switch (codec-vendor_id) { case 0x14f15045: codec-single_adc_amp = 1; + snd_hda_pick_fixup(codec, NULL, cxt5045_fixups, cxt_fixups); break; case 0x14f15051: add_cx5051_fake_mutes(codec); -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/886975 Title: [Thinkpad R61i/T61] Lenovo sound chip Conexant CX20549 Venice doesn't work correctly. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/886975/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1107477] Re: [PATCH] ALSA: hda - fix inverted internal mic on Acer AOA150/ZG5
At Mon, 28 Jan 2013 05:45:47 +0100, David Henningsson wrote: This patch enables internal mic input on the machine. Cc: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1107477 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c |1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index dc75607..de512c5 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -2363,6 +2363,7 @@ static const struct hda_model_fixup alc268_fixup_models[] = { }; static const struct snd_pci_quirk alc268_fixup_tbl[] = { + SND_PCI_QUIRK(0x1025, 0x015b, Acer AOA 150 (ZG5), ALC268_FIXUP_INV_DMIC), /* below is codec SSID since multiple Toshiba laptops have the * same PCI SSID 1179:ff00 */ -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1107477 Title: Inverted internal mic on Acer AOA150 (ZG5) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1107477/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1096789] Re: [PATCH 1/2] ALSA: hda - add mute LED for HP Pavilion 17 (Realtek codec)
At Mon, 7 Jan 2013 10:51:29 +0100, David Henningsson wrote: The mute LED is in this case connected to the Mic1 VREF. The machine also exposes the following string in BIOS: HP_Mute_LED_0_A, so if more machines are coming, it probably makes sense to try to do something more generic, like for the IDT codec. Interesting. So they still point A as the output pin A, not NID 0x0a. Cc: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1096789 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_realtek.c | 31 ++- 1 file changed, 30 insertions(+), 1 deletion(-) I know this is a copy-paste, but I didn't really find a better and more condensed way to do it. Perhaps if we get a third variation it would make sense to write a more generic version. Yes, we can improve it better later. Also, Alsa-info is available at https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1096789/+attachment/3476010/+files/alsa-info.txt diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 6ee3459..2e6803e 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5992,7 +5992,30 @@ static void alc269_fixup_quanta_mute(struct hda_codec *codec, spec-automute_hook = alc269_quanta_automute; } -/* update mute-LED according to the speaker mute state via mic2 VREF pin */ +/* update mute-LED according to the speaker mute state via mic VREF pin */ Forgot to restore the comment for alc269_fixup_mic2_mute_hook() below? +static void alc269_fixup_mic1_mute_hook(void *private_data, int enabled) +{ + struct hda_codec *codec = private_data; + unsigned int pinval = AC_PINCTL_IN_EN + (enabled ? + AC_PINCTL_VREF_HIZ : AC_PINCTL_VREF_80); + snd_hda_set_pin_ctl_cache(codec, 0x18, pinval); +} + +static void alc269_fixup_mic1_mute(struct hda_codec *codec, +const struct alc_fixup *fix, int action) +{ + struct alc_spec *spec = codec-spec; + switch (action) { + case ALC_FIXUP_ACT_BUILD: + spec-vmaster_mute.hook = alc269_fixup_mic1_mute_hook; + snd_hda_add_vmaster_hook(codec, spec-vmaster_mute, true); + /* fallthru */ + case ALC_FIXUP_ACT_INIT: + snd_hda_sync_vmaster_hook(spec-vmaster_mute); + break; + } +} + static void alc269_fixup_mic2_mute_hook(void *private_data, int enabled) Here... thanks, Takashi { struct hda_codec *codec = private_data; @@ -6043,6 +6066,7 @@ enum { ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC, ALC269VB_FIXUP_DMIC, + ALC269_FIXUP_MIC1_MUTE_LED, ALC269_FIXUP_MIC2_MUTE_LED, ALC269_FIXUP_INV_DMIC, ALC269_FIXUP_LENOVO_DOCK, @@ -6171,6 +6195,10 @@ static const struct alc_fixup alc269_fixups[] = { { } }, }, + [ALC269_FIXUP_MIC1_MUTE_LED] = { + .type = ALC_FIXUP_FUNC, + .v.func = alc269_fixup_mic1_mute, + }, [ALC269_FIXUP_MIC2_MUTE_LED] = { .type = ALC_FIXUP_FUNC, .v.func = alc269_fixup_mic2_mute, @@ -6215,6 +6243,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1025, 0x029b, Acer 1810TZ, ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x1025, 0x0349, Acer AOD260, ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x103c, 0x1586, HP, ALC269_FIXUP_MIC2_MUTE_LED), + SND_PCI_QUIRK(0x103c, 0x1972, HP Pavilion 17, ALC269_FIXUP_MIC1_MUTE_LED), SND_PCI_QUIRK(0x1043, 0x1427, Asus Zenbook UX31E, ALC269VB_FIXUP_DMIC), SND_PCI_QUIRK(0x1043, 0x1517, Asus Zenbook UX31A, ALC269VB_FIXUP_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, Asus G73Jw, ALC269_FIXUP_ASUS_G73JW), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1096789 Title: Broken mute LED on Hp pavilion 17 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1096789/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1096789] Re: [PATCH 1/2] ALSA: hda - add mute LED for HP Pavilion 17 (Realtek codec)
At Mon, 07 Jan 2013 11:53:38 +0100, David Henningsson wrote: [removing stable from CC] On 01/07/2013 11:49 AM, Takashi Iwai wrote: At Mon, 7 Jan 2013 10:51:29 +0100, David Henningsson wrote: The mute LED is in this case connected to the Mic1 VREF. The machine also exposes the following string in BIOS: HP_Mute_LED_0_A, so if more machines are coming, it probably makes sense to try to do something more generic, like for the IDT codec. Interesting. So they still point A as the output pin A, not NID 0x0a. The existing quirk seems old; but I don't know if that one has a BIOS string. Would be interesting to know to have something to compare with. Cc: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1096789 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_realtek.c | 31 ++- 1 file changed, 30 insertions(+), 1 deletion(-) I know this is a copy-paste, but I didn't really find a better and more condensed way to do it. Perhaps if we get a third variation it would make sense to write a more generic version. Yes, we can improve it better later. Also, Alsa-info is available at https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1096789/+attachment/3476010/+files/alsa-info.txt diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 6ee3459..2e6803e 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5992,7 +5992,30 @@ static void alc269_fixup_quanta_mute(struct hda_codec *codec, spec-automute_hook = alc269_quanta_automute; } -/* update mute-LED according to the speaker mute state via mic2 VREF pin */ +/* update mute-LED according to the speaker mute state via mic VREF pin */ Forgot to restore the comment for alc269_fixup_mic2_mute_hook() below? I thought the same comment now could cover both quirks, but I can make one comment for each quirk if that is clearer? Yes, please. It's not so obvious that the comment covers both functions. Takashi +static void alc269_fixup_mic1_mute_hook(void *private_data, int enabled) +{ + struct hda_codec *codec = private_data; + unsigned int pinval = AC_PINCTL_IN_EN + (enabled ? +AC_PINCTL_VREF_HIZ : AC_PINCTL_VREF_80); + snd_hda_set_pin_ctl_cache(codec, 0x18, pinval); +} + +static void alc269_fixup_mic1_mute(struct hda_codec *codec, + const struct alc_fixup *fix, int action) +{ + struct alc_spec *spec = codec-spec; + switch (action) { + case ALC_FIXUP_ACT_BUILD: + spec-vmaster_mute.hook = alc269_fixup_mic1_mute_hook; + snd_hda_add_vmaster_hook(codec, spec-vmaster_mute, true); + /* fallthru */ + case ALC_FIXUP_ACT_INIT: + snd_hda_sync_vmaster_hook(spec-vmaster_mute); + break; + } +} + static void alc269_fixup_mic2_mute_hook(void *private_data, int enabled) Here... thanks, Takashi { struct hda_codec *codec = private_data; @@ -6043,6 +6066,7 @@ enum { ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC, ALC269VB_FIXUP_DMIC, + ALC269_FIXUP_MIC1_MUTE_LED, ALC269_FIXUP_MIC2_MUTE_LED, ALC269_FIXUP_INV_DMIC, ALC269_FIXUP_LENOVO_DOCK, @@ -6171,6 +6195,10 @@ static const struct alc_fixup alc269_fixups[] = { { } }, }, + [ALC269_FIXUP_MIC1_MUTE_LED] = { + .type = ALC_FIXUP_FUNC, + .v.func = alc269_fixup_mic1_mute, + }, [ALC269_FIXUP_MIC2_MUTE_LED] = { .type = ALC_FIXUP_FUNC, .v.func = alc269_fixup_mic2_mute, @@ -6215,6 +6243,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1025, 0x029b, Acer 1810TZ, ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x1025, 0x0349, Acer AOD260, ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x103c, 0x1586, HP, ALC269_FIXUP_MIC2_MUTE_LED), + SND_PCI_QUIRK(0x103c, 0x1972, HP Pavilion 17, ALC269_FIXUP_MIC1_MUTE_LED), SND_PCI_QUIRK(0x1043, 0x1427, Asus Zenbook UX31E, ALC269VB_FIXUP_DMIC), SND_PCI_QUIRK(0x1043, 0x1517, Asus Zenbook UX31A, ALC269VB_FIXUP_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, Asus G73Jw, ALC269_FIXUP_ASUS_G73JW), -- 1.7.9.5 -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1096789 Title: Broken mute LED on Hp pavilion 17 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1096789/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1096789] Re: [PATCH v2] ALSA: hda - add mute LED for HP Pavilion 17 (Realtek codec)
At Mon, 7 Jan 2013 12:03:47 +0100, David Henningsson wrote: The mute LED is in this case connected to the Mic1 VREF. The machine also exposes the following string in BIOS: HP_Mute_LED_0_A, so if more machines are coming, it probably makes sense to try to do something more generic, like for the IDT codec. Cc: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1096789 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied now. Takashi --- sound/pci/hda/patch_realtek.c | 30 ++ 1 file changed, 30 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 6ee3459..71ae23d 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5992,6 +5992,30 @@ static void alc269_fixup_quanta_mute(struct hda_codec *codec, spec-automute_hook = alc269_quanta_automute; } +/* update mute-LED according to the speaker mute state via mic1 VREF pin */ +static void alc269_fixup_mic1_mute_hook(void *private_data, int enabled) +{ + struct hda_codec *codec = private_data; + unsigned int pinval = AC_PINCTL_IN_EN + (enabled ? + AC_PINCTL_VREF_HIZ : AC_PINCTL_VREF_80); + snd_hda_set_pin_ctl_cache(codec, 0x18, pinval); +} + +static void alc269_fixup_mic1_mute(struct hda_codec *codec, +const struct alc_fixup *fix, int action) +{ + struct alc_spec *spec = codec-spec; + switch (action) { + case ALC_FIXUP_ACT_BUILD: + spec-vmaster_mute.hook = alc269_fixup_mic1_mute_hook; + snd_hda_add_vmaster_hook(codec, spec-vmaster_mute, true); + /* fallthru */ + case ALC_FIXUP_ACT_INIT: + snd_hda_sync_vmaster_hook(spec-vmaster_mute); + break; + } +} + /* update mute-LED according to the speaker mute state via mic2 VREF pin */ static void alc269_fixup_mic2_mute_hook(void *private_data, int enabled) { @@ -6043,6 +6067,7 @@ enum { ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC, ALC269VB_FIXUP_DMIC, + ALC269_FIXUP_MIC1_MUTE_LED, ALC269_FIXUP_MIC2_MUTE_LED, ALC269_FIXUP_INV_DMIC, ALC269_FIXUP_LENOVO_DOCK, @@ -6171,6 +6196,10 @@ static const struct alc_fixup alc269_fixups[] = { { } }, }, + [ALC269_FIXUP_MIC1_MUTE_LED] = { + .type = ALC_FIXUP_FUNC, + .v.func = alc269_fixup_mic1_mute, + }, [ALC269_FIXUP_MIC2_MUTE_LED] = { .type = ALC_FIXUP_FUNC, .v.func = alc269_fixup_mic2_mute, @@ -6215,6 +6244,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x1025, 0x029b, Acer 1810TZ, ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x1025, 0x0349, Acer AOD260, ALC269_FIXUP_INV_DMIC), SND_PCI_QUIRK(0x103c, 0x1586, HP, ALC269_FIXUP_MIC2_MUTE_LED), + SND_PCI_QUIRK(0x103c, 0x1972, HP Pavilion 17, ALC269_FIXUP_MIC1_MUTE_LED), SND_PCI_QUIRK(0x1043, 0x1427, Asus Zenbook UX31E, ALC269VB_FIXUP_DMIC), SND_PCI_QUIRK(0x1043, 0x1517, Asus Zenbook UX31A, ALC269VB_FIXUP_DMIC), SND_PCI_QUIRK(0x1043, 0x1a13, Asus G73Jw, ALC269_FIXUP_ASUS_G73JW), -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1096789 Title: Broken mute LED on Hp pavilion 17 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1096789/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 886975] Re: [PATCH] Revert ALSA: hda - Shut up pins at power-saving mode with Conexnat codecs
At Wed, 09 Jan 2013 09:36:24 +0100, David Henningsson wrote: On 01/04/2013 09:49 AM, Takashi Iwai wrote: At Thu, 03 Jan 2013 17:04:15 +0100, David Henningsson wrote: On 12/19/2012 11:38 AM, Takashi Iwai wrote: At Wed, 19 Dec 2012 11:34:46 +0100, David Henningsson wrote: On 12/19/2012 11:24 AM, Takashi Iwai wrote: At Wed, 19 Dec 2012 09:44:47 +0100, David Henningsson wrote: This reverts commit 697c373e34613609cb5450f98b91fefb6e910588. The original patch was meant to remove clicking, but in fact caused even more clicking instead. Thanks to c4pp4 for doing most of the work with this bug. BugLink: https://bugs.launchpad.net/bugs/886975 Signed-off-by: David Henningsson david.hennings...@canonical.com --- @c4pp4: Is this consistent with what you have done to reduce the clicking? Will you recommend upstream Linux to take the patch below? So, it shouldn't be merged yet right now? Now is the last chance for merging it to 3.8-rc1. If we don't have time waiting for c4pp4's confirmation without missing the entire 3.8 cycle, then I think we should merge it. It's no new feature, so it's fine to merge it at any time during 3.8 cycle, even after 3.8-rc1. But such a fix should be merged with Cc to stable, so a bit more tests would be better. Do you have a suggestion on how that should be tested? I have no conexant machines here currently. Well, at best, test 3.8-rc2 with the patch. The content isn't too intrusive so it should suffice for merge. Alternatively, the tester can try older kernel with the same patch. The point is to confirm that the patch really works. This has now been confirmed by c4pp4. Please commit the patch. OK, applied now. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/886975 Title: [Thinkpad R61i/T61] Lenovo sound chip Conexant CX20549 Venice doesn't work correctly. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/886975/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1075882] Re: [RFC PATCH] ALSA: hda - Keep power link on for PantherPoint HDMI
At Mon, 19 Nov 2012 15:14:45 +0100, David Henningsson wrote: On 11/07/2012 09:36 AM, Takashi Iwai wrote: At Wed, 7 Nov 2012 09:22:33 +0100, David Henningsson wrote: On some of the PantherPoint HDMI machines we currently enable, we're seeing trouble with unsol events, i e detecting monitor presence, especially when on battery and after suspend/resume. BugLink: https://bugs.launchpad.net/bugs/1075882 Tested-by: Cyrus Lien cyrus.l...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_hdmi.c |8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) So far this is the workaround we have found to be working. Sometimes, it also seems that cat /proc/asound/cardx/codec#x can also make the HDMI unsol event trigger, so that the problem fixes itself. We have not run any battery life tests to see if this causes more power consumption. Looks safe at least, so I applied to for-next branch to give more testing. If you find a better solution, let me know. Jesse has now done a battery life test, both for idle machine and S3 machine, and both with HDMI connected and HDMI unconnected. All differences in power consumption were within error margins. Given that, should we consider sending this patch to stable? Well, once when it hits to Linus tree. It's in for-next branch, and I don't want to rebase the branch. So, wait for the next merge window, which will happen likely in a couple of weeks. thanks, Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1075882 Title: PantherPoint HDMI - jack detection broken after suspend To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1075882/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1081466] Re: [PATCH] ALSA: hda - Add support for Realtek ALC292
At Wed, 21 Nov 2012 08:57:58 +0100, David Henningsson wrote: We found a new codec ID 292, and that just a simple quirk would enable sound output/input on this ALC292 chip. BugLink: https://bugs.launchpad.net/bugs/1081466 Cc: sta...@vger.kernel.org Tested-by: Acelan Kao acelan@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c |1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 4d26852..f1ca742 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -7099,6 +7099,7 @@ static const struct hda_codec_preset snd_hda_preset_realtek[] = { { .id = 0x10ec0282, .name = ALC282, .patch = patch_alc269 }, { .id = 0x10ec0283, .name = ALC283, .patch = patch_alc269 }, { .id = 0x10ec0290, .name = ALC290, .patch = patch_alc269 }, + { .id = 0x10ec0292, .name = ALC292, .patch = patch_alc269 }, { .id = 0x10ec0861, .rev = 0x100340, .name = ALC660, .patch = patch_alc861 }, { .id = 0x10ec0660, .name = ALC660-VD, .patch = patch_alc861vd }, -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1081466 Title: Missing support for Realtek ALC292 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1081466/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1076840] Re: [PATCH] ALSA: hda - Cirrus: Correctly clear line_out_pins when moving to speaker
At Wed, 21 Nov 2012 10:03:10 +0100, David Henningsson wrote: If this array is not cleared, the jack related code later might fail to create Internal Speaker Phantom Jack on Dell Inspiron 3420 and Dell Vostro 2420. BugLink: https://bugs.launchpad.net/bugs/1076840 Cc: sta...@vger.kernel.org (3.6+) Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_cirrus.c |1 + 1 file changed, 1 insertion(+) Notes: 1) AlsaInfo at https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1076840/+attachment/3428375/+files/AlsaInfo.txt 2) The phantom jack feature was added in Linux 3.6, but was backported to Ubuntu's 3.5 kernel, so should be applied there as well. diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c index f99cbf9..ed98172 100644 --- a/sound/pci/hda/patch_cirrus.c +++ b/sound/pci/hda/patch_cirrus.c @@ -473,6 +473,7 @@ static int parse_output(struct hda_codec *codec) memcpy(cfg-speaker_pins, cfg-line_out_pins, sizeof(cfg-speaker_pins)); cfg-line_outs = 0; + memset(cfg-line_out_pins, 0, sizeof(cfg-line_out_pins)); } return 0; -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1076840 Title: [CS4213, Dell Inspiron 3420] Internal speaker does not show up in Sound settings To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1076840/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 886975] Re: [PATCH] Revert ALSA: hda - Shut up pins at power-saving mode with Conexnat codecs
At Thu, 03 Jan 2013 17:04:15 +0100, David Henningsson wrote: On 12/19/2012 11:38 AM, Takashi Iwai wrote: At Wed, 19 Dec 2012 11:34:46 +0100, David Henningsson wrote: On 12/19/2012 11:24 AM, Takashi Iwai wrote: At Wed, 19 Dec 2012 09:44:47 +0100, David Henningsson wrote: This reverts commit 697c373e34613609cb5450f98b91fefb6e910588. The original patch was meant to remove clicking, but in fact caused even more clicking instead. Thanks to c4pp4 for doing most of the work with this bug. BugLink: https://bugs.launchpad.net/bugs/886975 Signed-off-by: David Henningsson david.hennings...@canonical.com --- @c4pp4: Is this consistent with what you have done to reduce the clicking? Will you recommend upstream Linux to take the patch below? So, it shouldn't be merged yet right now? Now is the last chance for merging it to 3.8-rc1. If we don't have time waiting for c4pp4's confirmation without missing the entire 3.8 cycle, then I think we should merge it. It's no new feature, so it's fine to merge it at any time during 3.8 cycle, even after 3.8-rc1. But such a fix should be merged with Cc to stable, so a bit more tests would be better. Do you have a suggestion on how that should be tested? I have no conexant machines here currently. Well, at best, test 3.8-rc2 with the patch. The content isn't too intrusive so it should suffice for merge. Alternatively, the tester can try older kernel with the same patch. The point is to confirm that the patch really works. thanks, Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/886975 Title: [Thinkpad R61i/T61] Lenovo sound chip Conexant CX20549 Venice doesn't work correctly. To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/886975/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 939161] Re: [PATCH] ALSA: hda - Remove ignore_misc_bit
At Fri, 7 Sep 2012 07:25:44 +0200, David Henningsson wrote: The purpose of this flag is unclear. If the problem is that some machines have broken misc/NO_PRESENCE bits, they should be fixed by pin fixups. In addition, this causes jack detection functionality to be flawed on the M31EI, where there are two jacks without jack detection (which is properly marked as NO_PRESENCE), but due to ignore_misc_bit, these jacks are instead being reported as being present but always unplugged. BugLink: https://bugs.launchpad.net/bugs/939161 Signed-off-by: David Henningsson david.hennings...@canonical.com So this will fix this one case but will break some others certainly. It's a difficult to judge, but more removal is better, so I'll take this. But I still wonder why PulseAudio cares the headphone jack state even though this has only one output at all? Takashi --- sound/pci/hda/hda_auto_parser.c |4 sound/pci/hda/hda_codec.h |1 - sound/pci/hda/hda_jack.c|5 ++--- 3 files changed, 2 insertions(+), 8 deletions(-) diff --git a/sound/pci/hda/hda_auto_parser.c b/sound/pci/hda/hda_auto_parser.c index 4f7d2df..9acd5a9 100644 --- a/sound/pci/hda/hda_auto_parser.c +++ b/sound/pci/hda/hda_auto_parser.c @@ -141,7 +141,6 @@ int snd_hda_parse_pin_defcfg(struct hda_codec *codec, memset(sequences_hp, 0, sizeof(sequences_hp)); assoc_line_out = 0; - codec-ignore_misc_bit = true; end_nid = codec-start_nid + codec-num_nodes; for (nid = codec-start_nid; nid end_nid; nid++) { unsigned int wid_caps = get_wcaps(codec, nid); @@ -157,9 +156,6 @@ int snd_hda_parse_pin_defcfg(struct hda_codec *codec, continue; def_conf = snd_hda_codec_get_pincfg(codec, nid); - if (!(get_defcfg_misc(snd_hda_codec_get_pincfg(codec, nid)) - AC_DEFCFG_MISC_NO_PRESENCE)) - codec-ignore_misc_bit = false; conn = get_defcfg_connect(def_conf); if (conn == AC_JACK_PORT_NONE) continue; diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h index 8fd9f63..ee4ae8e 100644 --- a/sound/pci/hda/hda_codec.h +++ b/sound/pci/hda/hda_codec.h @@ -861,7 +861,6 @@ struct hda_codec { unsigned int no_sticky_stream:1; /* no sticky-PCM stream assignment */ unsigned int pins_shutup:1; /* pins are shut up */ unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */ - unsigned int ignore_misc_bit:1; /* ignore MISC_NO_PRESENCE bit */ unsigned int no_jack_detect:1; /* Machine has no jack-detection */ unsigned int pcm_format_first:1; /* PCM format must be set first */ unsigned int epss:1;/* supporting EPSS? */ diff --git a/sound/pci/hda/hda_jack.c b/sound/pci/hda/hda_jack.c index aaccc02..c9333c9 100644 --- a/sound/pci/hda/hda_jack.c +++ b/sound/pci/hda/hda_jack.c @@ -26,9 +26,8 @@ bool is_jack_detectable(struct hda_codec *codec, hda_nid_t nid) return false; if (!(snd_hda_query_pin_caps(codec, nid) AC_PINCAP_PRES_DETECT)) return false; - if (!codec-ignore_misc_bit - (get_defcfg_misc(snd_hda_codec_get_pincfg(codec, nid)) - AC_DEFCFG_MISC_NO_PRESENCE)) + if (get_defcfg_misc(snd_hda_codec_get_pincfg(codec, nid)) + AC_DEFCFG_MISC_NO_PRESENCE) return false; if (!(get_wcaps(codec, nid) AC_WCAP_UNSOL_CAP)) return false; -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/939161 Title: Hardware not showed in Gnome-Control-Center. - [M31EI Series, Realtek ALC861, Green Headphone Out, Rear] To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/939161/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 939161] Re: [PATCH] ALSA: hda - Remove ignore_misc_bit
At Fri, 07 Sep 2012 13:26:35 +0200, David Henningsson wrote: On 09/07/2012 12:01 PM, Takashi Iwai wrote: At Fri, 7 Sep 2012 07:25:44 +0200, David Henningsson wrote: The purpose of this flag is unclear. If the problem is that some machines have broken misc/NO_PRESENCE bits, they should be fixed by pin fixups. In addition, this causes jack detection functionality to be flawed on the M31EI, where there are two jacks without jack detection (which is properly marked as NO_PRESENCE), but due to ignore_misc_bit, these jacks are instead being reported as being present but always unplugged. BugLink: https://bugs.launchpad.net/bugs/939161 Signed-off-by: David Henningsson david.hennings...@canonical.com So this will fix this one case but will break some others certainly. It's a difficult to judge, but more removal is better, so I'll take this. Ok. Do you have a sense for how many machines that will regress due to this patch? If it is common to set all pins to the wrong value, maybe its the M31EI that is the exception. Maybe a few Acer and ASUS ones with old codecs. Possibly some desktops with unknown mobos might hit, but that's not what I do care so much for now. But I still wonder why PulseAudio cares the headphone jack state even though this has only one output at all? When seeing the system as a whole, there can be other outputs on other cards - HDMI, USB etc. If somebody e g plugs a USB headset in it will be simpler for the user if PulseAudio does not also show the unplugged 3.5 mm jack. OK, but masking it out unconditionally isn't always nice. There are always corner cases... Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/939161 Title: Hardware not showed in Gnome-Control-Center. - [M31EI Series, Realtek ALC861, Green Headphone Out, Rear] To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/939161/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 939161] Re: [PATCH] ALSA: hda - Remove ignore_misc_bit
At Fri, 07 Sep 2012 14:17:58 +0200, David Henningsson wrote: On 09/07/2012 01:59 PM, Takashi Iwai wrote: At Fri, 07 Sep 2012 13:26:35 +0200, David Henningsson wrote: On 09/07/2012 12:01 PM, Takashi Iwai wrote: At Fri, 7 Sep 2012 07:25:44 +0200, David Henningsson wrote: The purpose of this flag is unclear. If the problem is that some machines have broken misc/NO_PRESENCE bits, they should be fixed by pin fixups. In addition, this causes jack detection functionality to be flawed on the M31EI, where there are two jacks without jack detection (which is properly marked as NO_PRESENCE), but due to ignore_misc_bit, these jacks are instead being reported as being present but always unplugged. BugLink: https://bugs.launchpad.net/bugs/939161 Signed-off-by: David Henningsson david.hennings...@canonical.com So this will fix this one case but will break some others certainly. It's a difficult to judge, but more removal is better, so I'll take this. Ok. Do you have a sense for how many machines that will regress due to this patch? If it is common to set all pins to the wrong value, maybe its the M31EI that is the exception. Maybe a few Acer and ASUS ones with old codecs. Possibly some desktops with unknown mobos might hit, but that's not what I do care so much for now. Hrm, ok. I still don't like the idea of regressing machines...maybe this patch needs further research. Well, let's see. I guess a problem will pop up anyway a few kernel release later. People with such machines rarely follow the kernel development soonish. But I still wonder why PulseAudio cares the headphone jack state even though this has only one output at all? When seeing the system as a whole, there can be other outputs on other cards - HDMI, USB etc. If somebody e g plugs a USB headset in it will be simpler for the user if PulseAudio does not also show the unplugged 3.5 mm jack. OK, but masking it out unconditionally isn't always nice. There are always corner cases... Not sure what corner case you mean here, but if you like, you can configure this behaviour in /usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf, causing the jack detection to be ignored if you prefer. And you can quirk a specific machine to use another .conf file based on udev rules. Or is the corner case that ALSA don't give the correct jack detection value? If so I prefer it to be fixed in ALSA ;-) Well, I can think of different cases: BIOS is broken, my hardware is broken and the driver is broken. In such a case, an easier test would be to disable this jack auto-things in PA, rather than fiddling with the pin config and reconfigure the driver, so I hoped there might be an intuitive and easy way to do that. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/939161 Title: Hardware not showed in Gnome-Control-Center. - [M31EI Series, Realtek ALC861, Green Headphone Out, Rear] To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/939161/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 939161] Re: [PATCH] ALSA: hda - Remove ignore_misc_bit
At Fri, 07 Sep 2012 14:47:16 +0200, David Henningsson wrote: On 09/07/2012 02:36 PM, Takashi Iwai wrote: At Fri, 07 Sep 2012 14:17:58 +0200, David Henningsson wrote: On 09/07/2012 01:59 PM, Takashi Iwai wrote: At Fri, 07 Sep 2012 13:26:35 +0200, David Henningsson wrote: On 09/07/2012 12:01 PM, Takashi Iwai wrote: At Fri, 7 Sep 2012 07:25:44 +0200, David Henningsson wrote: The purpose of this flag is unclear. If the problem is that some machines have broken misc/NO_PRESENCE bits, they should be fixed by pin fixups. In addition, this causes jack detection functionality to be flawed on the M31EI, where there are two jacks without jack detection (which is properly marked as NO_PRESENCE), but due to ignore_misc_bit, these jacks are instead being reported as being present but always unplugged. BugLink: https://bugs.launchpad.net/bugs/939161 Signed-off-by: David Henningsson david.hennings...@canonical.com So this will fix this one case but will break some others certainly. It's a difficult to judge, but more removal is better, so I'll take this. Ok. Do you have a sense for how many machines that will regress due to this patch? If it is common to set all pins to the wrong value, maybe its the M31EI that is the exception. Maybe a few Acer and ASUS ones with old codecs. Possibly some desktops with unknown mobos might hit, but that's not what I do care so much for now. Hrm, ok. I still don't like the idea of regressing machines...maybe this patch needs further research. Well, let's see. I guess a problem will pop up anyway a few kernel release later. People with such machines rarely follow the kernel development soonish. No, they complain on Launchpad, three months after the release or so, about how we could be stupid enough to break their systems ;-) But I still wonder why PulseAudio cares the headphone jack state even though this has only one output at all? When seeing the system as a whole, there can be other outputs on other cards - HDMI, USB etc. If somebody e g plugs a USB headset in it will be simpler for the user if PulseAudio does not also show the unplugged 3.5 mm jack. OK, but masking it out unconditionally isn't always nice. There are always corner cases... Not sure what corner case you mean here, but if you like, you can configure this behaviour in /usr/share/pulseaudio/alsa-mixer/paths/analog-output-headphones.conf, causing the jack detection to be ignored if you prefer. And you can quirk a specific machine to use another .conf file based on udev rules. Or is the corner case that ALSA don't give the correct jack detection value? If so I prefer it to be fixed in ALSA ;-) Well, I can think of different cases: BIOS is broken, my hardware is broken and the driver is broken. In such a case, an easier test would be to disable this jack auto-things in PA, rather than fiddling with the pin config and reconfigure the driver, so I hoped there might be an intuitive and easy way to do that. Naah, in all those cases it is ALSA's responsibility to give a correct answer up to PA - and as such, also to provide an intuitive and easy way to disable jack detection if you feel there is a need. IMO. Adjusting a user-space things is much safer than adjusting something in kernel. The former doesn't need a root privilege (if it's done right). Thus for debugging purpose, fiddling with PA at first would be more comfortable than digging with the driver code and BIOS setups. Of course, a permanent fix is a different story. I'm talking about the debuggability. That said, it's not super difficult to comment out a few lines in /usr/share/pulseaudio/alsa-mixer/paths/*.conf, and also, most mixer UIs (e g pavucontrol) still allows you to route audio to an unavailable port. Yes, but some guidelines would be nice to have somewhere explicitly... Also this can be done without being root somehow, right? Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/939161 Title: Hardware not showed in Gnome-Control-Center. - [M31EI Series, Realtek ALC861, Green Headphone Out, Rear] To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/939161/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 939161] Re: [PATCH] ALSA: hda - Remove ignore_misc_bit
At Fri, 07 Sep 2012 16:28:19 +0200, David Henningsson wrote: On 09/07/2012 03:09 PM, Takashi Iwai wrote: At Fri, 07 Sep 2012 14:47:16 +0200, David Henningsson wrote: On 09/07/2012 02:36 PM, Takashi Iwai wrote: At Fri, 07 Sep 2012 14:17:58 +0200, David Henningsson wrote: Or is the corner case that ALSA don't give the correct jack detection value? If so I prefer it to be fixed in ALSA ;-) Well, I can think of different cases: BIOS is broken, my hardware is broken and the driver is broken. In such a case, an easier test would be to disable this jack auto-things in PA, rather than fiddling with the pin config and reconfigure the driver, so I hoped there might be an intuitive and easy way to do that. Naah, in all those cases it is ALSA's responsibility to give a correct answer up to PA - and as such, also to provide an intuitive and easy way to disable jack detection if you feel there is a need. IMO. Adjusting a user-space things is much safer than adjusting something in kernel. The former doesn't need a root privilege (if it's done right). Thus for debugging purpose, fiddling with PA at first would be more comfortable than digging with the driver code and BIOS setups. Of course, a permanent fix is a different story. I'm talking about the debuggability. That said, it's not super difficult to comment out a few lines in /usr/share/pulseaudio/alsa-mixer/paths/*.conf, and also, most mixer UIs (e g pavucontrol) still allows you to route audio to an unavailable port. Yes, but some guidelines would be nice to have somewhere explicitly... Also this can be done without being root somehow, right? Hmm, I'm afraid it's not so easy to turn off PulseAudio's jack detection without being root. Maybe it's possible using some .asoundrc magic? That's bad. asoundrc is equally cryptic like udev rules :) Honestly, can't the whole /usr/share/pulseaudio/* files be specified via an environment variable, or automatically looking at ~/.pulse/alsa-mixer/paths/* or such? Btw - I've never seen this as a practical problem myself. For debugging jack sense problems, I typically triage with 1) amixer contents (PulseAudio or kernel space?) 2) sudo hda-jack-sense-test (hardware or driver?) Asking people to run a sudo command has never been a problem. (but maybe that's a problem in itself - i e that people are not security aware...) Indeed. Anyway, it's way offtopic now :) Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/939161 Title: Hardware not showed in Gnome-Control-Center. - [M31EI Series, Realtek ALC861, Green Headphone Out, Rear] To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/939161/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 939161] Re: [alsa-devel] [PATCH] ALSA: hda - Remove ignore_misc_bit
At Sat, 8 Sep 2012 09:10:14 +0800, Raymond Yau wrote: 2012-9-7 下午1:26 於 David Henningsson david.hennings...@canonical.com 寫道: The purpose of this flag is unclear. If the problem is that some machines have broken misc/NO_PRESENCE bits, they should be fixed by pin fixups. In addition, this causes jack detection functionality to be flawed on the M31EI, where there are two jacks without jack detection (which is properly marked as NO_PRESENCE), but due to ignore_misc_bit, these jacks are instead being reported as being present but always unplugged. BugLink: https://bugs.launchpad.net/bugs/939161 do you mean the commit does not fix the bug? ALSA: hda - add support for Uniwill ECS M31EI notebook This hardware requires same fixup for the node 0x0f like Asus A6Rp. More information: https://bugzilla.redhat.com/show_bug.cgi?id=785417 http://git.kernel.org/?p=linux/kernel/git/tiwai/sound.git;a=commit;h=416846d2b31fc740ed9d5a5ec116964fb43c4358 the real cases are those desktop which does not use hda front audio panel , they just loss the auto mute since there is no jack detect circuit but they can still hear sound from the headphone at anytime do pulseaudio need a phantom port for the front panel headphone and mic without jack detection ? Actually this is one good point. The jack detection isn't always reliably on such old machines, and BIOS cannot know, too. That is, it has to be adjusted by user manually, whether the jack detection is enabled or not. So far, we solved this by providing Auto-Mute Mode mixer switch. But the jack detection controls don't follow this yet. Maybe we can set such a jack control as inactive state when the jack detection is disabled. (And this reminds me that we can cut off Phantom name hack by following the same rule -- just set the control inactive when it has no real detection. But it still appears in control list.) Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/939161 Title: Hardware not showed in Gnome-Control-Center. - [M31EI Series, Realtek ALC861, Green Headphone Out, Rear] To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/939161/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1040030] Re: [PATCH] ALSA: hda - fix broken HDMI jack detection after S3
At Wed, 22 Aug 2012 14:01:41 +0200, David Henningsson wrote: The HDMI codec (an NVIDIA one in this case) forgot that its pins were unsol enabled, while it was suspended. Therefore jack detection was broken after S3. With this patch, we reenable the unsol events on resume, and also do an extra check afterwards, to see if the HDMI monitor was plugged/unplugged while in S3. Cc: sta...@kernel.org (3.3+) BugLink: https://bugs.launchpad.net/bugs/1040030 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_hdmi.c | 13 + 1 file changed, 13 insertions(+) diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 8f23374..6a3ac05 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -1315,6 +1315,16 @@ static int generic_hdmi_init(struct hda_codec *codec) return 0; } +#ifdef CONFIG_PM +static int generic_hdmi_resume(struct hda_codec *codec) +{ + snd_hda_codec_resume_cache(codec); + snd_hda_jack_set_dirty_all(codec); + snd_hda_jack_report_sync(codec); + return 0; Hm, is this really needed? snd_hda_jack_set_dirty_all() is already called in hda_call_codec_resume(), and snd_hda_jack_report_sync() is called in the init callback. Takashi +} +#endif + static void generic_hdmi_free(struct hda_codec *codec) { struct hdmi_spec *spec = codec-spec; @@ -1338,6 +1348,9 @@ static const struct hda_codec_ops generic_hdmi_patch_ops = { .build_pcms = generic_hdmi_build_pcms, .build_controls = generic_hdmi_build_controls, .unsol_event= hdmi_unsol_event, +#ifdef CONFIG_PM + .resume = generic_hdmi_resume, +#endif }; static int patch_generic_hdmi(struct hda_codec *codec) -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1040030 Title: HDMI jack detection broken after suspend/resume To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1040030/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1040030] Re: [PATCH] ALSA: hda - fix broken HDMI jack detection after S3
At Wed, 22 Aug 2012 14:39:17 +0200, David Henningsson wrote: On 08/22/2012 02:22 PM, Takashi Iwai wrote: At Wed, 22 Aug 2012 14:01:41 +0200, David Henningsson wrote: The HDMI codec (an NVIDIA one in this case) forgot that its pins were unsol enabled, while it was suspended. Therefore jack detection was broken after S3. With this patch, we reenable the unsol events on resume, and also do an extra check afterwards, to see if the HDMI monitor was plugged/unplugged while in S3. Cc: sta...@kernel.org (3.3+) BugLink: https://bugs.launchpad.net/bugs/1040030 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_hdmi.c | 13 + 1 file changed, 13 insertions(+) diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 8f23374..6a3ac05 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -1315,6 +1315,16 @@ static int generic_hdmi_init(struct hda_codec *codec) return 0; } +#ifdef CONFIG_PM +static int generic_hdmi_resume(struct hda_codec *codec) +{ + snd_hda_codec_resume_cache(codec); + snd_hda_jack_set_dirty_all(codec); + snd_hda_jack_report_sync(codec); + return 0; Hm, is this really needed? snd_hda_jack_set_dirty_all() is already called in hda_call_codec_resume(), and snd_hda_jack_report_sync() is called in the init callback. The tester (who has the hardware) has gone for the day, so I can't really verify different scenarios right now, but after having looked at hda_call_codec_resume I see what you mean... I do notice one difference though - the order. snd_hda_codec_resume_cache, which is what writes the unsol_enable verbs, should probably be before the set_dirty_all / report_sync. If not for anything else, so for the race condition of somebody plugging/unplugging the monitor after checking the jack but before the unsol is enabled. Calling snd_hda_jack_report_sync() in init means that all jacks are checked at first, then the caches are resumed. So this won't change ENABLE_UNSOL verb setups. The bug report doesn't give any details, so it's hard to guess what actually doesn't work. alsa-info.sh output before and after suspend would be helpful to understand. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1040030 Title: HDMI jack detection broken after suspend/resume To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1040030/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1040030] Re: [PATCH] ALSA: hda - fix broken HDMI jack detection after S3
At Wed, 22 Aug 2012 15:46:59 +0200, David Henningsson wrote: On 08/22/2012 02:58 PM, Takashi Iwai wrote: At Wed, 22 Aug 2012 14:39:17 +0200, David Henningsson wrote: On 08/22/2012 02:22 PM, Takashi Iwai wrote: At Wed, 22 Aug 2012 14:01:41 +0200, David Henningsson wrote: The HDMI codec (an NVIDIA one in this case) forgot that its pins were unsol enabled, while it was suspended. Therefore jack detection was broken after S3. With this patch, we reenable the unsol events on resume, and also do an extra check afterwards, to see if the HDMI monitor was plugged/unplugged while in S3. Cc: sta...@kernel.org (3.3+) BugLink: https://bugs.launchpad.net/bugs/1040030 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_hdmi.c | 13 + 1 file changed, 13 insertions(+) diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 8f23374..6a3ac05 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -1315,6 +1315,16 @@ static int generic_hdmi_init(struct hda_codec *codec) return 0; } +#ifdef CONFIG_PM +static int generic_hdmi_resume(struct hda_codec *codec) +{ +snd_hda_codec_resume_cache(codec); +snd_hda_jack_set_dirty_all(codec); +snd_hda_jack_report_sync(codec); +return 0; Hm, is this really needed? snd_hda_jack_set_dirty_all() is already called in hda_call_codec_resume(), and snd_hda_jack_report_sync() is called in the init callback. The tester (who has the hardware) has gone for the day, so I can't really verify different scenarios right now, but after having looked at hda_call_codec_resume I see what you mean... I do notice one difference though - the order. snd_hda_codec_resume_cache, which is what writes the unsol_enable verbs, should probably be before the set_dirty_all / report_sync. If not for anything else, so for the race condition of somebody plugging/unplugging the monitor after checking the jack but before the unsol is enabled. Calling snd_hda_jack_report_sync() in init means that all jacks are checked at first, then the caches are resumed. So this won't change ENABLE_UNSOL verb setups. I'm not sure I'm following. Here's the order in hda_call_codec_resume: snd_hda_jack_set_dirty_all() generic_hdmi_init - snd_hda_jack_report_sync() - get_pin_sense snd_hda_codec_resume_cache() - set_unsol_enable With the (theoretical?) race condition being a change of pin sense between snd_hda_jack_report_sync() and snd_hda_codec_resume_cache(), which will not be picked up. In that race, yes. But this should be irrelevant with this bug :) The patch changed the order to: snd_hda_codec_resume_cache() - set_unsol_enable snd_hda_jack_set_dirty_all() snd_hda_jack_report_sync() - get_pin_sense Which eliminates that race condition. Well, what I'm thinking now is rather to call snd_hda_jack_report_sync() generically in hda_call_codec_resume(). The call doesn't have to be in all places. Ditto for the initialization case. It'll clean up many lines. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1040030 Title: HDMI jack detection broken after suspend/resume To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1040030/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1040077] Re: [PATCH] ALSA: hda - Do not set GPIOs for speakers on IDT if there are no speakers
At Wed, 22 Aug 2012 16:10:43 +0200, David Henningsson wrote: This fixes an issue with a machine where there were no speakers, but GPIO0 had to be data=1 for the headphone to be functioning. I'm not sure if we need a more advanced patch to solve all possible cases, but if so, this patch would still provide a minor optimisation. BugLink: https://bugs.launchpad.net/bugs/1040077 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied now. Takashi --- sound/pci/hda/patch_sigmatel.c |3 +++ 1 file changed, 3 insertions(+) The alsa-info for this machine can not be released yet, sorry. diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c index ea5775a..3edd73c 100644 --- a/sound/pci/hda/patch_sigmatel.c +++ b/sound/pci/hda/patch_sigmatel.c @@ -4543,6 +4543,9 @@ static void stac92xx_line_out_detect(struct hda_codec *codec, struct auto_pin_cfg *cfg = spec-autocfg; int i; + if (cfg-speaker_outs == 0) + return; + for (i = 0; i cfg-line_outs; i++) { if (presence) break; -- 1.7.9.5 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1040077 Title: Do not set GPIOs for speakers on IDT if there are no speakers To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1040077/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1040030] Re: [PATCH] ALSA: hda - fix broken HDMI jack detection after S3
At Wed, 22 Aug 2012 16:27:35 +0200, David Henningsson wrote: On 08/22/2012 03:52 PM, Takashi Iwai wrote: At Wed, 22 Aug 2012 15:46:59 +0200, David Henningsson wrote: On 08/22/2012 02:58 PM, Takashi Iwai wrote: At Wed, 22 Aug 2012 14:39:17 +0200, David Henningsson wrote: On 08/22/2012 02:22 PM, Takashi Iwai wrote: At Wed, 22 Aug 2012 14:01:41 +0200, David Henningsson wrote: The HDMI codec (an NVIDIA one in this case) forgot that its pins were unsol enabled, while it was suspended. Therefore jack detection was broken after S3. With this patch, we reenable the unsol events on resume, and also do an extra check afterwards, to see if the HDMI monitor was plugged/unplugged while in S3. Cc: sta...@kernel.org (3.3+) BugLink: https://bugs.launchpad.net/bugs/1040030 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_hdmi.c | 13 + 1 file changed, 13 insertions(+) diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c index 8f23374..6a3ac05 100644 --- a/sound/pci/hda/patch_hdmi.c +++ b/sound/pci/hda/patch_hdmi.c @@ -1315,6 +1315,16 @@ static int generic_hdmi_init(struct hda_codec *codec) return 0; } +#ifdef CONFIG_PM +static int generic_hdmi_resume(struct hda_codec *codec) +{ + snd_hda_codec_resume_cache(codec); + snd_hda_jack_set_dirty_all(codec); + snd_hda_jack_report_sync(codec); + return 0; Hm, is this really needed? snd_hda_jack_set_dirty_all() is already called in hda_call_codec_resume(), and snd_hda_jack_report_sync() is called in the init callback. The tester (who has the hardware) has gone for the day, so I can't really verify different scenarios right now, but after having looked at hda_call_codec_resume I see what you mean... I do notice one difference though - the order. snd_hda_codec_resume_cache, which is what writes the unsol_enable verbs, should probably be before the set_dirty_all / report_sync. If not for anything else, so for the race condition of somebody plugging/unplugging the monitor after checking the jack but before the unsol is enabled. Calling snd_hda_jack_report_sync() in init means that all jacks are checked at first, then the caches are resumed. So this won't change ENABLE_UNSOL verb setups. I'm not sure I'm following. Here's the order in hda_call_codec_resume: snd_hda_jack_set_dirty_all() generic_hdmi_init - snd_hda_jack_report_sync() - get_pin_sense snd_hda_codec_resume_cache() - set_unsol_enable With the (theoretical?) race condition being a change of pin sense between snd_hda_jack_report_sync() and snd_hda_codec_resume_cache(), which will not be picked up. In that race, yes. But this should be irrelevant with this bug :) Yes, the bug needs further verification. The patch changed the order to: snd_hda_codec_resume_cache() - set_unsol_enable snd_hda_jack_set_dirty_all() snd_hda_jack_report_sync() - get_pin_sense Which eliminates that race condition. Well, what I'm thinking now is rather to call snd_hda_jack_report_sync() generically in hda_call_codec_resume(). The call doesn't have to be in all places. Ditto for the initialization case. It'll clean up many lines. Fine with me - the more code being generic, the better. OK, here we go. Takashi === From: Takashi Iwai ti...@suse.de Subject: [PATCH] ALSA: hda - Call snd_hda_jack_report_sync() generically in hda_codec.c Instead of calling the jack sync in the init callback of each codec, call it generically at initialization and resume. By calling it at the last of resume sequence, a possible race between the jack sync and the unsol event enablement in the current code will be closed, too. Signed-off-by: Takashi Iwai ti...@suse.de --- sound/pci/hda/hda_codec.c | 2 ++ sound/pci/hda/patch_cirrus.c | 2 -- sound/pci/hda/patch_conexant.c | 1 - sound/pci/hda/patch_hdmi.c | 2 -- sound/pci/hda/patch_realtek.c | 2 -- sound/pci/hda/patch_sigmatel.c | 2 -- sound/pci/hda/patch_via.c | 1 - 7 files changed, 2 insertions(+), 10 deletions(-) diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c index a6c34dc..4efd271 100644 --- a/sound/pci/hda/hda_codec.c +++ b/sound/pci/hda/hda_codec.c @@ -3618,6 +3618,7 @@ static void hda_call_codec_resume(struct hda_codec *codec) snd_hda_codec_resume_amp(codec); snd_hda_codec_resume_cache(codec); } + snd_hda_jack_report_sync(codec); snd_hda_power_down(codec); /* flag down before returning */ } #endif /* CONFIG_PM */ @@ -3663,6 +3664,7 @@ int snd_hda_codec_build_controls(struct hda_codec *codec) err = codec-patch_ops.build_controls(codec); if (err 0) return err; + snd_hda_jack_report_sync(codec); /* call at the last init point */ return 0; } diff --git a/sound/pci/hda
[Bug 1297581] Re: [PATCH] ALSA: hda - Add another headset pin quirk for some Dell machines
At Fri, 27 Jun 2014 08:41:59 +0200, David Henningsson wrote: Another quirk to make the headset mic work on some new Dell machines. Cc: Hui Wang hui.w...@canonical.com BugLink: https://bugs.launchpad.net/bugs/1297581 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c | 12 1 file changed, 12 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 60bf5ee..4ebbe03 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5199,6 +5199,18 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { {0x1b, 0x41f0}, {0x1d, 0x4071}, {0x1e, 0x41f0}), + SND_HDA_PIN_QUIRK(0x10ec0293, 0x1028, Dell, ALC293_FIXUP_DELL1_MIC_NO_PRESENCE, + {0x12, 0x4000}, + {0x13, 0x90a60140}, + {0x14, 0x90170110}, + {0x15, 0x0221401f}, + {0x16, 0x41f0}, + {0x18, 0x41f0}, + {0x19, 0x41f0}, + {0x1a, 0x41f0}, + {0x1b, 0x41f0}, + {0x1d, 0x4071}, + {0x1e, 0x41f0}), {} }; -- 1.9.1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1297581 Title: headset mic can't be detected on the machines with alc codec To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1297581/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
Re: [Bug 1357928] Re: [HDA-Intel - HDA Intel MID, playback] volume slider problem - Slide to bottom and sound stays off even when slider moved up again
At Tue, 19 Aug 2014 12:44:59 -, Clemens Ladisch wrote: Apparently, the minimum-is-mute information got lost in commit http://git.kernel.org/linus/36c9db7a1aca (Use generic parser for STAC/IDT codec driver). It's currently set only to vmaster, so Master has it, but speaker and headphone don't have them yet. I'll cook up some fix later. Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1357928 Title: [HDA-Intel - HDA Intel MID, playback] volume slider problem - Slide to bottom and sound stays off even when slider moved up again To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1357928/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1334950] Re: [PATCH] ALSA: hda - Add mute LED pin quirk for HP 15 touchsmart
At Tue, 19 Aug 2014 15:38:44 +0200, David Henningsson wrote: Backport of commit 423044744aa4c250058e976474856a7a41972182. This makes the mute LED work on a HP 15 touchsmart machine (and a HP 14 touchsmart machine). BugLink: https://bugs.launchpad.net/bugs/1334950 Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_realtek.c | 2 ++ 1 file changed, 2 insertions(+) Resend of a patch I tried to send too early. The original commit has now reached Linus's tree (it's in 3.17-rc1). Hm, the patch looks fairly different from the original commit. Is this because of lack of the new fixup method? Takashi diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 6cbbd98..335ffdf 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4429,6 +4429,8 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x1983, HP Pavilion, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x218b, HP, ALC269_FIXUP_LIMIT_INT_MIC_BOOST_MUTE_LED), /* ALC282 */ + SND_PCI_QUIRK(0x103c, 0x2191, HP Touchsmart 14, ALC269_FIXUP_HP_MUTE_LED_MIC1), + SND_PCI_QUIRK(0x103c, 0x2192, HP Touchsmart 15, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x220d, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x220e, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x220f, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), -- 1.9.1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1334950 Title: [HP 14 Touchsmart][HP 15 Touchsmart] Volume mute LED is not working To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1334950/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1331915] Re: [PATCH] ALSA: hda - Add pin quirk for Dell XPS 15
At Tue, 24 Jun 2014 14:10:47 +0200, David Henningsson wrote: Two bug reporters with Dell XPS 15 report that they need to use the dell-headset-multi model to get the headset mic working. The two bug reporters have different PCI SSID (1028:05fd and 1028:05fe) but this pin quirk matches both. BugLink: https://bugs.launchpad.net/bugs/1331915 Signed-off-by: David Henningsson david.hennings...@canonical.com Applied, thanks. Takashi --- sound/pci/hda/patch_realtek.c | 21 + 1 file changed, 21 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index f52f096..229a189 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -6258,6 +6258,27 @@ static const struct snd_hda_pin_quirk alc662_pin_fixup_tbl[] = { }, .value = ALC668_FIXUP_AUTO_MUTE, }, + { + .codec = 0x10ec0668, + .subvendor = 0x1028, +#ifdef CONFIG_SND_DEBUG_VERBOSE + .name = Dell XPS 15, +#endif + .pins = (const struct hda_pintbl[]) { + {0x12, 0x90a60130}, + {0x14, 0x90170110}, + {0x15, 0x0321101f}, + {0x16, 0x4000}, + {0x18, 0x41f0}, + {0x19, 0x41f0}, + {0x1a, 0x41f0}, + {0x1b, 0x41f0}, + {0x1d, 0x40d6832d}, + {0x1e, 0x41f0}, + {0x1f, 0x41f0}, + }, + .value = ALC668_FIXUP_AUTO_MUTE, + }, {} }; -- 1.9.1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1331915 Title: [XPS 15 9530, Realtek ALC668, Mic, Internal] No autoswitch when headset is plugged in To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1331915/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1319291] Re: [PATCH] ALSA: hda - Add quirk for ABit AA8XE
At Tue, 10 Jun 2014 10:52:50 +0200, David Henningsson wrote: Bios does not set up the pin config default correctly (everything is set to zero). Reporter claims that 6stack-dig and 6stack-automute solve the problem. Alsa-info at http://www.alsa-project.org/db/?f=376c0804cbdde90bcd2cb94799407cb1cacf5d05 BugLink: https://bugs.launchpad.net/bugs/1319291 Reported-by: Stefano Statuti stefano.stat...@hotmail.it Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index d77745a..9c095fa 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -1427,6 +1427,7 @@ static const struct snd_pci_quirk alc880_fixup_tbl[] = { SND_PCI_QUIRK(0x1043, 0x10c3, ASUS W5A, ALC880_FIXUP_ASUS_W5A), SND_PCI_QUIRK(0x1043, 0x1964, ASUS Z71V, ALC880_FIXUP_Z71V), SND_PCI_QUIRK_VENDOR(0x1043, ASUS, ALC880_FIXUP_GPIO1), + SND_PCI_QUIRK(0x147b, 0x1045, ABit AA8XE, ALC880_FIXUP_6ST_AUTOMUTE), SND_PCI_QUIRK(0x1558, 0x5401, Clevo GPIO2, ALC880_FIXUP_GPIO2), SND_PCI_QUIRK_VENDOR(0x1558, Clevo, ALC880_FIXUP_EAPD_COEF), SND_PCI_QUIRK(0x1584, 0x9050, Uniwill, ALC880_FIXUP_UNIWILL_DIG), -- 1.9.1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1319291 Title: [ABit AA8XE] Ubuntu 14.04 NO audio (internal audio device not recognized Dummy Output) To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1319291/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1328587] Re: [PATCH] ALSA: hda - Add quirk for external mic on Lifebook U904
At Fri, 13 Jun 2014 11:15:44 +0200, David Henningsson wrote: According to the bug reporter (Данило Шеган), the external mic starts to work and has proper jack detection if only pin 0x19 is marked properly as an external headset mic. AlsaInfo at https://bugs.launchpad.net/ubuntu/+source/pulseaudio/+bug/1328587/+attachment/4128991/+files/AlsaInfo.txt Cc: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1328587 Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- 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 9c095fa..89af62f 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4246,6 +4246,7 @@ enum { ALC269_FIXUP_HEADSET_MIC, ALC269_FIXUP_QUANTA_MUTE, ALC269_FIXUP_LIFEBOOK, + ALC269_FIXUP_LIFEBOOK_EXTMIC, ALC269_FIXUP_AMIC, ALC269_FIXUP_DMIC, ALC269VB_FIXUP_AMIC, @@ -4383,6 +4384,13 @@ static const struct hda_fixup alc269_fixups[] = { .chained = true, .chain_id = ALC269_FIXUP_QUANTA_MUTE }, + [ALC269_FIXUP_LIFEBOOK_EXTMIC] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x19, 0x01a1903c }, /* headset mic, with jack detect */ + { } + }, + }, [ALC269_FIXUP_AMIC] = { .type = HDA_FIXUP_PINS, .v.pins = (const struct hda_pintbl[]) { @@ -4844,6 +4852,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x104d, 0x9099, Sony VAIO S13, ALC275_FIXUP_SONY_DISABLE_AAMIX), SND_PCI_QUIRK_VENDOR(0x104d, Sony VAIO, ALC269_FIXUP_SONY_VAIO), SND_PCI_QUIRK(0x10cf, 0x1475, Lifebook, ALC269_FIXUP_LIFEBOOK), + SND_PCI_QUIRK(0x10cf, 0x1845, Lifebook U904, ALC269_FIXUP_LIFEBOOK_EXTMIC), SND_PCI_QUIRK(0x17aa, 0x20f2, Thinkpad SL410/510, ALC269_FIXUP_SKU_IGNORE), SND_PCI_QUIRK(0x17aa, 0x215e, Thinkpad L512, ALC269_FIXUP_SKU_IGNORE), SND_PCI_QUIRK(0x17aa, 0x21b8, Thinkpad Edge 14, ALC269_FIXUP_SKU_IGNORE), -- 1.9.1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1328587 Title: [HDA-Intel - HDA Intel PCH, recording] External microphone not recognized To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1328587/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1289730] Re: [RFC PATCH] alsactl: Do not run udev rule before datadir is mounted
At Fri, 13 Jun 2014 11:05:52 +0200, David Henningsson wrote: On 2014-06-13 10:26, Jaroslav Kysela wrote: Date 13.6.2014 10:15, David Henningsson wrote: The 90-alsa-restore.rules udev rule is primarily meant to handle hotplugging, but sometimes it is also run before /usr is mounted, and alsactl restore depends on /usr/share/alsa being present. If /usr/share/alsa is not present, we're so early in the boot process that alsa-restore.service (or upstart equivalent) will run later on. BugLink: https://bugs.launchpad.net/bugs/1289730 Signed-off-by: David Henningsson david.hennings...@canonical.com --- I'm not really sure of all quirks in the boot process, and I haven't tested the patch either, hence the RFC above. Do you think it makes sense? Yes, I think that's ok. Takashi? Should we also add @sbindir@ to the things to test for? It shouldn't harm anything. Could you prepare a new patch? Sure, please find it attached. I was also considering adding something under /var as well, but I didn't do that, because I think it will fall back to an alsactl init in that case (right?), so it still makes some sense to run alsactl without /var. alsactl/90-alsa-restore.rules.in | 2 +- alsactl/Makefile.am | 1 + configure.ac | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/alsactl/90-alsa-restore.rules.in b/alsactl/90-alsa-restore.rules.in index c68119d..c83c6b5 100644 --- a/alsactl/90-alsa-restore.rules.in +++ b/alsactl/90-alsa-restore.rules.in @@ -1,4 +1,4 @@ -ACTION==add, SUBSYSTEM==sound, KERNEL==controlC*, KERNELS!=card*, GOTO=alsa_restore_go +ACTION==add, SUBSYSTEM==sound, KERNEL==controlC*, KERNELS!=card*, TEST==@datadir@, GOTO=alsa_restore_go GOTO=alsa_restore_end LABEL=alsa_restore_go diff --git a/alsactl/Makefile.am b/alsactl/Makefile.am index b862412..afbedb3 100644 --- a/alsactl/Makefile.am +++ b/alsactl/Makefile.am @@ -44,6 +44,7 @@ endif edit = \ $(SED) -r -e 's,@sbindir\@,$(sbindir),g' \ +-e 's,@datadir\@,$(mydatadir),g' \ -e 's,@daemonswitch\@,$(ALSACTL_DAEMONSWITCH),g' \ $ $@ || rm $@ diff --git a/configure.ac b/configure.ac index 7e6894a..a4d2db3 100644 --- a/configure.ac +++ b/configure.ac @@ -292,6 +292,7 @@ AC_DEFINE_UNQUOTED(SOUNDSDIR, $soundsdir, [directory containing sample data]) mydatadir=$dir/alsa AC_DEFINE_UNQUOTED(DATADIR, $mydatadir, [directory containing alsa configuration]) +AC_SUBST(mydatadir) AC_ARG_WITH(testsound, AS_HELP_STRING([--with-testsound=file], [give the path of test sound file for alsaconf]), -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic From 09a4abb5560448eb434a33fc237d578e14666940 Mon Sep 17 00:00:00 2001 From: David Henningsson david.hennings...@canonical.com Date: Fri, 13 Jun 2014 10:04:25 +0200 Subject: [PATCH] alsactl: Do not run udev rule before datadir/sbindir are both mounted Sometimes 90-alsa-restore.rules is run before /usr is mounted, and alsactl restore depends on /usr/share/alsa being present. If /usr/share/alsa is not present, we're so early in the boot process that alsa-restore.service (or upstart equivalent) will run later on. BugLink: https://bugs.launchpad.net/bugs/1289730 Signed-off-by: David Henningsson david.hennings...@canonical.com --- alsactl/90-alsa-restore.rules.in | 2 +- alsactl/Makefile.am | 1 + configure.ac | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/alsactl/90-alsa-restore.rules.in b/alsactl/90-alsa-restore.rules.in index c68119d..80fc043 100644 --- a/alsactl/90-alsa-restore.rules.in +++ b/alsactl/90-alsa-restore.rules.in @@ -1,4 +1,4 @@ -ACTION==add, SUBSYSTEM==sound, KERNEL==controlC*, KERNELS!=card*, GOTO=alsa_restore_go +ACTION==add, SUBSYSTEM==sound, KERNEL==controlC*, KERNELS!=card*, TEST==@sbindir@, TEST==@datadir@, GOTO=alsa_restore_go GOTO=alsa_restore_end IMO, it's better to use @mydatadir@ instead of @datadir@ here and... LABEL=alsa_restore_go diff --git a/alsactl/Makefile.am b/alsactl/Makefile.am index b862412..afbedb3 100644 --- a/alsactl/Makefile.am +++ b/alsactl/Makefile.am @@ -44,6 +44,7 @@ endif edit = \ $(SED) -r -e 's,@sbindir\@,$(sbindir),g' \ + -e 's,@datadir\@,$(mydatadir),g' \ ... here. Otherwise it may be confusing. Other than that, the change looks good to me. Jaroslav, could you fix up quickly in your side? thanks, Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1289730 Title: systemd-udev fails to execute alsactl during start-up if /usr and/or /var are separate volumes To manage notifications about this bug go to:
[Bug 1387128] Re: [PATCH 1/2] ALSA: hda - Set GPIO 4 low for a few HP machines
At Thu, 30 Oct 2014 08:26:01 +0100, David Henningsson wrote: These HP machines needs GPIO 4 low to enable the headphone amplifier. In addition, we still need to control LEDs via vref and GPIO. Cc: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1387128 Tested-by: TienFu Chen tienfu.c...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied both now. Takashi --- sound/pci/hda/patch_realtek.c | 33 + 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 9bc0301..d16d8ec 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -3350,6 +3350,27 @@ static void alc269_fixup_hp_gpio_mic1_led(struct hda_codec *codec, } } +static void alc280_fixup_hp_gpio4(struct hda_codec *codec, +const struct hda_fixup *fix, int action) +{ + /* Like hp_gpio_mic1_led, but also needs GPIO4 low to enable headphone amp */ + struct alc_spec *spec = codec-spec; + static const struct hda_verb gpio_init[] = { + { 0x01, AC_VERB_SET_GPIO_MASK, 0x18 }, + { 0x01, AC_VERB_SET_GPIO_DIRECTION, 0x18 }, + {} + }; + + if (action == HDA_FIXUP_ACT_PRE_PROBE) { + spec-gen.vmaster_mute.hook = alc269_fixup_hp_gpio_mute_hook; + spec-gen.cap_sync_hook = alc269_fixup_hp_cap_mic_mute_hook; + spec-gpio_led = 0; + spec-cap_mute_led_nid = 0x18; + snd_hda_add_verbs(codec, gpio_init); + codec-power_filter = led_power_filter; + } +} + static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec, const struct hda_fixup *fix, int action) { @@ -4217,6 +4238,7 @@ enum { ALC283_FIXUP_BXBT2807_MIC, ALC255_FIXUP_DELL_WMI_MIC_MUTE_LED, ALC282_FIXUP_ASPIRE_V5_PINS, + ALC280_FIXUP_HP_GPIO4, }; static const struct hda_fixup alc269_fixups[] = { @@ -4680,7 +4702,10 @@ static const struct hda_fixup alc269_fixups[] = { { }, }, }, - + [ALC280_FIXUP_HP_GPIO4] = { + .type = HDA_FIXUP_FUNC, + .v.func = alc280_fixup_hp_gpio4, + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -4728,7 +4753,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x22cf, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x22dc, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), SND_PCI_QUIRK(0x103c, 0x22fb, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), - SND_PCI_QUIRK(0x103c, 0x8004, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), + SND_PCI_QUIRK(0x103c, 0x8004, HP, ALC269_FIXUP_HP_GPIO4), /* ALC290 */ SND_PCI_QUIRK(0x103c, 0x221b, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), SND_PCI_QUIRK(0x103c, 0x2221, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), @@ -4742,7 +4767,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x2255, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), SND_PCI_QUIRK(0x103c, 0x2256, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), SND_PCI_QUIRK(0x103c, 0x2257, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), - SND_PCI_QUIRK(0x103c, 0x2258, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), + SND_PCI_QUIRK(0x103c, 0x2258, HP, ALC269_FIXUP_HP_GPIO4), SND_PCI_QUIRK(0x103c, 0x2259, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), SND_PCI_QUIRK(0x103c, 0x225a, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), SND_PCI_QUIRK(0x103c, 0x2260, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), @@ -4751,7 +4776,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x2265, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x2272, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), SND_PCI_QUIRK(0x103c, 0x2273, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), - SND_PCI_QUIRK(0x103c, 0x2277, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), + SND_PCI_QUIRK(0x103c, 0x2277, HP, ALC269_FIXUP_HP_GPIO4), SND_PCI_QUIRK(0x103c, 0x2278, HP, ALC269_FIXUP_HP_GPIO_MIC1_LED), SND_PCI_QUIRK(0x103c, 0x227f, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x2282, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), -- 1.9.1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1387128 Title: Need quirk for headphones to work on a few HP machines To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1387128/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1002952] Re: [PATCH (alsa-lib)] USB-audio: Add five more cards to IEC958 blacklist
At Mon, 17 Nov 2014 11:29:34 +0100, David Henningsson wrote: These devices do not have any IEC958 outputs, so prevent them from being opened. Signed-off-by: David Henningsson david.hennings...@canonical.com Thanks, applied. Takashi --- src/conf/cards/USB-Audio.conf | 5 + 1 file changed, 5 insertions(+) diff --git a/src/conf/cards/USB-Audio.conf b/src/conf/cards/USB-Audio.conf index a6754d9..05e5d09 100644 --- a/src/conf/cards/USB-Audio.conf +++ b/src/conf/cards/USB-Audio.conf @@ -38,10 +38,14 @@ USB-Audio.pcm.iec958_device { # NoiseBlaster 3000 42 # The below don't have digital in/out, so prevent them from being opened. + Andrea PureAudio USB-SA Headset 999 Blue Snowball 999 HP Digital Stereo Headset 999 + GN 9330 999 Logitech Speaker Lapdesk N700 999 + Logitech G35 Headset 999 Logitech USB Headset 999 + Logitech USB Headset H540 999 Logitech Wireless Headset 999 Plantronics GameCom 780 999 Plantronics USB Headset 999 @@ -50,6 +54,7 @@ USB-Audio.pcm.iec958_device { Scarlett 2i2 USB 999 Scarlett 2i4 USB 999 Sennheiser USB headset 999 + SWTOR Gaming Headset by Razer 999 USB Device 0x46d:0x992 999 } -- 1.9.1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1002952 Title: [meta-bug] Invalid extra Digital output S/PDIF device for USB cards To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-lib/+bug/1002952/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
Re: [Bug 1357928] Re: [Studio1747, IDT 92HD73C1X5, playback] volume slider problem - Slide to bottom and sound stays off even when slider moved up again
For the recent kernels, try the patch below. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1357928 Title: [Studio1747, IDT 92HD73C1X5,playback] volume slider problem - Slide to bottom and sound stays off even when slider moved up again To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/alsa-driver/+bug/1357928/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1357928] [PATCH] ALSA: hda - Add TLV_DB_SCALE_MUTE bit for relevant controls
The DACs on Sigmatel/IDT codecs do mute at the lowest volume level, and in the earlier drivers, we passed TLV_DB_SCALE_MUTE bit for each volume control element like Speaker and Headphone as well as Master. Along with the translation to the generic parser, however, the TLV bit was lost for the slave controls (e.g. Speaker) but set only to Master. In theory this should have sufficed, but apps, particularly PA, do care the slave volume bits, so we seem to see a regression in the volume controls. This patch adds a flag to hda_gen_spec to specify the DAC mute feature, and adds the TLV bit properly for all relevant volume controls. Also, the TLV bit for vmaster is set in hda_generic.c, so that we can get rid of all tricks from the codec driver side. As the similar hack is applied to Conexant 5051 stuff, we can get rid of it as well. BugLink: https://bugs.launchpad.net/bugs/1357928 Signed-off-by: Takashi Iwai ti...@suse.de --- sound/pci/hda/hda_generic.c| 9 - sound/pci/hda/hda_generic.h| 1 + sound/pci/hda/patch_conexant.c | 8 ++-- sound/pci/hda/patch_sigmatel.c | 5 + 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/sound/pci/hda/hda_generic.c b/sound/pci/hda/hda_generic.c index b956449ddada..95121e818b4d 100644 --- a/sound/pci/hda/hda_generic.c +++ b/sound/pci/hda/hda_generic.c @@ -31,6 +31,7 @@ #include linux/module.h #include sound/core.h #include sound/jack.h +#include sound/tlv.h #include hda_codec.h #include hda_local.h #include hda_auto_parser.h @@ -1105,6 +1106,7 @@ enum { */ static int assign_out_path_ctls(struct hda_codec *codec, struct nid_path *path) { + struct hda_gen_spec *spec = codec-spec; hda_nid_t nid; unsigned int val; int badness = 0; @@ -1119,6 +1121,8 @@ static int assign_out_path_ctls(struct hda_codec *codec, struct nid_path *path) nid = look_for_out_vol_nid(codec, path); if (nid) { val = HDA_COMPOSE_AMP_VAL(nid, 3, 0, HDA_OUTPUT); + if (spec-dac_min_mute) + val |= HDA_AMP_VAL_MIN_MUTE; if (is_ctl_used(codec, val, NID_PATH_VOL_CTL)) badness += BAD_SHARED_VOL; else @@ -1880,9 +1884,12 @@ static int parse_output_paths(struct hda_codec *codec) path = snd_hda_get_path_from_idx(codec, spec-out_paths[0]); if (path) spec-vmaster_nid = look_for_out_vol_nid(codec, path); - if (spec-vmaster_nid) + if (spec-vmaster_nid) { snd_hda_set_vmaster_tlv(codec, spec-vmaster_nid, HDA_OUTPUT, spec-vmaster_tlv); + if (spec-dac_min_mute) + spec-vmaster_tlv[3] |= TLV_DB_SCALE_MUTE; + } } /* set initial pinctl targets */ diff --git a/sound/pci/hda/hda_generic.h b/sound/pci/hda/hda_generic.h index bb2dea743986..3f95f1d3f1f8 100644 --- a/sound/pci/hda/hda_generic.h +++ b/sound/pci/hda/hda_generic.h @@ -231,6 +231,7 @@ struct hda_gen_spec { unsigned int add_stereo_mix_input:1; /* add aamix as a capture src */ unsigned int add_jack_modes:1; /* add i/o jack mode enum ctls */ unsigned int power_down_unused:1; /* power down unused widgets */ + unsigned int dac_min_mute:1; /* minimal = mute for DACs */ /* other internal flags */ unsigned int no_analog:1; /* digital I/O only */ diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c index 6f2fa838b635..c0b03c112187 100644 --- a/sound/pci/hda/patch_conexant.c +++ b/sound/pci/hda/patch_conexant.c @@ -26,7 +26,6 @@ #include linux/module.h #include sound/core.h #include sound/jack.h -#include sound/tlv.h #include hda_codec.h #include hda_local.h @@ -779,6 +778,7 @@ static const struct hda_model_fixup cxt5066_fixup_models[] = { */ static void add_cx5051_fake_mutes(struct hda_codec *codec) { + struct conexant_spec *spec = codec-spec; static hda_nid_t out_nids[] = { 0x10, 0x11, 0 }; @@ -788,6 +788,7 @@ static void add_cx5051_fake_mutes(struct hda_codec *codec) snd_hda_override_amp_caps(codec, *p, HDA_OUTPUT, AC_AMPCAP_MIN_MUTE | query_amp_caps(codec, *p, HDA_OUTPUT)); + spec-gen.dac_min_mute = true; } static int patch_conexant_auto(struct hda_codec *codec) @@ -860,11 +861,6 @@ static int patch_conexant_auto(struct hda_codec *codec) if (err 0) goto error; - if (codec-vendor_id == 0x14f15051) { - /* minimum value is actually mute */ - spec-gen.vmaster_tlv[3] |= TLV_DB_SCALE_MUTE; - } - codec-patch_ops = cx_auto_patch_ops; /* Some laptops with Conexant chips show stalls in S3 resume, diff --git a/sound/pci/hda/patch_sigmatel.c b
[Bug 1412800] Re: [PATCH] ALSA: hda - Enable docking station for an HP machine
At Tue, 20 Jan 2015 15:06:21 +0100, David Henningsson wrote: From: TienFu Chen tienfu.c...@canonical.com On this machine we need to inform the driver where the docking station pins are, because it has not been set up by BIOS. Tested-by: TienFu Chen tienfu.c...@canonical.com BugLink: https://bugs.launchpad.net/bugs/1412800 Signed-off-by: TienFu Chen tienfu.c...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Applied, thanks. Takashi --- sound/pci/hda/patch_realtek.c | 13 + 1 file changed, 13 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 1720f8a..0403061 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4417,6 +4417,7 @@ enum { ALC280_FIXUP_HP_GPIO4, ALC286_FIXUP_HP_GPIO_LED, ALC280_FIXUP_HP_GPIO2_MIC_HOTKEY, + ALC280_FIXUP_HP_DOCK_PINS, }; static const struct hda_fixup alc269_fixups[] = { @@ -4894,6 +4895,17 @@ static const struct hda_fixup alc269_fixups[] = { .type = HDA_FIXUP_FUNC, .v.func = alc280_fixup_hp_gpio2_mic_hotkey, }, + [ALC280_FIXUP_HP_DOCK_PINS] = { + .type = HDA_FIXUP_PINS, + .v.pins = (const struct hda_pintbl[]) { + { 0x1b, 0x21011020 }, /* line-out */ + { 0x1a, 0x01a1903c }, /* headset mic */ + { 0x18, 0x2181103f }, /* line-in */ + { }, + }, + .chained = true, + .chain_id = ALC280_FIXUP_HP_GPIO4 + }, }; static const struct snd_pci_quirk alc269_fixup_tbl[] = { @@ -4937,6 +4949,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x226b, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x226e, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x2271, HP, ALC286_FIXUP_HP_GPIO_LED), + SND_PCI_QUIRK(0x103c, 0x2272, HP, ALC280_FIXUP_HP_DOCK_PINS), SND_PCI_QUIRK(0x103c, 0x229e, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x22b2, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x22b7, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), -- 1.9.1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1412800 Title: Enable dock line in/line out on an HP machine (ALC280) To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1412800/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1412800] Re: [PATCH] ALSA: hda - Add docking station support for another HP machine
At Tue, 10 Feb 2015 09:09:41 +0100, David Henningsson wrote: From: TienFu Chen tienfu.c...@canonical.com BugLink: https://bugs.launchpad.net/bugs/1412800 Signed-off-by: TienFu Chen tienfu.c...@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com Applied, thanks. Takashi --- sound/pci/hda/patch_realtek.c | 1 + 1 file changed, 1 insertion(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 0403061..ddb9308 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -4950,6 +4950,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = { SND_PCI_QUIRK(0x103c, 0x226e, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x2271, HP, ALC286_FIXUP_HP_GPIO_LED), SND_PCI_QUIRK(0x103c, 0x2272, HP, ALC280_FIXUP_HP_DOCK_PINS), + SND_PCI_QUIRK(0x103c, 0x2273, HP, ALC280_FIXUP_HP_DOCK_PINS), SND_PCI_QUIRK(0x103c, 0x229e, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x22b2, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), SND_PCI_QUIRK(0x103c, 0x22b7, HP, ALC269_FIXUP_HP_MUTE_LED_MIC1), -- 1.9.1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1412800 Title: Enable dock line in/line out on an HP machine (ALC280) To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1412800/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1408295] Re: [PATCH] ALSA: hda - Enable mic mute hotkey and LEDs for an HP machine
At Wed, 7 Jan 2015 13:30:14 +0100, David Henningsson wrote: On this machine, the mic mute hotkey is connected to GPIO2. We therefore create an extra input device for this key. Also enable LEDs connected to GPIO3 and GPIO4. (Note: if this patch is backported to older kernels, where KEY_MIC_MUTE is not available, change the KEY_MIC_MUTE to KEY_F20, which was previously used for mic mute keys.) BugLink: https://bugs.launchpad.net/bugs/1408295 Tested-by: Keng-Yu Lin keng-yu@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com --- sound/pci/hda/patch_realtek.c | 86 +++ 1 file changed, 86 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 65f1f4e..3338c75 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -29,6 +29,7 @@ #include linux/pci.h #include linux/dmi.h #include linux/module.h +#include linux/input.h #include sound/core.h #include sound/jack.h #include hda_codec.h @@ -120,6 +121,8 @@ struct alc_spec { hda_nid_t pll_nid; unsigned int pll_coef_idx, pll_coef_bit; unsigned int coef0; + + struct input_dev *kb_dev; }; /* @@ -3472,6 +3475,83 @@ static void alc280_fixup_hp_gpio4(struct hda_codec *codec, } } +static void gpio2_mic_hotkey_event(struct hda_codec *codec, +struct hda_jack_callback *event) +{ + struct alc_spec *spec = codec-spec; + + /* GPIO2 just toggles on a keypress/keyrelease cycle. Therefore +send both key on and key off event for every interrupt. */ + input_report_key(spec-kb_dev, KEY_MICMUTE, 1); + input_sync(spec-kb_dev); + input_report_key(spec-kb_dev, KEY_MICMUTE, 0); + input_sync(spec-kb_dev); Does the build pass without CONFIG_INPUT? +} + +static void alc280_fixup_hp_gpio2_mic_hotkey(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ + /* GPIO1 = set according to SKU external amp +GPIO2 = mic mute hotkey +GPIO3 = mute LED +GPIO4 = mic mute LED */ + static const struct hda_verb gpio_init[] = { + { 0x01, AC_VERB_SET_GPIO_MASK, 0x1e }, + { 0x01, AC_VERB_SET_GPIO_DIRECTION, 0x1a }, + { 0x01, AC_VERB_SET_GPIO_DATA, 0x02 }, + {} + }; + + struct alc_spec *spec = codec-spec; + + if (action == HDA_FIXUP_ACT_PRE_PROBE) { + + spec-kb_dev = input_allocate_device(); + if (!spec-kb_dev) { + snd_printk(Out of memory (input_allocate_device)\n); Better to use dev_err() (or codec_err()) macro. + return; + } + spec-kb_dev-name = Microphone Mute Button; + spec-kb_dev-evbit[0] = BIT_MASK(EV_KEY); + spec-kb_dev-keybit[BIT_WORD(KEY_MICMUTE)] = BIT_MASK(KEY_MICMUTE); + if (input_register_device(spec-kb_dev)) { + snd_printk(input_register_device failed\n); Ditto. + input_free_device(spec-kb_dev); + spec-kb_dev = NULL; + return; + } + + snd_hda_add_verbs(codec, gpio_init); + snd_hda_codec_write_cache(codec, codec-afg, 0, + AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x04); + snd_hda_jack_detect_enable_callback(codec, codec-afg, + gpio2_mic_hotkey_event); + + spec-gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; + spec-gen.cap_sync_hook = alc_fixup_gpio_mic_mute_hook; + spec-gpio_led = 0; + spec-mute_led_polarity = 0; + spec-gpio_mute_led_mask = 0x08; + spec-gpio_mic_led_mask = 0x10; + return; + } + + if (!spec-kb_dev) + return; + + switch (action) { + case HDA_FIXUP_ACT_PROBE: + spec-init_amp = ALC_INIT_DEFAULT; + break; + case HDA_FIXUP_ACT_INIT: + gpio2_mic_hotkey_event(codec, NULL); Do you need to generate a key event at each init? Takashi -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1408295 Title: Enable mic mute hotkey and LEDs for an HP machine To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1408295/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1408295] Re: [PATCH v2] ALSA: hda - Enable mic mute hotkey and LEDs for an HP machine
At Wed, 7 Jan 2015 15:50:13 +0100, David Henningsson wrote: On this machine, the mic mute hotkey is connected to GPIO2. We therefore create an extra input device for this key. Also enable LEDs connected to GPIO3 and GPIO4. (Note: if this patch is backported to older kernels, where KEY_MIC_MUTE is not available, change the KEY_MIC_MUTE to KEY_F20, which was previously used for mic mute keys.) BugLink: https://bugs.launchpad.net/bugs/1408295 Tested-by: Keng-Yu Lin keng-yu@canonical.com Signed-off-by: David Henningsson david.hennings...@canonical.com --- Changes since v1 (which was by mistake not posted to alsa-devel) - fixes according to Takashi's review comments Thanks, applied now. Takashi sound/pci/hda/patch_realtek.c | 88 +++ 1 file changed, 88 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 65f1f4e..09d2131 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -29,6 +29,7 @@ #include linux/pci.h #include linux/dmi.h #include linux/module.h +#include linux/input.h #include sound/core.h #include sound/jack.h #include hda_codec.h @@ -120,6 +121,9 @@ struct alc_spec { hda_nid_t pll_nid; unsigned int pll_coef_idx, pll_coef_bit; unsigned int coef0; +#if IS_ENABLED(CONFIG_INPUT) + struct input_dev *kb_dev; +#endif }; /* @@ -3472,6 +3476,84 @@ static void alc280_fixup_hp_gpio4(struct hda_codec *codec, } } +#if IS_ENABLED(CONFIG_INPUT) +static void gpio2_mic_hotkey_event(struct hda_codec *codec, +struct hda_jack_callback *event) +{ + struct alc_spec *spec = codec-spec; + + /* GPIO2 just toggles on a keypress/keyrelease cycle. Therefore +send both key on and key off event for every interrupt. */ + input_report_key(spec-kb_dev, KEY_MICMUTE, 1); + input_sync(spec-kb_dev); + input_report_key(spec-kb_dev, KEY_MICMUTE, 0); + input_sync(spec-kb_dev); +} +#endif + +static void alc280_fixup_hp_gpio2_mic_hotkey(struct hda_codec *codec, + const struct hda_fixup *fix, int action) +{ +#if IS_ENABLED(CONFIG_INPUT) + /* GPIO1 = set according to SKU external amp +GPIO2 = mic mute hotkey +GPIO3 = mute LED +GPIO4 = mic mute LED */ + static const struct hda_verb gpio_init[] = { + { 0x01, AC_VERB_SET_GPIO_MASK, 0x1e }, + { 0x01, AC_VERB_SET_GPIO_DIRECTION, 0x1a }, + { 0x01, AC_VERB_SET_GPIO_DATA, 0x02 }, + {} + }; + + struct alc_spec *spec = codec-spec; + + if (action == HDA_FIXUP_ACT_PRE_PROBE) { + spec-kb_dev = input_allocate_device(); + if (!spec-kb_dev) { + codec_err(codec, Out of memory (input_allocate_device)\n); + return; + } + spec-kb_dev-name = Microphone Mute Button; + spec-kb_dev-evbit[0] = BIT_MASK(EV_KEY); + spec-kb_dev-keybit[BIT_WORD(KEY_MICMUTE)] = BIT_MASK(KEY_MICMUTE); + if (input_register_device(spec-kb_dev)) { + codec_err(codec, input_register_device failed\n); + input_free_device(spec-kb_dev); + spec-kb_dev = NULL; + return; + } + + snd_hda_add_verbs(codec, gpio_init); + snd_hda_codec_write_cache(codec, codec-afg, 0, + AC_VERB_SET_GPIO_UNSOLICITED_RSP_MASK, 0x04); + snd_hda_jack_detect_enable_callback(codec, codec-afg, + gpio2_mic_hotkey_event); + + spec-gen.vmaster_mute.hook = alc_fixup_gpio_mute_hook; + spec-gen.cap_sync_hook = alc_fixup_gpio_mic_mute_hook; + spec-gpio_led = 0; + spec-mute_led_polarity = 0; + spec-gpio_mute_led_mask = 0x08; + spec-gpio_mic_led_mask = 0x10; + return; + } + + if (!spec-kb_dev) + return; + + switch (action) { + case HDA_FIXUP_ACT_PROBE: + spec-init_amp = ALC_INIT_DEFAULT; + break; + case HDA_FIXUP_ACT_FREE: + input_unregister_device(spec-kb_dev); + input_free_device(spec-kb_dev); + spec-kb_dev = NULL; + } +#endif +} + static void alc269_fixup_hp_line1_mic1_led(struct hda_codec *codec, const struct hda_fixup *fix, int action) { @@ -4341,6 +4423,7 @@ enum { ALC282_FIXUP_ASPIRE_V5_PINS, ALC280_FIXUP_HP_GPIO4, ALC286_FIXUP_HP_GPIO_LED, + ALC280_FIXUP_HP_GPIO2_MIC_HOTKEY, }; static const struct hda_fixup alc269_fixups[] = { @@ -4814,6 +4897,10 @@ static const struct hda_fixup alc269_fixups[] = {
[Bug 1446517] Re: [PATCH] ALSA: hda - fix num_steps = 0 error on ALC256
At Tue, 21 Apr 2015 10:48:46 +0200, David Henningsson wrote: The ALC256 does not have a mixer nid at 0x0b, and there's no loopback path (the output pins are directly connected to the DACs). This commit fixes an num_steps = 0 for NID=0xb (ctl = Beep Playback Volume) error (and as a result, problems with amixer/alsamixer). If there's pcbeep functionality, it certainly isn't controlled by setting an amp on 0x0b, so disable beep functionality (at least for now). Cc: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1446517 Signed-off-by: David Henningsson david.hennings...@canonical.com Applied, thanks. Takashi --- sound/pci/hda/patch_realtek.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 231d0e4..03975d03 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5664,6 +5664,7 @@ static int patch_alc269(struct hda_codec *codec) break; case 0x10ec0256: spec-codec_variant = ALC269_TYPE_ALC256; + spec-gen.mixer_nid = 0; /* ALC256 does not have any loopback mixer path */ break; } @@ -5677,8 +5678,8 @@ static int patch_alc269(struct hda_codec *codec) if (err 0) goto error; - if (!spec-gen.no_analog spec-gen.beep_nid) - set_beep_amp(spec, 0x0b, 0x04, HDA_INPUT); + if (!spec-gen.no_analog spec-gen.beep_nid spec-gen.mixer_nid) + set_beep_amp(spec, spec-gen.mixer_nid, 0x04, HDA_INPUT); codec-patch_ops = alc_patch_ops; codec-patch_ops.stream_pm = snd_hda_gen_stream_pm; -- 1.9.1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1446517 Title: num_steps = 0 error on ALC256 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1446517/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1446517] Re: [PATCH] ALSA: hda - fix num_steps = 0 error on ALC256
At Thu, 23 Apr 2015 17:34:19 +0800, Hui Wang wrote: Hi Kailang, Thanks for providing the patch, and we tested the patch, it fixed the problem. OK, I applied it with Cc to stable now. thanks, Takashi Regards, Hui. On 04/23/2015 03:18 PM, Kailang wrote: Fix Dell ALC256 headphone Mic recording issue. Default is pcbeep path for 0x1a input. -Original Message- From: Takashi Iwai [mailto:ti...@suse.de] Sent: Tuesday, April 21, 2015 6:03 PM To: David Henningsson Cc: ti...@suse.de; Kailang; hui.w...@canonical.com; 1446...@bugs.launchpad.net; sta...@vger.kernel.org Subject: Re: [PATCH] ALSA: hda - fix num_steps = 0 error on ALC256 At Tue, 21 Apr 2015 10:48:46 +0200, David Henningsson wrote: The ALC256 does not have a mixer nid at 0x0b, and there's no loopback path (the output pins are directly connected to the DACs). This commit fixes an num_steps = 0 for NID=0xb (ctl = Beep Playback Volume) error (and as a result, problems with amixer/alsamixer). If there's pcbeep functionality, it certainly isn't controlled by setting an amp on 0x0b, so disable beep functionality (at least for now). Cc: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1446517 Signed-off-by: David Henningsson david.hennings...@canonical.com Applied, thanks. Takashi --- sound/pci/hda/patch_realtek.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 231d0e4..03975d03 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5664,6 +5664,7 @@ static int patch_alc269(struct hda_codec *codec) break; case 0x10ec0256: spec-codec_variant = ALC269_TYPE_ALC256; + spec-gen.mixer_nid = 0; /* ALC256 does not have any loopback mixer +path */ break; } @@ -5677,8 +5678,8 @@ static int patch_alc269(struct hda_codec *codec) if (err 0) goto error; - if (!spec-gen.no_analog spec-gen.beep_nid) - set_beep_amp(spec, 0x0b, 0x04, HDA_INPUT); + if (!spec-gen.no_analog spec-gen.beep_nid spec-gen.mixer_nid) + set_beep_amp(spec, spec-gen.mixer_nid, 0x04, HDA_INPUT); codec-patch_ops = alc_patch_ops; codec-patch_ops.stream_pm = snd_hda_gen_stream_pm; -- 1.9.1 --Please consider the environment before printing this e-mail. -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1446517 Title: num_steps = 0 error on ALC256 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1446517/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
[Bug 1452175] Re: [PATCH] ALSA: hda - Add headset mic quirk for Dell Inspiron 5548
At Mon, 11 May 2015 14:04:14 +0200, David Henningsson wrote: This enables the headset microphone on Dell Inspiron 5548, or at least some variants of it. Cc: sta...@vger.kernel.org BugLink: https://bugs.launchpad.net/bugs/1452175 Signed-off-by: David Henningsson david.hennings...@canonical.com Applied, thanks. Takashi --- sound/pci/hda/patch_realtek.c | 7 +++ 1 file changed, 7 insertions(+) diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c index 4a0a238..37c2c9f 100644 --- a/sound/pci/hda/patch_realtek.c +++ b/sound/pci/hda/patch_realtek.c @@ -5346,6 +5346,13 @@ static const struct snd_hda_pin_quirk alc269_pin_fixup_tbl[] = { {0x17, 0x4000}, {0x1d, 0x4071}, {0x21, 0x02211050}), + SND_HDA_PIN_QUIRK(0x10ec0255, 0x1028, Dell Inspiron 5548, ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, + ALC255_STANDARD_PINS, + {0x12, 0x90a60180}, + {0x14, 0x90170130}, + {0x17, 0x4000}, + {0x1d, 0x4071}, + {0x21, 0x02211040}), SND_HDA_PIN_QUIRK(0x10ec0256, 0x1028, Dell, ALC255_FIXUP_DELL1_MIC_NO_PRESENCE, ALC256_STANDARD_PINS, {0x13, 0x4000}), -- 1.9.1 -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1452175 Title: Add headset mic some variants of Dell Inspiron 5548 To manage notifications about this bug go to: https://bugs.launchpad.net/hwe-next/+bug/1452175/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs