From: Greg Kroah-Hartman Date: Fri, 30 Nov 2012 01:56:23 +0000 (-0800) Subject: 3.0-stable patches X-Git-Tag: v3.6.9~5 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3ed3928906c1d33dc893dad1ed0e037d86846712;p=thirdparty%2Fkernel%2Fstable-queue.git 3.0-stable patches 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 --- 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 index 00000000000..4c2d6c7fb6f --- /dev/null +++ b/queue-3.0/acer-wmi-support-for-p-key-on-tm8372.patch @@ -0,0 +1,34 @@ +From 67e1d34cd54cbf33f093f1dd53e7bda1124eb972 Mon Sep 17 00:00:00 2001 +From: Merlin Schumacher +Date: Tue, 24 Jan 2012 04:35:35 +0800 +Subject: acer-wmi: support for P key on TM8372 + +From: Merlin Schumacher + +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 +Signed-off-by: Ike Panhc +Signed-off-by: Matthew Garrett +Cc: maximilian attems +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..ecb20e2d134 --- /dev/null +++ b/queue-3.0/input-bcm5974-set-buttonpad-property.patch @@ -0,0 +1,35 @@ +From 52965cc012f7a3cf35f06485ec275ebf3b3fddae Mon Sep 17 00:00:00 2001 +From: Jussi Pakkanen +Date: Tue, 10 Jan 2012 23:04:16 -0800 +Subject: Input: bcm5974 - set BUTTONPAD property + +From: Jussi Pakkanen + +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 +Reviewed-by: Henrik Rydberg +Signed-off-by: Dmitry Torokhov +Cc: maximilian attems +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..d10613cb5f0 --- /dev/null +++ b/queue-3.0/mmc-sdhci-s3c-fix-the-wrong-number-of-max-bus-clocks.patch @@ -0,0 +1,33 @@ +From 5feb54a1ab91a237e247c013b8c4fb100ea347b1 Mon Sep 17 00:00:00 2001 +From: Jaehoon Chung +Date: Wed, 19 Sep 2012 14:43:33 +0800 +Subject: mmc: sdhci-s3c: fix the wrong number of max bus clocks + +From: Jaehoon Chung + +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 +Signed-off-by: Kyungmin Park +Signed-off-by: Chris Ball +Cc: Ben Hutchings +Signed-off-by: Greg Kroah-Hartman + +--- + 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]); diff --git a/queue-3.0/series b/queue-3.0/series index 6cfcbbf1c86..66eb723c6de 100644 --- a/queue-3.0/series +++ b/queue-3.0/series @@ -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 index 00000000000..74792bf81a7 --- /dev/null +++ b/queue-3.0/usb-mct_u232-fix-broken-close.patch @@ -0,0 +1,51 @@ +From 5260e458f5eff269a43e4f1e9c47186c57b88ddb Mon Sep 17 00:00:00 2001 +From: Johan Hovold +Date: Thu, 25 Oct 2012 10:29:14 +0200 +Subject: USB: mct_u232: fix broken close + +From: Johan Hovold + +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 +Signed-off-by: Greg Kroah-Hartman +[bwh: Backported to 3.2: adjust context] +Signed-off-by: Ben Hutchings +--- + 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 index 00000000000..ceeed6572d5 --- /dev/null +++ b/queue-3.0/watchdog-using-u64-in-get_sample_period.patch @@ -0,0 +1,53 @@ +From 8ffeb9b0e6369135bf03a073514f571ef10606b9 Mon Sep 17 00:00:00 2001 +From: Chuansheng Liu +Date: Mon, 26 Nov 2012 16:29:54 -0800 +Subject: watchdog: using u64 in get_sample_period() + +From: Chuansheng Liu + +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 +Acked-by: Don Zickus +Signed-off-by: Andrew Morton +Signed-off-by: Linus Torvalds +Signed-off-by: Shuah Khan +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..8af2d72d5cd --- /dev/null +++ b/queue-3.0/x86-mce-therm_throt-don-t-report-power-limit-and-package.patch @@ -0,0 +1,105 @@ +From 29e9bf1841e4f9df13b4992a716fece7087dd237 Mon Sep 17 00:00:00 2001 +From: Fenghua Yu +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 + +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 +Acked-by: Borislav Petkov +Acked-by: Tony Luck +Link: http://lkml.kernel.org/r/20111215001945.GA21009@linux-os.sc.intel.com +Signed-off-by: H. Peter Anvin +Cc: maximilian attems +Signed-off-by: Greg Kroah-Hartman + + +--- + 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); + } + } +