Crackling audio on HP / AMD Hudson machines when changing volume during playback

Bug #1260225 reported by David Henningsson
8
This bug affects 1 person
Affects Status Importance Assigned to Milestone
HWE Next
Fix Released
Undecided
Unassigned
Trusty
Fix Released
Undecided
Unassigned
linux (Ubuntu)
Fix Released
Undecided
David Henningsson

Bug Description

We discovered that for these machines we would sometimes lose an interrupt if we changed volume during playback and that enable_msi=0 would fix this issue.

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

Changed in linux (Ubuntu):
status: New → In Progress
assignee: nobody → David Henningsson (diwic)
Revision history for this message
David Henningsson (diwic) wrote : [PATCH] ALSA: hda - Add enable_msi=0 workaround for four HP machines

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: <email address hidden>
BugLink: https://bugs.launchpad.net/bugs/1260225
Signed-off-by: David Henningsson <email address hidden>
---
 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

tags: added: blocks-hwcert-enablement
Revision history for this message
Takashi Iwai (tiwai) wrote :

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: <email address hidden>
> BugLink: https://bugs.launchpad.net/bugs/1260225
> Signed-off-by: David Henningsson <email address hidden>

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
>

Changed in linux (Ubuntu):
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (4.8 KiB)

This bug was fixed in the package linux - 3.13.0-1.16

---------------
linux (3.13.0-1.16) trusty; urgency=low

  * First 3.13 upload.
  * Release tracker
    - LP: #1266852

linux (3.13.0-0.15) trusty; urgency=low

  [ Tim Gardner ]

  * rebase to v3.13-rc7

  [ Upstream Kernel Changes ]

  * rebase to v3.13-rc7

linux (3.13.0-0.14) trusty; urgency=low

  [ Andy Whitcroft ]

  * rebase to 7a262d2ed9fa42fad8c4f243f8025580b58cf2f6

  [ Tim Gardner ]

  * Remove ubuntu/dm-raid4-5 in favor of CONFIG_MD_RAID456
  * Update lttng to Version 2.4.0-rc2
  * lttng: Disabled trace_kvm_async_pf_completed
  * [Config] CONFIG_IMA=y
    - LP: #1244627

  [ Upstream Kernel Changes ]

  * rebase to 7a262d2ed9fa42fad8c4f243f8025580b58cf2f6

linux (3.13.0-0.13) trusty; urgency=low

  [ Andy Whitcroft ]

  * ubuntu: aufs3 -- (no-up) aufs3-base.patch
  * ubuntu: aufs3 -- (no-up) aufs3-mmap.patch
  * ubuntu: aufs3 -- (no-up) aufs3-standalone.patch
  * ubuntu: AUFS (no-squash): basic framework and update machinary
  * ubuntu: AUFS -- update to 7b136a27b021da9010d8b6c101939dd298e46be7
  * ubuntu: aufs3 -- enable
  * ubuntu: aufs3 -- update configs

linux (3.13.0-0.12) trusty; urgency=low

  [ Upstream Kernel Changes ]

  * rebase to v3.13-rc6

linux (3.13.0-0.11) trusty; urgency=low

  [ Andy Whitcroft ]

  * SAUCE: suspicious unlocked ->status reading and writing in ipc/sem.c
  * [Config] ppc64el -- initial defconfig based -generic flavour
  * [Config] initial defconfig for ppc64el
  * [Config] ubuntuise ppc64el config
  * [Config] ubuntuise ppc64el config part 2
  * [Config] d-i -- update empty udebs list
  * [Config] ppc64el -- split extras package

  [ Anton Blanchard ]

  * SAUCE: KVM: PPC: Book3S HV: Add little-endian guest support

  [ Benjamin Herrenschmidt ]

  * SAUCE: powerpc/powernv: Add calls to support little endian

  [ Cédric Le Goater ]

  * SAUCE: KVM: PPC: Book3S: add helper routine to load guest instructions
  * SAUCE: KVM: PPC: Book3S: add helper routines to detect endian order
  * SAUCE: KVM: PPC: Book3S: MMIO emulation support for little endian
    guests

  [ Paul E. McKenney ]

  * SAUCE: powerpc: Make 64-bit non-VMX copy_tofrom_user() bi-endian

linux (3.13.0-0.10) trusty; urgency=low

  [ Andy Whitcroft ]

  * rebase to v3.13-rc5
  * [Config] updateconfigs following rebase to v3.13-rc5

  [ Upstream Kernel Changes ]

  * rebase to v3.13-rc5
    - LP: #1260303
    - LP: #1260303
    - LP: #1260225

linux (3.13.0-0.9) trusty; urgency=low

  [ Andy Whitcroft ]

  * [Config] d-i -- allow missing firmware

linux (3.13.0-0.8) trusty; urgency=low

  [ Andy Whitcroft ]

  * [Config] annotations -- first pass over entire config
  * [Config] drop libunwind8-dev from Build-Depends for ppc64el

  [ Tim Gardner ]

  * [Config] Add arm64 device tree files
    - LP: #1262901

linux (3.13.0-0.7) trusty; urgency=low

  [ Rajesh B Prathipati ]

  * SAUCE: powerpc: Make unaligned accesses endian-safe for powerpc

  [ Tim Gardner ]

  * [Config] CONFIG_REGULATOR_S2MPS11=n for FTBS

  [ Upstream Kernel Changes ]

  * rebase to v3.13-rc4
    - LP: #1259790
    - LP: #1259437
    - LP: #1259435

linux (3.13.0-0.6) trusty; urgency=low

  [ Paolo Pisati ]

  * [Co...

Read more...

Changed in linux (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Brad Figg (brad-figg) wrote :

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

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

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

tags: added: verification-needed-saucy
Brad Figg (brad-figg)
tags: added: verification-done-saucy
removed: verification-needed-saucy
Revision history for this message
Brad Figg (brad-figg) wrote :

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

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

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

tags: added: verification-needed-precise
tags: added: verification-needed-quantal
Revision history for this message
Brad Figg (brad-figg) wrote :

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

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

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

Brad Figg (brad-figg)
tags: added: verification-done-precise verification-done-quantal
removed: verification-needed-precise verification-needed-quantal
Changed in hwe-next:
status: New → Fix Released
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.