Skip to content

Commit

Permalink
[POWERPC] via-pmu: Kill sleep notifiers completely
Browse files Browse the repository at this point in the history
This kills off the remnants of the old sleep notifiers now that they
are no longer used.

Signed-off-by: Johannes Berg <johannes@sipsolutions.net>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
  • Loading branch information
Johannes Berg authored and Paul Mackerras committed Dec 19, 2007
1 parent c9f6d3d commit b819a9b
Show file tree
Hide file tree
Showing 2 changed files with 0 additions and 107 deletions.
71 changes: 0 additions & 71 deletions drivers/macintosh/via-pmu.c
Original file line number Diff line number Diff line change
Expand Up @@ -174,7 +174,6 @@ static struct proc_dir_entry *proc_pmu_batt[PMU_MAX_BATTERIES];

int __fake_sleep;
int asleep;
BLOCKING_NOTIFIER_HEAD(sleep_notifier_list);

#ifdef CONFIG_ADB
static int adb_dev_map;
Expand Down Expand Up @@ -1719,67 +1718,7 @@ pmu_present(void)
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)

/* 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
* PCI devices which may get powered off when we sleep.
Expand Down Expand Up @@ -1962,9 +1901,6 @@ pmac_suspend_devices(void)

pm_prepare_console();

/* Notify old-style device drivers */
broadcast_sleep(PBOOK_SLEEP_REQUEST);

/* Sync the disks. */
/* XXX It would be nice to have some way to ensure that
* nobody is dirtying any new buffers while we wait. That
Expand All @@ -1973,12 +1909,9 @@ pmac_suspend_devices(void)
*/
sys_sync();

broadcast_sleep(PBOOK_SLEEP_NOW);

/* Send suspend call to devices, hold the device core's dpm_sem */
ret = device_suspend(PMSG_SUSPEND);
if (ret) {
broadcast_wake();
printk(KERN_ERR "Driver sleep failed\n");
return -EBUSY;
}
Expand Down Expand Up @@ -2019,7 +1952,6 @@ pmac_suspend_devices(void)
local_irq_enable();
preempt_enable();
device_resume();
broadcast_wake();
printk(KERN_ERR "Driver powerdown failed\n");
return -EBUSY;
}
Expand Down Expand Up @@ -2073,9 +2005,6 @@ pmac_wakeup_devices(void)
/* Resume devices */
device_resume();

/* Notify old style drivers */
broadcast_wake();

pm_restore_console();

return 0;
Expand Down
36 changes: 0 additions & 36 deletions include/linux/pmu.h
Original file line number Diff line number Diff line change
Expand Up @@ -159,42 +159,6 @@ extern void pmu_unlock(void);
extern int pmu_present(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

/* values for pmu_power_flags */
Expand Down

0 comments on commit b819a9b

Please sign in to comment.