]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
3.4-stable patches
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Jul 2012 19:58:12 +0000 (12:58 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 11 Jul 2012 19:58:12 +0000 (12:58 -0700)
added patches:
acpi-make-acpi_skip_timer_override-cover-all-source_irq-0-cases.patch
acpi-pm-make-acpi_pm_device_sleep_state-follow-the-specification.patch
acpi-remove-one-board-specific-warn-when-ignoring-timer-overriding.patch

queue-3.4/acpi-add-a-quirk-for-amilo-pro-v2030-to-ignore-the-timer-overriding.patch
queue-3.4/acpi-make-acpi_skip_timer_override-cover-all-source_irq-0-cases.patch [new file with mode: 0644]
queue-3.4/acpi-pm-make-acpi_pm_device_sleep_state-follow-the-specification.patch [new file with mode: 0644]
queue-3.4/acpi-remove-one-board-specific-warn-when-ignoring-timer-overriding.patch [new file with mode: 0644]
queue-3.4/series

index 7d5c548c391f68a8241b3a1c4050ecbea7779f60..8c18082f0b7a4eda5e8a0c2bc2ec58406701adb1 100644 (file)
@@ -27,7 +27,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- a/arch/x86/kernel/acpi/boot.c
 +++ b/arch/x86/kernel/acpi/boot.c
-@@ -1473,6 +1473,14 @@ static struct dmi_system_id __initdata a
+@@ -1470,6 +1470,14 @@ static struct dmi_system_id __initdata a
                     DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"),
                     },
         },
diff --git a/queue-3.4/acpi-make-acpi_skip_timer_override-cover-all-source_irq-0-cases.patch b/queue-3.4/acpi-make-acpi_skip_timer_override-cover-all-source_irq-0-cases.patch
new file mode 100644 (file)
index 0000000..b2fddb7
--- /dev/null
@@ -0,0 +1,75 @@
+From ae10ccdc3093486f8c2369d227583f9d79f628e5 Mon Sep 17 00:00:00 2001
+From: Feng Tang <feng.tang@intel.com>
+Date: Mon, 4 Jun 2012 15:00:04 +0800
+Subject: ACPI: Make acpi_skip_timer_override cover all source_irq==0 cases
+
+From: Feng Tang <feng.tang@intel.com>
+
+commit ae10ccdc3093486f8c2369d227583f9d79f628e5 upstream.
+
+Currently when acpi_skip_timer_override is set, it only cover the
+(source_irq == 0 && global_irq == 2) cases. While there is also
+platform which need use this option and its global_irq is not 2.
+This patch will extend acpi_skip_timer_override to cover all
+timer overriding cases as long as the source irq is 0.
+
+This is the first part of a fix to kernel bug bugzilla 40002:
+       "IRQ 0 assigned to VGA"
+https://bugzilla.kernel.org/show_bug.cgi?id=40002
+
+Reported-and-tested-by: Szymon Kowalczyk <fazerxlo@o2.pl>
+Signed-off-by: Feng Tang <feng.tang@intel.com>
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/kernel/acpi/boot.c |   14 ++++++++------
+ 1 file changed, 8 insertions(+), 6 deletions(-)
+
+--- a/arch/x86/kernel/acpi/boot.c
++++ b/arch/x86/kernel/acpi/boot.c
+@@ -422,12 +422,14 @@ acpi_parse_int_src_ovr(struct acpi_subta
+               return 0;
+       }
+-      if (intsrc->source_irq == 0 && intsrc->global_irq == 2) {
++      if (intsrc->source_irq == 0) {
+               if (acpi_skip_timer_override) {
+-                      printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n");
++                      printk(PREFIX "BIOS IRQ0 override ignored.\n");
+                       return 0;
+               }
+-              if (acpi_fix_pin2_polarity && (intsrc->inti_flags & ACPI_MADT_POLARITY_MASK)) {
++
++              if ((intsrc->global_irq == 2) && acpi_fix_pin2_polarity
++                      && (intsrc->inti_flags & ACPI_MADT_POLARITY_MASK)) {
+                       intsrc->inti_flags &= ~ACPI_MADT_POLARITY_MASK;
+                       printk(PREFIX "BIOS IRQ0 pin2 override: forcing polarity to high active.\n");
+               }
+@@ -1334,7 +1336,7 @@ static int __init dmi_disable_acpi(const
+ }
+ /*
+- * Force ignoring BIOS IRQ0 pin2 override
++ * Force ignoring BIOS IRQ0 override
+  */
+ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
+ {
+@@ -1344,7 +1346,7 @@ static int __init dmi_ignore_irq0_timer_
+        */
+       if (!acpi_skip_timer_override) {
+               WARN(1, KERN_ERR "ati_ixp4x0 quirk not complete.\n");
+-              pr_notice("%s detected: Ignoring BIOS IRQ0 pin2 override\n",
++              pr_notice("%s detected: Ignoring BIOS IRQ0 override\n",
+                       d->ident);
+               acpi_skip_timer_override = 1;
+       }
+@@ -1438,7 +1440,7 @@ static struct dmi_system_id __initdata a
+        * is enabled.  This input is incorrectly designated the
+        * ISA IRQ 0 via an interrupt source override even though
+        * it is wired to the output of the master 8259A and INTIN0
+-       * is not connected at all.  Force ignoring BIOS IRQ0 pin2
++       * is not connected at all.  Force ignoring BIOS IRQ0
+        * override in that cases.
+        */
+       {
diff --git a/queue-3.4/acpi-pm-make-acpi_pm_device_sleep_state-follow-the-specification.patch b/queue-3.4/acpi-pm-make-acpi_pm_device_sleep_state-follow-the-specification.patch
new file mode 100644 (file)
index 0000000..ca64147
--- /dev/null
@@ -0,0 +1,46 @@
+From dbe9a2edd17d843d80faf2b99f20a691c1853418 Mon Sep 17 00:00:00 2001
+From: "Rafael J. Wysocki" <rjw@sisk.pl>
+Date: Tue, 29 May 2012 21:21:07 +0200
+Subject: ACPI / PM: Make acpi_pm_device_sleep_state() follow the specification
+
+From: "Rafael J. Wysocki" <rjw@sisk.pl>
+
+commit dbe9a2edd17d843d80faf2b99f20a691c1853418 upstream.
+
+The comparison between the system sleep state being entered
+and the lowest system sleep state the given device may wake up
+from in acpi_pm_device_sleep_state() is reversed, because the
+specification (ACPI 5.0) says that for wakeup to work:
+
+"The sleeping state being entered must be less than or equal to the
+ power state declared in element 1 of the _PRW object."
+
+In other words, the state returned by _PRW is the deepest
+(lowest-power) system sleep state the device is capable of waking up
+the system from.
+
+Moreover, acpi_pm_device_sleep_state() also should check if the
+wakeup capability is supported through ACPI, because in principle it
+may be done via native PCIe PME, for example, in which case _SxW
+should not be evaluated.
+
+Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ drivers/acpi/sleep.c |    4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+--- a/drivers/acpi/sleep.c
++++ b/drivers/acpi/sleep.c
+@@ -732,8 +732,8 @@ int acpi_pm_device_sleep_state(struct de
+        * can wake the system.  _S0W may be valid, too.
+        */
+       if (acpi_target_sleep_state == ACPI_STATE_S0 ||
+-          (device_may_wakeup(dev) &&
+-           adev->wakeup.sleep_state <= acpi_target_sleep_state)) {
++          (device_may_wakeup(dev) && adev->wakeup.flags.valid &&
++           adev->wakeup.sleep_state >= acpi_target_sleep_state)) {
+               acpi_status status;
+               acpi_method[3] = 'W';
diff --git a/queue-3.4/acpi-remove-one-board-specific-warn-when-ignoring-timer-overriding.patch b/queue-3.4/acpi-remove-one-board-specific-warn-when-ignoring-timer-overriding.patch
new file mode 100644 (file)
index 0000000..c87633b
--- /dev/null
@@ -0,0 +1,36 @@
+From 7f68b4c2e158019c2ec494b5cfbd9c83b4e5b253 Mon Sep 17 00:00:00 2001
+From: Feng Tang <feng.tang@intel.com>
+Date: Mon, 4 Jun 2012 15:00:05 +0800
+Subject: ACPI: Remove one board specific WARN when ignoring timer overriding
+
+From: Feng Tang <feng.tang@intel.com>
+
+commit 7f68b4c2e158019c2ec494b5cfbd9c83b4e5b253 upstream.
+
+Current WARN msg is only for the ati_ixp4x0 board, while this function
+is used by mulitple platforms. So this one board specific warning
+is not appropriate any more.
+
+Signed-off-by: Feng Tang <feng.tang@intel.com>
+Signed-off-by: Len Brown <len.brown@intel.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
+
+---
+ arch/x86/kernel/acpi/boot.c |    5 -----
+ 1 file changed, 5 deletions(-)
+
+--- a/arch/x86/kernel/acpi/boot.c
++++ b/arch/x86/kernel/acpi/boot.c
+@@ -1340,12 +1340,7 @@ static int __init dmi_disable_acpi(const
+  */
+ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
+ {
+-      /*
+-       * The ati_ixp4x0_rev() early PCI quirk should have set
+-       * the acpi_skip_timer_override flag already:
+-       */
+       if (!acpi_skip_timer_override) {
+-              WARN(1, KERN_ERR "ati_ixp4x0 quirk not complete.\n");
+               pr_notice("%s detected: Ignoring BIOS IRQ0 override\n",
+                       d->ident);
+               acpi_skip_timer_override = 1;
index 93c4e8c407a33eebc27edbfff15e4bb63125d940..487289fa53d89190867b877f86bd1ab4a30bf42a 100644 (file)
@@ -75,6 +75,8 @@ drm-radeon-fix-vm-page-table-setup-on-si.patch
 acpi-video-still-use-acpi-backlight-control-if-_dos-doesn-t-exist.patch
 acpi_pad-fix-power_saving-thread-deadlock.patch
 acpi-apei-avoid-too-much-error-reporting-in-runtime.patch
+acpi-make-acpi_skip_timer_override-cover-all-source_irq-0-cases.patch
+acpi-remove-one-board-specific-warn-when-ignoring-timer-overriding.patch
 acpi-add-a-quirk-for-amilo-pro-v2030-to-ignore-the-timer-overriding.patch
 acpi-x86-fix-dell-m6600-acpi-reboot-regression-via-dmi.patch
 acpi-sysfs.c-strlen-fix.patch
@@ -140,3 +142,4 @@ mm-memblock-fix-overlapping-allocation-when-doubling-reserved-array.patch
 omapdss-use-dsi_fifo_bug-workaround-only-for-manual-update-displays.patch
 e1000e-test-for-valid-check_reset_block-function-pointer.patch
 hid-hid-multitouch-fix-wrong-protocol-detection.patch
+acpi-pm-make-acpi_pm_device_sleep_state-follow-the-specification.patch