aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/macintosh/via-pmu.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/macintosh/via-pmu.c')
-rw-r--r--drivers/macintosh/via-pmu.c71
1 files changed, 0 insertions, 71 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;