]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Jun 2014 21:04:30 +0000 (14:04 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 4 Jun 2014 21:04:30 +0000 (14:04 -0700)
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

queue-3.4/acpi-blacklist-add-dmi_enable_osi_linux-quirk-for-asus-eee-pc-1015px.patch [new file with mode: 0644]
queue-3.4/i2c-designware-mask-all-interrupts-during-i2c-controller-enable.patch [new file with mode: 0644]
queue-3.4/series

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 (file)
index 0000000..01f2bd8
--- /dev/null
@@ -0,0 +1,49 @@
+From f6e6e1b9fee88c90586787b71dc49bb3ce62bb89 Mon Sep 17 00:00:00 2001
+From: Hans de Goede <hdegoede@redhat.com>
+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 <hdegoede@redhat.com>
+
+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 <hdegoede@redhat.com>
+Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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 (file)
index 0000000..e35b5eb
--- /dev/null
@@ -0,0 +1,58 @@
+From 47bb27e78867997040a228328f2a631c3c7f2c82 Mon Sep 17 00:00:00 2001
+From: "Du, Wenkai" <wenkai.du@intel.com>
+Date: Thu, 10 Apr 2014 23:03:19 +0000
+Subject: i2c: designware: Mask all interrupts during i2c controller enable
+
+From: "Du, Wenkai" <wenkai.du@intel.com>
+
+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 <wenkai.du@intel.com>
+Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com>
+[wsa: improved the comment and removed typo in commit msg]
+Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ 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);
index b7fde96fcc1fcd6886e73e909f9a2717cc0b2113..99394110b01aa0860e0a592cd79de0dc9aeef97b 100644 (file)
@@ -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