From: Greg Kroah-Hartman Date: Wed, 4 Jun 2014 21:04:30 +0000 (-0700) Subject: 3.4-stable patches X-Git-Tag: v3.14.6~37 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b5d0c1f7d6603ea980306a239ad147f7adcf435e;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches added patches: acpi-blacklist-add-dmi_enable_osi_linux-quirk-for-asus-eee-pc-1015px.patch i2c-designware-mask-all-interrupts-during-i2c-controller-enable.patch --- diff --git a/queue-3.4/acpi-blacklist-add-dmi_enable_osi_linux-quirk-for-asus-eee-pc-1015px.patch b/queue-3.4/acpi-blacklist-add-dmi_enable_osi_linux-quirk-for-asus-eee-pc-1015px.patch new file mode 100644 index 00000000000..01f2bd86d3a --- /dev/null +++ b/queue-3.4/acpi-blacklist-add-dmi_enable_osi_linux-quirk-for-asus-eee-pc-1015px.patch @@ -0,0 +1,49 @@ +From f6e6e1b9fee88c90586787b71dc49bb3ce62bb89 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 5 May 2014 11:38:09 +0200 +Subject: ACPI / blacklist: Add dmi_enable_osi_linux quirk for Asus EEE PC 1015PX + +From: Hans de Goede + +commit f6e6e1b9fee88c90586787b71dc49bb3ce62bb89 upstream. + +Without this this EEE PC exports a non working WMI interface, with this it +exports a working "good old" eeepc_laptop interface, fixing brightness control +not working as well as rfkill being stuck in a permanent wireless blocked +state. + +This is not an ideal way to fix this, but various attempts to fix this +otherwise have failed, see: + +References: https://bugzilla.redhat.com/show_bug.cgi?id=1067181 +Reported-and-tested-by: lou.cardone@gmail.com +Signed-off-by: Hans de Goede +Signed-off-by: Rafael J. Wysocki +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/acpi/blacklist.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +--- a/drivers/acpi/blacklist.c ++++ b/drivers/acpi/blacklist.c +@@ -327,6 +327,19 @@ static struct dmi_system_id acpi_osi_dmi + DMI_MATCH(DMI_PRODUCT_VERSION, "ThinkPad T500"), + }, + }, ++ /* ++ * Without this this EEEpc exports a non working WMI interface, with ++ * this it exports a working "good old" eeepc_laptop interface, fixing ++ * both brightness control, and rfkill not working. ++ */ ++ { ++ .callback = dmi_enable_osi_linux, ++ .ident = "Asus EEE PC 1015PX", ++ .matches = { ++ DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer INC."), ++ DMI_MATCH(DMI_PRODUCT_NAME, "1015PX"), ++ }, ++ }, + {} + }; + diff --git a/queue-3.4/i2c-designware-mask-all-interrupts-during-i2c-controller-enable.patch b/queue-3.4/i2c-designware-mask-all-interrupts-during-i2c-controller-enable.patch new file mode 100644 index 00000000000..e35b5eba81a --- /dev/null +++ b/queue-3.4/i2c-designware-mask-all-interrupts-during-i2c-controller-enable.patch @@ -0,0 +1,58 @@ +From 47bb27e78867997040a228328f2a631c3c7f2c82 Mon Sep 17 00:00:00 2001 +From: "Du, Wenkai" +Date: Thu, 10 Apr 2014 23:03:19 +0000 +Subject: i2c: designware: Mask all interrupts during i2c controller enable + +From: "Du, Wenkai" + +commit 47bb27e78867997040a228328f2a631c3c7f2c82 upstream. + +There have been "i2c_designware 80860F41:00: controller timed out" errors +on a number of Baytrail platforms. The issue is caused by incorrect value in +Interrupt Mask Register (DW_IC_INTR_MASK) when i2c core is being enabled. +This causes call to __i2c_dw_enable() to immediately start the transfer which +leads to timeout. There are 3 failure modes observed: + +1. Failure in S0 to S3 resume path + +The default value after reset for DW_IC_INTR_MASK is 0x8ff. When we start +the first transaction after resuming from system sleep, TX_EMPTY interrupt +is already unmasked because of the hardware default. + +2. Failure in normal operational path + +This failure happens rarely and is hard to reproduce. Debug trace showed that +DW_IC_INTR_MASK had value of 0x254 when failure occurred, which meant +TX_EMPTY was unmasked. + +3. Failure in S3 to S0 suspend path + +This failure also happens rarely and is hard to reproduce. Adding debug trace +that read DW_IC_INTR_MASK made this failure not reproducible. But from ISR +call trace we could conclude TX_EMPTY was unmasked when problem occurred. + +The patch masks all interrupts before the controller is enabled to resolve the +faulty DW_IC_INTR_MASK conditions. + +Signed-off-by: Wenkai Du +Acked-by: Mika Westerberg +[wsa: improved the comment and removed typo in commit msg] +Signed-off-by: Wolfram Sang +Signed-off-by: Greg Kroah-Hartman + +--- + drivers/i2c/busses/i2c-designware-core.c | 3 +++ + 1 file changed, 3 insertions(+) + +--- a/drivers/i2c/busses/i2c-designware-core.c ++++ b/drivers/i2c/busses/i2c-designware-core.c +@@ -346,6 +346,9 @@ static void i2c_dw_xfer_init(struct dw_i + ic_con &= ~DW_IC_CON_10BITADDR_MASTER; + dw_writel(dev, ic_con, DW_IC_CON); + ++ /* enforce disabled interrupts (due to HW issues) */ ++ i2c_dw_disable_int(dev); ++ + /* Enable the adapter */ + dw_writel(dev, 1, DW_IC_ENABLE); + diff --git a/queue-3.4/series b/queue-3.4/series index b7fde96fcc1..99394110b01 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -69,3 +69,5 @@ percpu-make-pcpu_alloc_chunk-use-pcpu_mem_free-instead-of-kfree.patch asoc-wm8962-update-register-class_d_control_1-to-be-non-volatile.patch x86-64-modify_ldt-make-support-for-16-bit-segments-a-runtime-option.patch pci-shpchp-check-bridge-s-secondary-not-primary-bus-speed.patch +acpi-blacklist-add-dmi_enable_osi_linux-quirk-for-asus-eee-pc-1015px.patch +i2c-designware-mask-all-interrupts-during-i2c-controller-enable.patch