Asus X202E internal mic boost too high

Bug #1052460 reported by David Henningsson on 2012-09-18
12
This bug affects 2 people
Affects Status Importance Assigned to Milestone
linux (Ubuntu)
Undecided
David Henningsson

Bug Description

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

David Henningsson (diwic) wrote :
Changed in linux (Ubuntu):
assignee: nobody → David Henningsson (diwic)
status: New → In Progress

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

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
>

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
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) on 2012-10-30
tags: added: verification-done-quantal
removed: verification-needed-quantal

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.

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
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?

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  Edit
Everyone can see this information.

Other bug subscribers