aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJohannes Berg <johannes@sipsolutions.net>2007-12-11 09:21:26 -0500
committerPaul Mackerras <paulus@samba.org>2007-12-18 23:00:59 -0500
commitb819a9bfc7ae5a1ab5bab18c7e0dbe40bf2289a9 (patch)
tree28f856484658f54b7d7d5c3e8aa08c9006a82321
parentc9f6d3d5c6d4f4cd3a53549a69c92951180e2a76 (diff)
[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: Johannes Berg <johannes@sipsolutions.net> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--drivers/macintosh/via-pmu.c71
-rw-r--r--include/linux/pmu.h36
2 files changed, 0 insertions, 107 deletions
diff --git a/drivers/macintosh/via-pmu.c b/drivers/macintosh/via-pmu.c
index 35e1f22089d6..6df3f3503e5b 100644
--- a/drivers/macintosh/via-pmu.c
+++ b/drivers/macintosh/via-pmu.c
@@ -174,7 +174,6 @@ static struct proc_dir_entry *proc_pmu_batt[PMU_MAX_BATTERIES];
174 174
175int __fake_sleep; 175int __fake_sleep;
176int asleep; 176int asleep;
177BLOCKING_NOTIFIER_HEAD(sleep_notifier_list);
178 177
179#ifdef CONFIG_ADB 178#ifdef CONFIG_ADB
180static int adb_dev_map; 179static int adb_dev_map;
@@ -1719,67 +1718,7 @@ pmu_present(void)
1719 return via != 0; 1718 return via != 0;
1720} 1719}
1721 1720
1722#ifdef CONFIG_PM_SLEEP
1723
1724static LIST_HEAD(sleep_notifiers);
1725
1726int
1727pmu_register_sleep_notifier(struct pmu_sleep_notifier *n)
1728{
1729 struct list_head *list;
1730 struct pmu_sleep_notifier *notifier;
1731
1732 for (list = sleep_notifiers.next; list != &sleep_notifiers;
1733 list = list->next) {
1734 notifier = list_entry(list, struct pmu_sleep_notifier, list);
1735 if (n->priority > notifier->priority)
1736 break;
1737 }
1738 __list_add(&n->list, list->prev, list);
1739 return 0;
1740}
1741EXPORT_SYMBOL(pmu_register_sleep_notifier);
1742
1743int
1744pmu_unregister_sleep_notifier(struct pmu_sleep_notifier* n)
1745{
1746 if (n->list.next == 0)
1747 return -ENOENT;
1748 list_del(&n->list);
1749 n->list.next = NULL;
1750 return 0;
1751}
1752EXPORT_SYMBOL(pmu_unregister_sleep_notifier);
1753#endif /* CONFIG_PM_SLEEP */
1754
1755#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32) 1721#if defined(CONFIG_PM_SLEEP) && defined(CONFIG_PPC32)
1756
1757/* Sleep is broadcast last-to-first */
1758static void broadcast_sleep(int when)
1759{
1760 struct list_head *list;
1761 struct pmu_sleep_notifier *notifier;
1762
1763 for (list = sleep_notifiers.prev; list != &sleep_notifiers;
1764 list = list->prev) {
1765 notifier = list_entry(list, struct pmu_sleep_notifier, list);
1766 notifier->notifier_call(notifier, when);
1767 }
1768}
1769
1770/* Wake is broadcast first-to-last */
1771static void broadcast_wake(void)
1772{
1773 struct list_head *list;
1774 struct pmu_sleep_notifier *notifier;
1775
1776 for (list = sleep_notifiers.next; list != &sleep_notifiers;
1777 list = list->next) {
1778 notifier = list_entry(list, struct pmu_sleep_notifier, list);
1779 notifier->notifier_call(notifier, PBOOK_WAKE);
1780 }
1781}
1782
1783/* 1722/*
1784 * This struct is used to store config register values for 1723 * This struct is used to store config register values for
1785 * PCI devices which may get powered off when we sleep. 1724 * PCI devices which may get powered off when we sleep.
@@ -1962,9 +1901,6 @@ pmac_suspend_devices(void)
1962 1901
1963 pm_prepare_console(); 1902 pm_prepare_console();
1964 1903
1965 /* Notify old-style device drivers */
1966 broadcast_sleep(PBOOK_SLEEP_REQUEST);
1967
1968 /* Sync the disks. */ 1904 /* Sync the disks. */
1969 /* XXX It would be nice to have some way to ensure that 1905 /* XXX It would be nice to have some way to ensure that
1970 * nobody is dirtying any new buffers while we wait. That 1906 * nobody is dirtying any new buffers while we wait. That
@@ -1973,12 +1909,9 @@ pmac_suspend_devices(void)
1973 */ 1909 */
1974 sys_sync(); 1910 sys_sync();
1975 1911
1976 broadcast_sleep(PBOOK_SLEEP_NOW);
1977
1978 /* Send suspend call to devices, hold the device core's dpm_sem */ 1912 /* Send suspend call to devices, hold the device core's dpm_sem */
1979 ret = device_suspend(PMSG_SUSPEND); 1913 ret = device_suspend(PMSG_SUSPEND);
1980 if (ret) { 1914 if (ret) {
1981 broadcast_wake();
1982 printk(KERN_ERR "Driver sleep failed\n"); 1915 printk(KERN_ERR "Driver sleep failed\n");
1983 return -EBUSY; 1916 return -EBUSY;
1984 } 1917 }
@@ -2019,7 +1952,6 @@ pmac_suspend_devices(void)
2019 local_irq_enable(); 1952 local_irq_enable();
2020 preempt_enable(); 1953 preempt_enable();
2021 device_resume(); 1954 device_resume();
2022 broadcast_wake();
2023 printk(KERN_ERR "Driver powerdown failed\n"); 1955 printk(KERN_ERR "Driver powerdown failed\n");
2024 return -EBUSY; 1956 return -EBUSY;
2025 } 1957 }
@@ -2073,9 +2005,6 @@ pmac_wakeup_devices(void)
2073 /* Resume devices */ 2005 /* Resume devices */
2074 device_resume(); 2006 device_resume();
2075 2007
2076 /* Notify old style drivers */
2077 broadcast_wake();
2078
2079 pm_restore_console(); 2008 pm_restore_console();
2080 2009
2081 return 0; 2010 return 0;
diff --git a/include/linux/pmu.h b/include/linux/pmu.h
index b7824c215354..177ae4812b88 100644
--- a/include/linux/pmu.h
+++ b/include/linux/pmu.h
@@ -159,42 +159,6 @@ extern void pmu_unlock(void);
159extern int pmu_present(void); 159extern int pmu_present(void);
160extern int pmu_get_model(void); 160extern int pmu_get_model(void);
161 161
162#ifdef CONFIG_PM
163/*
164 * Stuff for putting the powerbook to sleep and waking it again.
165 *
166 */
167#include <linux/list.h>
168
169struct pmu_sleep_notifier
170{
171 void (*notifier_call)(struct pmu_sleep_notifier *self, int when);
172 int priority;
173 struct list_head list;
174};
175
176/* Code values for calling sleep/wakeup handlers
177 */
178#define PBOOK_SLEEP_REQUEST 1
179#define PBOOK_SLEEP_NOW 2
180#define PBOOK_WAKE 3
181
182/* priority levels in notifiers */
183#define SLEEP_LEVEL_VIDEO 100 /* Video driver (first wake) */
184#define SLEEP_LEVEL_MEDIABAY 90 /* Media bay driver */
185#define SLEEP_LEVEL_BLOCK 80 /* IDE, SCSI */
186#define SLEEP_LEVEL_NET 70 /* bmac, gmac */
187#define SLEEP_LEVEL_MISC 60 /* Anything else */
188#define SLEEP_LEVEL_USERLAND 55 /* Reserved for apm_emu */
189#define SLEEP_LEVEL_ADB 50 /* ADB (async) */
190#define SLEEP_LEVEL_SOUND 40 /* Sound driver (blocking) */
191
192/* special register notifier functions */
193int pmu_register_sleep_notifier(struct pmu_sleep_notifier* notifier);
194int pmu_unregister_sleep_notifier(struct pmu_sleep_notifier* notifier);
195
196#endif /* CONFIG_PM */
197
198#define PMU_MAX_BATTERIES 2 162#define PMU_MAX_BATTERIES 2
199 163
200/* values for pmu_power_flags */ 164/* values for pmu_power_flags */