From 66c136e5be96a04d43a0e7ac550bba611eaa1bcb Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Mon, 14 Feb 2011 07:45:43 -0800 Subject: [PATCH] .36 patches --- ...ubwoofer-quirk-for-acer-aspire-8942g.patch | 33 +++++++++++ ...imer-handle-delayed-timer-interrupts.patch | 44 ++++++++++++++ ...d-error-after-multi-component-update.patch | 35 +++++++++++ ...issed-snd_soc_dai_get_drvdata-update.patch | 32 ++++++++++ ...-wm8994-fll-force-a-source-selection.patch | 39 ++++++++++++ ...sleep-takes-milliseconds-not-jiffies.patch | 59 +++++++++++++++++++ queue-2.6.36/series | 6 ++ 7 files changed, 248 insertions(+) create mode 100644 queue-2.6.36/alsa-hda-add-subwoofer-quirk-for-acer-aspire-8942g.patch create mode 100644 queue-2.6.36/alsa-hrtimer-handle-delayed-timer-interrupts.patch create mode 100644 queue-2.6.36/asoc-blackfin-ac97-fix-build-error-after-multi-component-update.patch create mode 100644 queue-2.6.36/asoc-blackfin-tdm-fix-missed-snd_soc_dai_get_drvdata-update.patch create mode 100644 queue-2.6.36/asoc-when-disabling-wm8994-fll-force-a-source-selection.patch create mode 100644 queue-2.6.36/asoc-wm8990-msleep-takes-milliseconds-not-jiffies.patch diff --git a/queue-2.6.36/alsa-hda-add-subwoofer-quirk-for-acer-aspire-8942g.patch b/queue-2.6.36/alsa-hda-add-subwoofer-quirk-for-acer-aspire-8942g.patch new file mode 100644 index 00000000000..1e1b7b4ecfc --- /dev/null +++ b/queue-2.6.36/alsa-hda-add-subwoofer-quirk-for-acer-aspire-8942g.patch @@ -0,0 +1,33 @@ +From a6c47a85b8e7e4a8c47394607c5e5c43224b0892 Mon Sep 17 00:00:00 2001 +From: David Henningsson +Date: Thu, 10 Feb 2011 15:39:19 +0100 +Subject: ALSA: HDA: Add subwoofer quirk for Acer Aspire 8942G + +From: David Henningsson + +commit a6c47a85b8e7e4a8c47394607c5e5c43224b0892 upstream. + +According to the reporter, node 0x15 needs to be muted for subwoofer +to stop sounding. This pin is marked as unused by BIOS, so fix that. + +BugLink: http://bugs.launchpad.net/bugs/715877 + +Reported-by: Hans Peter +Signed-off-by: David Henningsson +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/pci/hda/patch_realtek.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/pci/hda/patch_realtek.c ++++ b/sound/pci/hda/patch_realtek.c +@@ -18959,6 +18959,7 @@ static const struct alc_fixup alc662_fix + }; + + static struct snd_pci_quirk alc662_fixup_tbl[] = { ++ SND_PCI_QUIRK(0x1025, 0x0308, "Acer Aspire 8942G", ALC662_FIXUP_ASPIRE), + SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE), + SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD), + SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD), diff --git a/queue-2.6.36/alsa-hrtimer-handle-delayed-timer-interrupts.patch b/queue-2.6.36/alsa-hrtimer-handle-delayed-timer-interrupts.patch new file mode 100644 index 00000000000..0571dd01cfc --- /dev/null +++ b/queue-2.6.36/alsa-hrtimer-handle-delayed-timer-interrupts.patch @@ -0,0 +1,44 @@ +From b1d4f7f4bdcf9915c41ff8cfc4425c84dabb1fde Mon Sep 17 00:00:00 2001 +From: Clemens Ladisch +Date: Thu, 10 Feb 2011 16:15:44 +0100 +Subject: ALSA: hrtimer: handle delayed timer interrupts + +From: Clemens Ladisch + +commit b1d4f7f4bdcf9915c41ff8cfc4425c84dabb1fde upstream. + +If a timer interrupt was delayed too much, hrtimer_forward_now() will +forward the timer expiry more than once. When this happens, the +additional number of elapsed ALSA timer ticks must be passed to +snd_timer_interrupt() to prevent the ALSA timer from falling behind. + +This mostly fixes MIDI slowdown problems on highly-loaded systems with +badly behaved interrupt handlers. + +Signed-off-by: Clemens Ladisch +Reported-and-tested-by: Arthur Marsh +Signed-off-by: Takashi Iwai +Signed-off-by: Greg Kroah-Hartman + +--- + sound/core/hrtimer.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +--- a/sound/core/hrtimer.c ++++ b/sound/core/hrtimer.c +@@ -45,12 +45,13 @@ static enum hrtimer_restart snd_hrtimer_ + { + struct snd_hrtimer *stime = container_of(hrt, struct snd_hrtimer, hrt); + struct snd_timer *t = stime->timer; ++ unsigned long oruns; + + if (!atomic_read(&stime->running)) + return HRTIMER_NORESTART; + +- hrtimer_forward_now(hrt, ns_to_ktime(t->sticks * resolution)); +- snd_timer_interrupt(stime->timer, t->sticks); ++ oruns = hrtimer_forward_now(hrt, ns_to_ktime(t->sticks * resolution)); ++ snd_timer_interrupt(stime->timer, t->sticks * oruns); + + if (!atomic_read(&stime->running)) + return HRTIMER_NORESTART; diff --git a/queue-2.6.36/asoc-blackfin-ac97-fix-build-error-after-multi-component-update.patch b/queue-2.6.36/asoc-blackfin-ac97-fix-build-error-after-multi-component-update.patch new file mode 100644 index 00000000000..9b8cde2af45 --- /dev/null +++ b/queue-2.6.36/asoc-blackfin-ac97-fix-build-error-after-multi-component-update.patch @@ -0,0 +1,35 @@ +From e9c2048915048d605fd76539ddd96f00d593e1eb Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Tue, 11 Jan 2011 19:57:33 -0500 +Subject: ASoC: Blackfin AC97: fix build error after multi-component update + +From: Mike Frysinger + +commit e9c2048915048d605fd76539ddd96f00d593e1eb upstream. + +We need to tweak how we query the active capture/playback state after +the recent overhauls of common code. + +Signed-off-by: Mike Frysinger +Acked-by: Liam Girdwood +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/blackfin/bf5xx-ac97.c | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +--- a/sound/soc/blackfin/bf5xx-ac97.c ++++ b/sound/soc/blackfin/bf5xx-ac97.c +@@ -260,9 +260,9 @@ static int bf5xx_ac97_suspend(struct snd + pr_debug("%s : sport %d\n", __func__, dai->id); + if (!dai->active) + return 0; +- if (dai->capture.active) ++ if (dai->capture_active) + sport_rx_stop(sport); +- if (dai->playback.active) ++ if (dai->playback_active) + sport_tx_stop(sport); + return 0; + } diff --git a/queue-2.6.36/asoc-blackfin-tdm-fix-missed-snd_soc_dai_get_drvdata-update.patch b/queue-2.6.36/asoc-blackfin-tdm-fix-missed-snd_soc_dai_get_drvdata-update.patch new file mode 100644 index 00000000000..59d30f98ff7 --- /dev/null +++ b/queue-2.6.36/asoc-blackfin-tdm-fix-missed-snd_soc_dai_get_drvdata-update.patch @@ -0,0 +1,32 @@ +From 15d2e22b820bad62854d6ad99d8af8320adf4a91 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger +Date: Tue, 11 Jan 2011 23:08:19 -0500 +Subject: ASoC: Blackfin TDM: fix missed snd_soc_dai_get_drvdata update + +From: Mike Frysinger + +commit 15d2e22b820bad62854d6ad99d8af8320adf4a91 upstream. + +One spot was missed in this driver when converting from +snd_soc_dai.private_data to snd_soc_dai_get_drvdata. + +Signed-off-by: Mike Frysinger +Acked-by: Liam Girdwood +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/blackfin/bf5xx-tdm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +--- a/sound/soc/blackfin/bf5xx-tdm.c ++++ b/sound/soc/blackfin/bf5xx-tdm.c +@@ -210,7 +210,7 @@ static int bf5xx_tdm_set_channel_map(str + #ifdef CONFIG_PM + static int bf5xx_tdm_suspend(struct snd_soc_dai *dai) + { +- struct sport_device *sport = dai->private_data; ++ struct sport_device *sport = snd_soc_dai_get_drvdata(dai); + + if (!dai->active) + return 0; diff --git a/queue-2.6.36/asoc-when-disabling-wm8994-fll-force-a-source-selection.patch b/queue-2.6.36/asoc-when-disabling-wm8994-fll-force-a-source-selection.patch new file mode 100644 index 00000000000..cbef815611b --- /dev/null +++ b/queue-2.6.36/asoc-when-disabling-wm8994-fll-force-a-source-selection.patch @@ -0,0 +1,39 @@ +From 4514e8997fbefd5befd6176ac9785e287b4daed4 Mon Sep 17 00:00:00 2001 +From: Mark Brown +Date: Fri, 3 Dec 2010 16:02:10 +0000 +Subject: ASoC: When disabling WM8994 FLL force a source selection + +From: Mark Brown + +commit 4514e8997fbefd5befd6176ac9785e287b4daed4 upstream. + +When we disable the WM8994 FLL code path sharing means that we end up +writing out a configuration. Currently this is the currently active +input and output frequency (which causes snd_soc_update_bits() to +suppress actual writes both immediately and in the common case where +we reenable the same configuration later) but we allow machine drivers +to pass through a source of zero. Since the register values written +are one less than the source constants this causes corruption of other +bitfields in the register. + +Fix this by using the most recently configured FLL source when none is +provided. + +Signed-off-by: Mark Brown +Acked-by: Liam Girdwood +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/wm8994.c | 1 + + 1 file changed, 1 insertion(+) + +--- a/sound/soc/codecs/wm8994.c ++++ b/sound/soc/codecs/wm8994.c +@@ -2914,6 +2914,7 @@ static int wm8994_set_fll(struct snd_soc + /* Allow no source specification when stopping */ + if (freq_out) + return -EINVAL; ++ src = wm8994->fll[id].src; + break; + case WM8994_FLL_SRC_MCLK1: + case WM8994_FLL_SRC_MCLK2: diff --git a/queue-2.6.36/asoc-wm8990-msleep-takes-milliseconds-not-jiffies.patch b/queue-2.6.36/asoc-wm8990-msleep-takes-milliseconds-not-jiffies.patch new file mode 100644 index 00000000000..998e9a2f3a2 --- /dev/null +++ b/queue-2.6.36/asoc-wm8990-msleep-takes-milliseconds-not-jiffies.patch @@ -0,0 +1,59 @@ +From 7ebcf5d6021a696680ee77d9162a2edec2d671dd Mon Sep 17 00:00:00 2001 +From: Dimitris Papastamos +Date: Fri, 14 Jan 2011 15:59:13 +0000 +Subject: ASoC: WM8990: msleep() takes milliseconds not jiffies + +From: Dimitris Papastamos + +commit 7ebcf5d6021a696680ee77d9162a2edec2d671dd upstream. + +Signed-off-by: Dimitris Papastamos +Acked-by: Liam Girdwood +Signed-off-by: Mark Brown +Signed-off-by: Greg Kroah-Hartman + +--- + sound/soc/codecs/wm8990.c | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +--- a/sound/soc/codecs/wm8990.c ++++ b/sound/soc/codecs/wm8990.c +@@ -1183,7 +1183,7 @@ static int wm8990_set_bias_level(struct + WM8990_VMIDTOG); + + /* Delay to allow output caps to discharge */ +- msleep(msecs_to_jiffies(300)); ++ msleep(300); + + /* Disable VMIDTOG */ + snd_soc_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST | +@@ -1195,17 +1195,17 @@ static int wm8990_set_bias_level(struct + /* Enable outputs */ + snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1b00); + +- msleep(msecs_to_jiffies(50)); ++ msleep(50); + + /* Enable VMID at 2x50k */ + snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1f02); + +- msleep(msecs_to_jiffies(100)); ++ msleep(100); + + /* Enable VREF */ + snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1f03); + +- msleep(msecs_to_jiffies(600)); ++ msleep(600); + + /* Enable BUFIOEN */ + snd_soc_write(codec, WM8990_ANTIPOP2, WM8990_SOFTST | +@@ -1250,7 +1250,7 @@ static int wm8990_set_bias_level(struct + /* Disable VMID */ + snd_soc_write(codec, WM8990_POWER_MANAGEMENT_1, 0x1f01); + +- msleep(msecs_to_jiffies(300)); ++ msleep(300); + + /* Enable all output discharge bits */ + snd_soc_write(codec, WM8990_ANTIPOP1, WM8990_DIS_LLINE | diff --git a/queue-2.6.36/series b/queue-2.6.36/series index 959b1c5d3c4..4445a7d2289 100644 --- a/queue-2.6.36/series +++ b/queue-2.6.36/series @@ -82,3 +82,9 @@ alsa-hda-fix-memory-leaks-in-conexant-jack-arrays.patch input-i8042-introduce-notimeout-blacklist-for-dell-vostro-v13.patch input-bcm5974-add-support-for-macbookair3.patch hwmon-lm63-consider-lm64-temperature-offset.patch +alsa-hrtimer-handle-delayed-timer-interrupts.patch +alsa-hda-add-subwoofer-quirk-for-acer-aspire-8942g.patch +asoc-when-disabling-wm8994-fll-force-a-source-selection.patch +asoc-wm8990-msleep-takes-milliseconds-not-jiffies.patch +asoc-blackfin-ac97-fix-build-error-after-multi-component-update.patch +asoc-blackfin-tdm-fix-missed-snd_soc_dai_get_drvdata-update.patch -- 2.47.3