The patch titled
s2ram: add arch irq disable/enable hooks
has been removed from the -mm tree. Its filename was
s2ram-add-arch-irq-disable-enable-hooks.patch
This patch was dropped because it was merged into mainline or a subsystem tree
------------------------------------------------------
Subject: s2ram: add arch irq disable/enable hooks
From: Johannes Berg <[EMAIL PROTECTED]>
For powermac, we need to do some things between suspending devices and
device_power_off, for example setting the decrementer. This patch allows
architectures to define arch_s2ram_{en,dis}able_irqs in their asm/suspend.h
to have control over this step.
Signed-off-by: Johannes Berg <[EMAIL PROTECTED]>
Acked-by: Pavel Machek <[EMAIL PROTECTED]>
Cc: Greg KH <[EMAIL PROTECTED]>
Cc: Paul Mackerras <[EMAIL PROTECTED]>
Cc: Benjamin Herrenschmidt <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
---
include/linux/pm.h | 18 ++++++++++++++++++
kernel/power/main.c | 18 +++++++++++++++---
2 files changed, 33 insertions(+), 3 deletions(-)
diff -puN include/linux/pm.h~s2ram-add-arch-irq-disable-enable-hooks
include/linux/pm.h
--- a/include/linux/pm.h~s2ram-add-arch-irq-disable-enable-hooks
+++ a/include/linux/pm.h
@@ -170,6 +170,24 @@ extern int pm_suspend(suspend_state_t st
extern int pm_valid_only_mem(suspend_state_t state);
+/**
+ * arch_suspend_disable_irqs - disable IRQs for suspend
+ *
+ * Disables IRQs (in the default case). This is a weak symbol in the common
+ * code and thus allows architectures to override it if more needs to be
+ * done. Not called for suspend to disk.
+ */
+extern void arch_suspend_disable_irqs(void);
+
+/**
+ * arch_suspend_enable_irqs - enable IRQs after suspend
+ *
+ * Enables IRQs (in the default case). This is a weak symbol in the common
+ * code and thus allows architectures to override it if more needs to be
+ * done. Not called for suspend to disk.
+ */
+extern void arch_suspend_enable_irqs(void);
+
/*
* Device power management
*/
diff -puN kernel/power/main.c~s2ram-add-arch-irq-disable-enable-hooks
kernel/power/main.c
--- a/kernel/power/main.c~s2ram-add-arch-irq-disable-enable-hooks
+++ a/kernel/power/main.c
@@ -128,13 +128,24 @@ static int suspend_prepare(suspend_state
return error;
}
+/* default implementation */
+void __attribute__ ((weak)) arch_suspend_disable_irqs(void)
+{
+ local_irq_disable();
+}
+
+/* default implementation */
+void __attribute__ ((weak)) arch_suspend_enable_irqs(void)
+{
+ local_irq_enable();
+}
int suspend_enter(suspend_state_t state)
{
int error = 0;
- unsigned long flags;
- local_irq_save(flags);
+ arch_suspend_disable_irqs();
+ BUG_ON(!irqs_disabled());
if ((error = device_power_down(PMSG_SUSPEND))) {
printk(KERN_ERR "Some devices failed to power down\n");
@@ -143,7 +154,8 @@ int suspend_enter(suspend_state_t state)
error = pm_ops->enter(state);
device_power_up();
Done:
- local_irq_restore(flags);
+ arch_suspend_enable_irqs();
+ BUG_ON(irqs_disabled());
return error;
}
_
Patches currently in -mm which might be from [EMAIL PROTECTED] are
origin.patch
rework-pm_ops-pm_disk_mode-kill-misuse.patch
power-management-remove-firmware-disk-mode.patch
power-management-implement-pm_opsvalid-for-everybody.patch
power-management-implement-pm_opsvalid-for-everybody-fix.patch
power-management-force-pm_opsvalid-callback-to-be.patch
git-alsa.patch
git-powerpc.patch
git-powerpc-arch-powerpc-sysdev-timerc-build-fix.patch
power-management-remove-some-useless-code-from-arm.patch
remove-software_suspend.patch
power-management-change-sys-power-disk-display.patch
fix-sscanf-%n-match-at-end-of-input-string.patch
fix-sscanf-%n-match-at-end-of-input-string-tidy.patch
kernel-doc-html-mode-struct-highlights.patch
-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at http://vger.kernel.org/majordomo-info.html