Asus X202E internal mic boost too high

Bug #1052460 reported by David Henningsson
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Fix Released
Undecided
David Henningsson

Bug Description

This bug is for tracking purposes only, please do not triage.

Revision history for this message
David Henningsson (diwic) wrote :
Changed in linux (Ubuntu):
assignee: nobody → David Henningsson (diwic)
status: New → In Progress
Revision history for this message
David Henningsson (diwic) wrote : [PATCH] ALSA: hda - limit internal mic boost for Asus X202E

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 <email address hidden>
---

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

 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

Revision history for this message
Takashi Iwai (tiwai) wrote :

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 <email address hidden>
> ---
>
> 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
>

Revision history for this message
David Henningsson (diwic) wrote :

Upstream applied with cc to stable 3.5+, I assume it will reach quantal automatically.

Changed in linux (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Luis Henriques (henrix) wrote :

This bug is awaiting verification that the kernel for Quantal in -proposed solves the problem (3.5.0-18.29). Please test the kernel and update this bug with the results. If the problem is solved, change the tag 'verification-needed-quantal' to 'verification-done-quantal'.

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

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

tags: added: verification-needed-quantal
Luis Henriques (henrix)
tags: added: verification-done-quantal
removed: verification-needed-quantal
Revision history for this message
Adam Conrad (adconrad) wrote : Update Released

The verification of this Stable Release Update has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regresssions.

Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (16.4 KiB)

This bug was fixed in the package linux - 3.5.0-18.29

---------------
linux (3.5.0-18.29) quantal-proposed; urgency=low

  [Luis Henriques]

  * Release Tracking Bug
    - LP: #1068224

  [ Andy Whitcroft ]

  * [packaging] do not fail secure copy on older kernels
  * SAUCE: efivarfs: efivarfs_file_read ensure we free data in error paths
    - LP: #1063061
  * SAUCE: efivars: efivarfs_create() ensure we drop our reference on inode
    on error
    - LP: #1063061
  * SAUCE: efivarfs: efivarfs_fill_super() fix inode reference counts
    - LP: #1063061
  * SAUCE: efivarfs: efivarfs_fill_super() ensure we free our temporary
    name
    - LP: #1063061
  * SAUCE: efivarfs: efivarfs_fill_super() ensure we clean up correctly on
    error
    - LP: #1063061
  * [Config] add fs/udf to linux-image to support DVD/CD formats in virtual
    instances
    - LP: #1066921

  [ Jeremy Kerr ]

  * SAUCE: efi: Handle deletions and size changes in efivarfs_write_file
    - LP: #1063061
  * SAUCE: efivarfs: Implement exclusive access for {get, set}_variable
    - LP: #1063061

  [ Kamal Mostafa ]

  * SAUCE: input: Cypress PS/2 Trackpad list additional contributors

  [ Kyle Fazzari ]

  * SAUCE: input: Cypress PS/2 Trackpad fix lost sync upon palm contact
    - LP: #1048258
  * SAUCE: input: Cypress PS/2 Trackpad fix taps turning into hardware
    clicks
    - LP: #1064086

  [ Leann Ogasawara ]

  * Revert "SAUCE: ext4: fix crash when accessing /proc/mounts
    concurrently"
    - LP: #1066176
  * Revert "SAUCE: ALSA: hda/realtek - Fix detection of ALC271X codec"
    - LP: #1066176

  [ Lee, Chun-Yi ]

  * SAUCE: efi: add efivars kobject to efi sysfs folder
    - LP: #1063061

  [ Matt Fleming ]

  * SAUCE: efivarfs: Add documentation for the EFI variable filesystem
    - LP: #1063061

  [ Matthew Garrett ]

  * SAUCE: efi: Add support for a UEFI variable filesystem
    - LP: #1063061

  [ Sarveshwar Bandi ]

  * SAUCE: bridge: Pull ip header into skb->data before looking into ip
    header.
    - LP: #1065150

  [ Upstream Kernel Changes ]

  * Revert "drm/i915: correctly order the ring init sequence"
    - LP: #1066176
  * vfs: dcache: fix deadlock in tree traversal
    - LP: #1063761
  * dm mpath: only retry ioctl when no paths if queue_if_no_path set
    - LP: #1063761
  * dm: handle requests beyond end of device instead of using BUG_ON
    - LP: #1063761
  * dm table: clear add_random unless all devices have it set
    - LP: #1063761
  * dm verity: fix overflow check
    - LP: #1063761
  * usb: gadget: make g_printer enumerate again
    - LP: #1063761
  * usb: gadget: initialize the strings in tcm_usb_gadget properly
    - LP: #1063761
  * USB: option: blacklist QMI interface on ZTE MF683
    - LP: #1063761
  * USB: ftdi_sio: add TIAO USB Multi-Protocol Adapter (TUMPA) support
    - LP: #1063761
  * USB: qcaux: add Pantech vendor class match
    - LP: #1063761
  * usb: host: xhci: Fix Null pointer dereferencing with 71c731a for
    non-x86 systems
    - LP: #1063761
  * USB: serial: fix up bug with missing {}
    - LP: #1063761
  * staging: speakup_soft: Fix reading of init string
    - LP: #1063761
  * tty: keyboard.c: Remove locking from vt_get_leds.
  ...

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Omk (ossi-viljakainen) wrote :

I am running 3.8.0-19-generic #30-Ubuntu on my F202e and experiencing the same, or similar issue. My mic input is inaudible, all sound is cut off, unless I shout loud, or clap my hands, rendering the input useless. Is it related to this bug or should I report a new one?

Revision history for this message
David Henningsson (diwic) wrote :

@Arjuna,

Please file a new bug using "ubuntu-bug audio". Note that there is no guarantee anybody will have time to look at it, but it's the best you can do at this point I believe.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.