Commit b819a9bf authored by Johannes Berg's avatar Johannes Berg Committed by Paul Mackerras

[POWERPC] via-pmu: Kill sleep notifiers completely

This kills off the remnants of the old sleep notifiers now that they
are no longer used.
Signed-off-by: default avatarJohannes Berg <johannes@sipsolutions.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
parent c9f6d3d5
...@@ -174,7 +174,6 @@ static struct proc_dir_entry *proc_pmu_batt[PMU_MAX_BATTERIES]; ...@@ -174,7 +174,6 @@ static struct proc_dir_entry *proc_pmu_batt[PMU_MAX_BATTERIES];
int __fake_sleep; int __fake_sleep;
int asleep; int asleep;
BLOCKING_NOTIFIER_HEAD(sleep_notifier_list);
#ifdef CONFIG_ADB #ifdef CONFIG_ADB
static int adb_dev_map; static int adb_dev_map;
...@@ -1719,67 +1718,7 @@ pmu_present(void) ...@@ -1719,67 +1718,7 @@ pmu_present(void)
return via != 0; return via != 0;
} }
#ifdef CONFIG_PM_SLEEP
static LIST_HEAD(sleep_notifiers);
int
pmu_register_sleep_notifier(struct pmu_sleep_notifier *n)
{
struct list_head *list;
struct pmu_sleep_notifier *notifier;
for (list = sleep_notifiers.next; list != &sleep_notifiers;
list = list->next) {
notifier = list_entry(list, struct pmu_sleep_notifier, list);
if (n->priority > notifier->priority)
break;
}
__list_add(&n->list, list->prev, list);
return 0;
}
EXPORT_SYMBOL(pmu_register_sleep_notifier);
int
pmu_unregister_sleep_notifier(struct pmu_sleep_notifier* n)
{
if (n->list.next == 0)
return -ENOENT;
list_del(&n->list);
n->list.next = NULL;
return 0;
}
EXPORT_SYMBOL(pmu_unregister_sleep_notifier);
#endif /* CONFIG_PM_SLEEP */
#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) #if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
/* Sleep is broadcast last-to-first */
static void broadcast_sleep(int when)
{
struct list_head *list;
struct pmu_sleep_notifier *notifier;
for (list = sleep_notifiers.prev; list != &sleep_notifiers;
list = list->prev) {
notifier = list_entry(list, struct pmu_sleep_notifier, list);
notifier->notifier_call(notifier, when);
}
}
/* Wake is broadcast first-to-last */
static void broadcast_wake(void)
{
struct list_head *list;
struct pmu_sleep_notifier *notifier;
for (list = sleep_notifiers.next; list != &sleep_notifiers;
list = list->next) {
notifier = list_entry(list, struct pmu_sleep_notifier, list);
notifier->notifier_call(notifier, PBOOK_WAKE);
}
}
/* /*
* This struct is used to store config register values for * This struct is used to store config register values for
* PCI devices which may get powered off when we sleep. * PCI devices which may get powered off when we sleep.
...@@ -1962,9 +1901,6 @@ pmac_suspend_devices(void) ...@@ -1962,9 +1901,6 @@ pmac_suspend_devices(void)
pm_prepare_console(); pm_prepare_console();
/* Notify old-style device drivers */
broadcast_sleep(PBOOK_SLEEP_REQUEST);
/* Sync the disks. */ /* Sync the disks. */
/* XXX It would be nice to have some way to ensure that /* XXX It would be nice to have some way to ensure that
* nobody is dirtying any new buffers while we wait. That * nobody is dirtying any new buffers while we wait. That
...@@ -1973,12 +1909,9 @@ pmac_suspend_devices(void) ...@@ -1973,12 +1909,9 @@ pmac_suspend_devices(void)
*/ */
sys_sync(); sys_sync();
broadcast_sleep(PBOOK_SLEEP_NOW);
/* Send suspend call to devices, hold the device core's dpm_sem */ /* Send suspend call to devices, hold the device core's dpm_sem */
ret = device_suspend(PMSG_SUSPEND); ret = device_suspend(PMSG_SUSPEND);
if (ret) { if (ret) {
broadcast_wake();
printk(KERN_ERR "Driver sleep failed\n"); printk(KERN_ERR "Driver sleep failed\n");
return -EBUSY; return -EBUSY;
} }
...@@ -2019,7 +1952,6 @@ pmac_suspend_devices(void) ...@@ -2019,7 +1952,6 @@ pmac_suspend_devices(void)
local_irq_enable(); local_irq_enable();
preempt_enable(); preempt_enable();
device_resume(); device_resume();
broadcast_wake();
printk(KERN_ERR "Driver powerdown failed\n"); printk(KERN_ERR "Driver powerdown failed\n");
return -EBUSY; return -EBUSY;
} }
...@@ -2073,9 +2005,6 @@ pmac_wakeup_devices(void) ...@@ -2073,9 +2005,6 @@ pmac_wakeup_devices(void)
/* Resume devices */ /* Resume devices */
device_resume(); device_resume();
/* Notify old style drivers */
broadcast_wake();
pm_restore_console(); pm_restore_console();
return 0; return 0;
......
...@@ -159,42 +159,6 @@ extern void pmu_unlock(void); ...@@ -159,42 +159,6 @@ extern void pmu_unlock(void);
extern int pmu_present(void); extern int pmu_present(void);
extern int pmu_get_model(void); extern int pmu_get_model(void);
#ifdef CONFIG_PM
/*
* Stuff for putting the powerbook to sleep and waking it again.
*
*/
#include <linux/list.h>
struct pmu_sleep_notifier
{
void (*notifier_call)(struct pmu_sleep_notifier *self, int when);
int priority;
struct list_head list;
};
/* Code values for calling sleep/wakeup handlers
*/
#define PBOOK_SLEEP_REQUEST 1
#define PBOOK_SLEEP_NOW 2
#define PBOOK_WAKE 3
/* priority levels in notifiers */
#define SLEEP_LEVEL_VIDEO 100 /* Video driver (first wake) */
#define SLEEP_LEVEL_MEDIABAY 90 /* Media bay driver */
#define SLEEP_LEVEL_BLOCK 80 /* IDE, SCSI */
#define SLEEP_LEVEL_NET 70 /* bmac, gmac */
#define SLEEP_LEVEL_MISC 60 /* Anything else */
#define SLEEP_LEVEL_USERLAND 55 /* Reserved for apm_emu */
#define SLEEP_LEVEL_ADB 50 /* ADB (async) */
#define SLEEP_LEVEL_SOUND 40 /* Sound driver (blocking) */
/* special register notifier functions */
int pmu_register_sleep_notifier(struct pmu_sleep_notifier* notifier);
int pmu_unregister_sleep_notifier(struct pmu_sleep_notifier* notifier);
#endif /* CONFIG_PM */
#define PMU_MAX_BATTERIES 2 #define PMU_MAX_BATTERIES 2
/* values for pmu_power_flags */ /* values for pmu_power_flags */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment