From: Greg Kroah-Hartman Date: Wed, 11 Jul 2012 19:58:12 +0000 (-0700) Subject: 3.4-stable patches X-Git-Tag: v3.0.37~19 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=efe09e31f99cebc2a98ff79635e07ea9137492d9;p=thirdparty%2Fkernel%2Fstable-queue.git 3.4-stable patches 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 --- diff --git a/queue-3.4/acpi-add-a-quirk-for-amilo-pro-v2030-to-ignore-the-timer-overriding.patch b/queue-3.4/acpi-add-a-quirk-for-amilo-pro-v2030-to-ignore-the-timer-overriding.patch index 7d5c548c391..8c18082f0b7 100644 --- a/queue-3.4/acpi-add-a-quirk-for-amilo-pro-v2030-to-ignore-the-timer-overriding.patch +++ b/queue-3.4/acpi-add-a-quirk-for-amilo-pro-v2030-to-ignore-the-timer-overriding.patch @@ -27,7 +27,7 @@ Signed-off-by: Greg Kroah-Hartman --- 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 index 00000000000..b2fddb7df4c --- /dev/null +++ b/queue-3.4/acpi-make-acpi_skip_timer_override-cover-all-source_irq-0-cases.patch @@ -0,0 +1,75 @@ +From ae10ccdc3093486f8c2369d227583f9d79f628e5 Mon Sep 17 00:00:00 2001 +From: Feng Tang +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 + +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 +Signed-off-by: Feng Tang +Signed-off-by: Len Brown +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..ca64147f692 --- /dev/null +++ b/queue-3.4/acpi-pm-make-acpi_pm_device_sleep_state-follow-the-specification.patch @@ -0,0 +1,46 @@ +From dbe9a2edd17d843d80faf2b99f20a691c1853418 Mon Sep 17 00:00:00 2001 +From: "Rafael J. Wysocki" +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" + +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 +Signed-off-by: Greg Kroah-Hartman + +--- + 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 index 00000000000..c87633bdcd6 --- /dev/null +++ b/queue-3.4/acpi-remove-one-board-specific-warn-when-ignoring-timer-overriding.patch @@ -0,0 +1,36 @@ +From 7f68b4c2e158019c2ec494b5cfbd9c83b4e5b253 Mon Sep 17 00:00:00 2001 +From: Feng Tang +Date: Mon, 4 Jun 2012 15:00:05 +0800 +Subject: ACPI: Remove one board specific WARN when ignoring timer overriding + +From: Feng Tang + +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 +Signed-off-by: Len Brown +Signed-off-by: Greg Kroah-Hartman + +--- + 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; diff --git a/queue-3.4/series b/queue-3.4/series index 93c4e8c407a..487289fa53d 100644 --- a/queue-3.4/series +++ b/queue-3.4/series @@ -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