]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.0-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 30 Nov 2012 01:56:23 +0000 (17:56 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 30 Nov 2012 01:56:23 +0000 (17:56 -0800)
added patches:
acer-wmi-support-for-p-key-on-tm8372.patch
input-bcm5974-set-buttonpad-property.patch
mmc-sdhci-s3c-fix-the-wrong-number-of-max-bus-clocks.patch
usb-mct_u232-fix-broken-close.patch
watchdog-using-u64-in-get_sample_period.patch
x86-mce-therm_throt-don-t-report-power-limit-and-package.patch

queue-3.0/acer-wmi-support-for-p-key-on-tm8372.patch [new file with mode: 0644]
queue-3.0/input-bcm5974-set-buttonpad-property.patch [new file with mode: 0644]
queue-3.0/mmc-sdhci-s3c-fix-the-wrong-number-of-max-bus-clocks.patch [new file with mode: 0644]
queue-3.0/series
queue-3.0/usb-mct_u232-fix-broken-close.patch [new file with mode: 0644]
queue-3.0/watchdog-using-u64-in-get_sample_period.patch [new file with mode: 0644]
queue-3.0/x86-mce-therm_throt-don-t-report-power-limit-and-package.patch [new file with mode: 0644]

diff --git a/queue-3.0/acer-wmi-support-for-p-key-on-tm8372.patch b/queue-3.0/acer-wmi-support-for-p-key-on-tm8372.patch
new file mode 100644 (file)
index 0000000..4c2d6c7
--- /dev/null
@@ -0,0 +1,34 @@
+From 67e1d34cd54cbf33f093f1dd53e7bda1124eb972 Mon Sep 17 00:00:00 2001
+From: Merlin Schumacher <merlin.schumacher@gmail.com>
+Date: Tue, 24 Jan 2012 04:35:35 +0800
+Subject: acer-wmi: support for P key on TM8372
+
+From: Merlin Schumacher <merlin.schumacher@gmail.com>
+
+commit 67e1d34cd54cbf33f093f1dd53e7bda1124eb972 upstream.
+
+BugLink: http://launchpad.net/bugs/865807
+
+There is no entry for P key on TM8372, so when P key is pressed, only
+"acer_wmi: Unknown key number - 0x29" in dmesg.
+
+Signed-off-by: Merlin Schumacher <merlin.schumacher@gmail.com>
+Signed-off-by: Ike Panhc <ike.pan@canonical.com>
+Signed-off-by: Matthew Garrett <mjg@redhat.com>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/platform/x86/acer-wmi.c |    1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/drivers/platform/x86/acer-wmi.c
++++ b/drivers/platform/x86/acer-wmi.c
+@@ -104,6 +104,7 @@ static const struct key_entry acer_wmi_k
+       {KE_KEY, 0x22, {KEY_PROG2} },    /* Arcade */
+       {KE_KEY, 0x23, {KEY_PROG3} },    /* P_Key */
+       {KE_KEY, 0x24, {KEY_PROG4} },    /* Social networking_Key */
++      {KE_KEY, 0x29, {KEY_PROG3} },    /* P_Key for TM8372 */
+       {KE_IGNORE, 0x41, {KEY_MUTE} },
+       {KE_IGNORE, 0x42, {KEY_PREVIOUSSONG} },
+       {KE_IGNORE, 0x43, {KEY_NEXTSONG} },
diff --git a/queue-3.0/input-bcm5974-set-buttonpad-property.patch b/queue-3.0/input-bcm5974-set-buttonpad-property.patch
new file mode 100644 (file)
index 0000000..ecb20e2
--- /dev/null
@@ -0,0 +1,35 @@
+From 52965cc012f7a3cf35f06485ec275ebf3b3fddae Mon Sep 17 00:00:00 2001
+From: Jussi Pakkanen <jussi.pakkanen@canonical.com>
+Date: Tue, 10 Jan 2012 23:04:16 -0800
+Subject: Input: bcm5974 - set BUTTONPAD property
+
+From: Jussi Pakkanen <jussi.pakkanen@canonical.com>
+
+commit 52965cc012f7a3cf35f06485ec275ebf3b3fddae upstream.
+
+Some bcm5974 trackpads have a physical button beneath the physical surface.
+This patch sets the property bit so user space applications can detect the
+trackpad type and act accordingly.
+
+Signed-off-by: Jussi Pakkanen <jussi.pakkanen@canonical.com>
+Reviewed-by: Henrik Rydberg <rydberg@euromail.se>
+Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/input/mouse/bcm5974.c |    3 +++
+ 1 file changed, 3 insertions(+)
+
+--- a/drivers/input/mouse/bcm5974.c
++++ b/drivers/input/mouse/bcm5974.c
+@@ -373,6 +373,9 @@ static void setup_events_to_report(struc
+       __set_bit(BTN_TOOL_QUADTAP, input_dev->keybit);
+       __set_bit(BTN_LEFT, input_dev->keybit);
++      if (cfg->caps & HAS_INTEGRATED_BUTTON)
++              __set_bit(INPUT_PROP_BUTTONPAD, input_dev->propbit);
++
+       input_set_events_per_packet(input_dev, 60);
+ }
diff --git a/queue-3.0/mmc-sdhci-s3c-fix-the-wrong-number-of-max-bus-clocks.patch b/queue-3.0/mmc-sdhci-s3c-fix-the-wrong-number-of-max-bus-clocks.patch
new file mode 100644 (file)
index 0000000..d10613c
--- /dev/null
@@ -0,0 +1,33 @@
+From 5feb54a1ab91a237e247c013b8c4fb100ea347b1 Mon Sep 17 00:00:00 2001
+From: Jaehoon Chung <jh80.chung@samsung.com>
+Date: Wed, 19 Sep 2012 14:43:33 +0800
+Subject: mmc: sdhci-s3c: fix the wrong number of max bus clocks
+
+From: Jaehoon Chung <jh80.chung@samsung.com>
+
+commit 5feb54a1ab91a237e247c013b8c4fb100ea347b1 upstream.
+
+We can use up to four bus-clocks; but on module remove, we didn't
+disable the fourth bus clock.
+
+Signed-off-by: Jaehoon Chung <jh80.chung@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: Chris Ball <cjb@laptop.org>
+Cc: Ben Hutchings <ben@decadent.org.uk>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/mmc/host/sdhci-s3c.c |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- a/drivers/mmc/host/sdhci-s3c.c
++++ b/drivers/mmc/host/sdhci-s3c.c
+@@ -589,7 +589,7 @@ static int __devexit sdhci_s3c_remove(st
+       sdhci_remove_host(host, 1);
+-      for (ptr = 0; ptr < 3; ptr++) {
++      for (ptr = 0; ptr < MAX_BUS_CLK; ptr++) {
+               if (sc->clk_bus[ptr]) {
+                       clk_disable(sc->clk_bus[ptr]);
+                       clk_put(sc->clk_bus[ptr]);
index 6cfcbbf1c869cea4600dfae122265639ef147292..66eb723c6de767248c88a5420571ab3d21e0949b 100644 (file)
@@ -29,3 +29,9 @@ sata_svw-check-dma-start-bit-before-reset.patch
 ixgbe-add-support-for-new-82599-device.patch
 ixgbe-add-support-for-new-82599-device-id.patch
 get_dvb_firmware-fix-download-site-for-tda10046-firmware.patch
+usb-mct_u232-fix-broken-close.patch
+watchdog-using-u64-in-get_sample_period.patch
+acer-wmi-support-for-p-key-on-tm8372.patch
+x86-mce-therm_throt-don-t-report-power-limit-and-package.patch
+input-bcm5974-set-buttonpad-property.patch
+mmc-sdhci-s3c-fix-the-wrong-number-of-max-bus-clocks.patch
diff --git a/queue-3.0/usb-mct_u232-fix-broken-close.patch b/queue-3.0/usb-mct_u232-fix-broken-close.patch
new file mode 100644 (file)
index 0000000..74792bf
--- /dev/null
@@ -0,0 +1,51 @@
+From 5260e458f5eff269a43e4f1e9c47186c57b88ddb Mon Sep 17 00:00:00 2001
+From: Johan Hovold <jhovold@gmail.com>
+Date: Thu, 25 Oct 2012 10:29:14 +0200
+Subject: USB: mct_u232: fix broken close
+
+From: Johan Hovold <jhovold@gmail.com>
+
+commit 5260e458f5eff269a43e4f1e9c47186c57b88ddb upstream.
+
+Make sure generic close is called at close.
+
+The driver relies on the generic write implementation but did not call
+generic close.
+
+Note that the call to kill the read urb is not redundant, as mct_u232
+uses an interrupt urb from the second port as the read urb and that
+generic close therefore fails to kill it.
+
+Compile-only tested.
+
+Signed-off-by: Johan Hovold <jhovold@gmail.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+[bwh: Backported to 3.2: adjust context]
+Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
+---
+ drivers/usb/serial/mct_u232.c |   14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+--- a/drivers/usb/serial/mct_u232.c
++++ b/drivers/usb/serial/mct_u232.c
+@@ -577,12 +577,14 @@ static void mct_u232_close(struct usb_se
+ {
+       dbg("%s port %d", __func__, port->number);
+-      if (port->serial->dev) {
+-              /* shutdown our urbs */
+-              usb_kill_urb(port->write_urb);
+-              usb_kill_urb(port->read_urb);
+-              usb_kill_urb(port->interrupt_in_urb);
+-      }
++      /*
++       * Must kill the read urb as it is actually an interrupt urb, which
++       * generic close thus fails to kill.
++       */
++      usb_kill_urb(port->read_urb);
++      usb_kill_urb(port->interrupt_in_urb);
++
++      usb_serial_generic_close(port);
+ } /* mct_u232_close */
diff --git a/queue-3.0/watchdog-using-u64-in-get_sample_period.patch b/queue-3.0/watchdog-using-u64-in-get_sample_period.patch
new file mode 100644 (file)
index 0000000..ceeed65
--- /dev/null
@@ -0,0 +1,53 @@
+From 8ffeb9b0e6369135bf03a073514f571ef10606b9 Mon Sep 17 00:00:00 2001
+From: Chuansheng Liu <chuansheng.liu@intel.com>
+Date: Mon, 26 Nov 2012 16:29:54 -0800
+Subject: watchdog: using u64 in get_sample_period()
+
+From: Chuansheng Liu <chuansheng.liu@intel.com>
+
+commit 8ffeb9b0e6369135bf03a073514f571ef10606b9 upstream.
+
+In get_sample_period(), unsigned long is not enough:
+
+  watchdog_thresh * 2 * (NSEC_PER_SEC / 5)
+
+case1:
+  watchdog_thresh is 10 by default, the sample value will be: 0xEE6B2800
+
+case2:
+ set watchdog_thresh is 20, the sample value will be: 0x1 DCD6 5000
+
+In case2, we need use u64 to express the sample period.  Otherwise,
+changing the threshold thru proc often can not be successful.
+
+Signed-off-by: liu chuansheng <chuansheng.liu@intel.com>
+Acked-by: Don Zickus <dzickus@redhat.com>
+Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
+Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+Signed-off-by: Shuah Khan <shuah.khan@hp.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ kernel/watchdog.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/kernel/watchdog.c
++++ b/kernel/watchdog.c
+@@ -113,7 +113,7 @@ static unsigned long get_timestamp(int t
+       return cpu_clock(this_cpu) >> 30LL;  /* 2^30 ~= 10^9 */
+ }
+-static unsigned long get_sample_period(void)
++static u64 get_sample_period(void)
+ {
+       /*
+        * convert watchdog_thresh from seconds to ns
+@@ -121,7 +121,7 @@ static unsigned long get_sample_period(v
+        * increment before the hardlockup detector generates
+        * a warning
+        */
+-      return get_softlockup_thresh() * (NSEC_PER_SEC / 5);
++      return get_softlockup_thresh() * ((u64)NSEC_PER_SEC / 5);
+ }
+ /* Commands for resetting the watchdog */
diff --git a/queue-3.0/x86-mce-therm_throt-don-t-report-power-limit-and-package.patch b/queue-3.0/x86-mce-therm_throt-don-t-report-power-limit-and-package.patch
new file mode 100644 (file)
index 0000000..8af2d72
--- /dev/null
@@ -0,0 +1,105 @@
+From 29e9bf1841e4f9df13b4992a716fece7087dd237 Mon Sep 17 00:00:00 2001
+From: Fenghua Yu <fenghua.yu@intel.com>
+Date: Fri, 4 Nov 2011 13:31:23 -0700
+Subject: x86, mce, therm_throt: Don't report power limit and package level thermal throttle events in mcelog
+
+From: Fenghua Yu <fenghua.yu@intel.com>
+
+commit 29e9bf1841e4f9df13b4992a716fece7087dd237 upstream.
+
+Thermal throttle and power limit events are not defined as MCE errors in x86
+architecture and should not generate MCE errors in mcelog.
+
+Current kernel generates fake software defined MCE errors for these events.
+This may confuse users because they may think the machine has real MCE errors
+while actually only thermal throttle or power limit events happen.
+
+To make it worse, buggy firmware on some platforms may falsely generate
+the events. Therefore, kernel reports MCE errors which users think as real
+hardware errors. Although the firmware bugs should be fixed, on the other hand,
+kernel should not report MCE errors either.
+
+So mcelog is not a good mechanism to report these events. To report the events, we count them in respective counters (core_power_limit_count,
+package_power_limit_count, core_throttle_count, and package_throttle_count) in
+/sys/devices/system/cpu/cpu#/thermal_throttle/. Users can check the counters
+for each event on each CPU. Please note that all CPU's on one package report
+duplicate counters. It's user application's responsibity to retrieve a package
+level counter for one package.
+
+This patch doesn't report package level power limit, core level power limit, and
+package level thermal throttle events in mcelog. When the events happen, only
+report them in respective counters in sysfs.
+
+Since core level thermal throttle has been legacy code in kernel for a while and
+users accepted it as MCE error in mcelog, core level thermal throttle is still
+reported in mcelog. In the mean time, the event is counted in a counter in sysfs
+as well.
+
+Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
+Acked-by: Borislav Petkov <bp@amd64.org>
+Acked-by: Tony Luck <tony.luck@intel.com>
+Link: http://lkml.kernel.org/r/20111215001945.GA21009@linux-os.sc.intel.com
+Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
+Cc: maximilian attems <max@stro.at>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+
+---
+ arch/x86/kernel/cpu/mcheck/therm_throt.c |   29 +++++++----------------------
+ 1 file changed, 7 insertions(+), 22 deletions(-)
+
+--- a/arch/x86/kernel/cpu/mcheck/therm_throt.c
++++ b/arch/x86/kernel/cpu/mcheck/therm_throt.c
+@@ -322,17 +322,6 @@ device_initcall(thermal_throttle_init_de
+ #endif /* CONFIG_SYSFS */
+-/*
+- * Set up the most two significant bit to notify mce log that this thermal
+- * event type.
+- * This is a temp solution. May be changed in the future with mce log
+- * infrasture.
+- */
+-#define CORE_THROTTLED                (0)
+-#define CORE_POWER_LIMIT      ((__u64)1 << 62)
+-#define PACKAGE_THROTTLED     ((__u64)2 << 62)
+-#define PACKAGE_POWER_LIMIT   ((__u64)3 << 62)
+-
+ static void notify_thresholds(__u64 msr_val)
+ {
+       /* check whether the interrupt handler is defined;
+@@ -362,27 +351,23 @@ static void intel_thermal_interrupt(void
+       if (therm_throt_process(msr_val & THERM_STATUS_PROCHOT,
+                               THERMAL_THROTTLING_EVENT,
+                               CORE_LEVEL) != 0)
+-              mce_log_therm_throt_event(CORE_THROTTLED | msr_val);
++              mce_log_therm_throt_event(msr_val);
+       if (this_cpu_has(X86_FEATURE_PLN))
+-              if (therm_throt_process(msr_val & THERM_STATUS_POWER_LIMIT,
++              therm_throt_process(msr_val & THERM_STATUS_POWER_LIMIT,
+                                       POWER_LIMIT_EVENT,
+-                                      CORE_LEVEL) != 0)
+-                      mce_log_therm_throt_event(CORE_POWER_LIMIT | msr_val);
++                                      CORE_LEVEL);
+       if (this_cpu_has(X86_FEATURE_PTS)) {
+               rdmsrl(MSR_IA32_PACKAGE_THERM_STATUS, msr_val);
+-              if (therm_throt_process(msr_val & PACKAGE_THERM_STATUS_PROCHOT,
++              therm_throt_process(msr_val & PACKAGE_THERM_STATUS_PROCHOT,
+                                       THERMAL_THROTTLING_EVENT,
+-                                      PACKAGE_LEVEL) != 0)
+-                      mce_log_therm_throt_event(PACKAGE_THROTTLED | msr_val);
++                                      PACKAGE_LEVEL);
+               if (this_cpu_has(X86_FEATURE_PLN))
+-                      if (therm_throt_process(msr_val &
++                      therm_throt_process(msr_val &
+                                       PACKAGE_THERM_STATUS_POWER_LIMIT,
+                                       POWER_LIMIT_EVENT,
+-                                      PACKAGE_LEVEL) != 0)
+-                              mce_log_therm_throt_event(PACKAGE_POWER_LIMIT
+-                                                        | msr_val);
++                                      PACKAGE_LEVEL);
+       }
+ }