]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
.37 patches
authorGreg Kroah-Hartman <gregkh@suse.de>
Mon, 14 Feb 2011 15:45:39 +0000 (07:45 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Mon, 14 Feb 2011 15:45:39 +0000 (07:45 -0800)
queue-2.6.37/alsa-hda-add-subwoofer-quirk-for-acer-aspire-8942g.patch [new file with mode: 0644]
queue-2.6.37/alsa-hda-fix-missing-ca-initialization-for-hdmi-dp.patch [new file with mode: 0644]
queue-2.6.37/alsa-hrtimer-handle-delayed-timer-interrupts.patch [new file with mode: 0644]
queue-2.6.37/asoc-blackfin-ac97-fix-build-error-after-multi-component-update.patch [new file with mode: 0644]
queue-2.6.37/asoc-blackfin-tdm-fix-missed-snd_soc_dai_get_drvdata-update.patch [new file with mode: 0644]
queue-2.6.37/asoc-when-disabling-wm8994-fll-force-a-source-selection.patch [new file with mode: 0644]
queue-2.6.37/asoc-wm8990-msleep-takes-milliseconds-not-jiffies.patch [new file with mode: 0644]
queue-2.6.37/series
queue-2.6.37/tracing-fix-preempt-count-leak.patch [new file with mode: 0644]

diff --git a/queue-2.6.37/alsa-hda-add-subwoofer-quirk-for-acer-aspire-8942g.patch b/queue-2.6.37/alsa-hda-add-subwoofer-quirk-for-acer-aspire-8942g.patch
new file mode 100644 (file)
index 0000000..3a21259
--- /dev/null
@@ -0,0 +1,33 @@
+From a6c47a85b8e7e4a8c47394607c5e5c43224b0892 Mon Sep 17 00:00:00 2001
+From: David Henningsson <david.henningsson@canonical.com>
+Date: Thu, 10 Feb 2011 15:39:19 +0100
+Subject: ALSA: HDA: Add subwoofer quirk for Acer Aspire 8942G
+
+From: David Henningsson <david.henningsson@canonical.com>
+
+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 <david.henningsson@canonical.com>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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
+@@ -19380,6 +19380,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.37/alsa-hda-fix-missing-ca-initialization-for-hdmi-dp.patch b/queue-2.6.37/alsa-hda-fix-missing-ca-initialization-for-hdmi-dp.patch
new file mode 100644 (file)
index 0000000..4bf1eed
--- /dev/null
@@ -0,0 +1,42 @@
+From 11839aed21881d7edd65dd79f22a8eb18426f672 Mon Sep 17 00:00:00 2001
+From: Takashi Iwai <tiwai@suse.de>
+Date: Tue, 8 Feb 2011 17:25:49 +0100
+Subject: ALSA: hda - Fix missing CA initialization for HDMI/DP
+
+From: Takashi Iwai <tiwai@suse.de>
+
+commit 11839aed21881d7edd65dd79f22a8eb18426f672 upstream.
+
+The commit 53d7d69d8ffdfa60c5b66cc2e9ee0774aaaef5c0
+    ALSA: hdmi - support infoframe for DisplayPort
+dropped the initialization of CA field accidentally.
+This resulted in only two-channel LPCM mode on Nvidia machines.
+
+Reference: kernel bug 28592
+       https://bugzilla.kernel.org/show_bug.cgi?id=28592
+
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/pci/hda/patch_hdmi.c |    2 ++
+ 1 file changed, 2 insertions(+)
+
+--- a/sound/pci/hda/patch_hdmi.c
++++ b/sound/pci/hda/patch_hdmi.c
+@@ -642,6 +642,7 @@ static void hdmi_setup_audio_infoframe(s
+                       hdmi_ai->ver            = 0x01;
+                       hdmi_ai->len            = 0x0a;
+                       hdmi_ai->CC02_CT47      = channels - 1;
++                      hdmi_ai->CA             = ca;
+                       hdmi_checksum_audio_infoframe(hdmi_ai);
+               } else if (spec->sink_eld[i].conn_type == 1) { /* DisplayPort */
+                       struct dp_audio_infoframe *dp_ai;
+@@ -651,6 +652,7 @@ static void hdmi_setup_audio_infoframe(s
+                       dp_ai->len              = 0x1b;
+                       dp_ai->ver              = 0x11 << 2;
+                       dp_ai->CC02_CT47        = channels - 1;
++                      dp_ai->CA               = ca;
+               } else {
+                       snd_printd("HDMI: unknown connection type at pin %d\n",
+                                  pin_nid);
diff --git a/queue-2.6.37/alsa-hrtimer-handle-delayed-timer-interrupts.patch b/queue-2.6.37/alsa-hrtimer-handle-delayed-timer-interrupts.patch
new file mode 100644 (file)
index 0000000..0571dd0
--- /dev/null
@@ -0,0 +1,44 @@
+From b1d4f7f4bdcf9915c41ff8cfc4425c84dabb1fde Mon Sep 17 00:00:00 2001
+From: Clemens Ladisch <clemens@ladisch.de>
+Date: Thu, 10 Feb 2011 16:15:44 +0100
+Subject: ALSA: hrtimer: handle delayed timer interrupts
+
+From: Clemens Ladisch <clemens@ladisch.de>
+
+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 <clemens@ladisch.de>
+Reported-and-tested-by: Arthur Marsh <arthur.marsh@internode.on.net>
+Signed-off-by: Takashi Iwai <tiwai@suse.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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.37/asoc-blackfin-ac97-fix-build-error-after-multi-component-update.patch b/queue-2.6.37/asoc-blackfin-ac97-fix-build-error-after-multi-component-update.patch
new file mode 100644 (file)
index 0000000..9b8cde2
--- /dev/null
@@ -0,0 +1,35 @@
+From e9c2048915048d605fd76539ddd96f00d593e1eb Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 11 Jan 2011 19:57:33 -0500
+Subject: ASoC: Blackfin AC97: fix build error after multi-component update
+
+From: Mike Frysinger <vapier@gentoo.org>
+
+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 <vapier@gentoo.org>
+Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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.37/asoc-blackfin-tdm-fix-missed-snd_soc_dai_get_drvdata-update.patch b/queue-2.6.37/asoc-blackfin-tdm-fix-missed-snd_soc_dai_get_drvdata-update.patch
new file mode 100644 (file)
index 0000000..59d30f9
--- /dev/null
@@ -0,0 +1,32 @@
+From 15d2e22b820bad62854d6ad99d8af8320adf4a91 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 11 Jan 2011 23:08:19 -0500
+Subject: ASoC: Blackfin TDM: fix missed snd_soc_dai_get_drvdata update
+
+From: Mike Frysinger <vapier@gentoo.org>
+
+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 <vapier@gentoo.org>
+Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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.37/asoc-when-disabling-wm8994-fll-force-a-source-selection.patch b/queue-2.6.37/asoc-when-disabling-wm8994-fll-force-a-source-selection.patch
new file mode 100644 (file)
index 0000000..a7e9503
--- /dev/null
@@ -0,0 +1,39 @@
+From 4514e8997fbefd5befd6176ac9785e287b4daed4 Mon Sep 17 00:00:00 2001
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Date: Fri, 3 Dec 2010 16:02:10 +0000
+Subject: ASoC: When disabling WM8994 FLL force a source selection
+
+From: Mark Brown <broonie@opensource.wolfsonmicro.com>
+
+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 <broonie@opensource.wolfsonmicro.com>
+Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ sound/soc/codecs/wm8994.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/sound/soc/codecs/wm8994.c
++++ b/sound/soc/codecs/wm8994.c
+@@ -2930,6 +2930,7 @@ static int _wm8994_set_fll(struct snd_so
+               /* 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.37/asoc-wm8990-msleep-takes-milliseconds-not-jiffies.patch b/queue-2.6.37/asoc-wm8990-msleep-takes-milliseconds-not-jiffies.patch
new file mode 100644 (file)
index 0000000..998e9a2
--- /dev/null
@@ -0,0 +1,59 @@
+From 7ebcf5d6021a696680ee77d9162a2edec2d671dd Mon Sep 17 00:00:00 2001
+From: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
+Date: Fri, 14 Jan 2011 15:59:13 +0000
+Subject: ASoC: WM8990: msleep() takes milliseconds not jiffies
+
+From: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
+
+commit 7ebcf5d6021a696680ee77d9162a2edec2d671dd upstream.
+
+Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com>
+Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
+Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ 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 |
index 45611721dc77784332d4f26094e82f3587f4c442..a80e7e623fc3f17e5e98b73f45808282806d6107 100644 (file)
@@ -99,3 +99,11 @@ input-i8042-introduce-notimeout-blacklist-for-dell-vostro-v13.patch
 input-bcm5974-add-support-for-macbookair3.patch
 input-rc-keymap-return-key_reserved-for-unknown-mappings.patch
 hwmon-lm63-consider-lm64-temperature-offset.patch
+tracing-fix-preempt-count-leak.patch
+alsa-hrtimer-handle-delayed-timer-interrupts.patch
+alsa-hda-fix-missing-ca-initialization-for-hdmi-dp.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
diff --git a/queue-2.6.37/tracing-fix-preempt-count-leak.patch b/queue-2.6.37/tracing-fix-preempt-count-leak.patch
new file mode 100644 (file)
index 0000000..8360394
--- /dev/null
@@ -0,0 +1,53 @@
+From 1dbd1951f39e13da579ffe879cce19586d0462de Mon Sep 17 00:00:00 2001
+From: Li Zefan <lizf@cn.fujitsu.com>
+Date: Thu, 9 Dec 2010 15:47:56 +0800
+Subject: tracing: Fix preempt count leak
+
+From: Li Zefan <lizf@cn.fujitsu.com>
+
+commit 1dbd1951f39e13da579ffe879cce19586d0462de upstream.
+
+While running my ftrace stress test, this showed up:
+
+BUG: sleeping function called from invalid context at mm/mmap.c:233
+...
+note: cat[3293] exited with preempt_count 1
+
+The bug was introduced by commit 91e86e560d0b3ce4c5fc64fd2bbb99f856a30a4e
+("tracing: Fix recursive user stack trace")
+
+Signed-off-by: Li Zefan <lizf@cn.fujitsu.com>
+LKML-Reference: <4D0089AC.1020802@cn.fujitsu.com>
+Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ kernel/trace/trace.c |    6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+--- a/kernel/trace/trace.c
++++ b/kernel/trace/trace.c
+@@ -1313,12 +1313,10 @@ ftrace_trace_userstack(struct ring_buffe
+       __this_cpu_inc(user_stack_count);
+-
+-
+       event = trace_buffer_lock_reserve(buffer, TRACE_USER_STACK,
+                                         sizeof(*entry), flags, pc);
+       if (!event)
+-              return;
++              goto out_drop_count;
+       entry   = ring_buffer_event_data(event);
+       entry->tgid             = current->tgid;
+@@ -1333,8 +1331,8 @@ ftrace_trace_userstack(struct ring_buffe
+       if (!filter_check_discard(call, entry, buffer, event))
+               ring_buffer_unlock_commit(buffer, event);
++ out_drop_count:
+       __this_cpu_dec(user_stack_count);
+-
+  out:
+       preempt_enable();
+ }