aboutsummaryrefslogtreecommitdiffstats
path: root/arch/powerpc/platforms/powermac/pic.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/powerpc/platforms/powermac/pic.c')
-rw-r--r--arch/powerpc/platforms/powermac/pic.c42
1 files changed, 11 insertions, 31 deletions
diff --git a/arch/powerpc/platforms/powermac/pic.c b/arch/powerpc/platforms/powermac/pic.c
index 360260d1352d..9089b0421191 100644
--- a/arch/powerpc/platforms/powermac/pic.c
+++ b/arch/powerpc/platforms/powermac/pic.c
@@ -21,7 +21,7 @@
21#include <linux/signal.h> 21#include <linux/signal.h>
22#include <linux/pci.h> 22#include <linux/pci.h>
23#include <linux/interrupt.h> 23#include <linux/interrupt.h>
24#include <linux/sysdev.h> 24#include <linux/syscore_ops.h>
25#include <linux/adb.h> 25#include <linux/adb.h>
26#include <linux/pmu.h> 26#include <linux/pmu.h>
27#include <linux/module.h> 27#include <linux/module.h>
@@ -674,7 +674,7 @@ not_found:
674 return viaint; 674 return viaint;
675} 675}
676 676
677static int pmacpic_suspend(struct sys_device *sysdev, pm_message_t state) 677static int pmacpic_suspend(void)
678{ 678{
679 int viaint = pmacpic_find_viaint(); 679 int viaint = pmacpic_find_viaint();
680 680
@@ -695,7 +695,7 @@ static int pmacpic_suspend(struct sys_device *sysdev, pm_message_t state)
695 return 0; 695 return 0;
696} 696}
697 697
698static int pmacpic_resume(struct sys_device *sysdev) 698static void pmacpic_resume(void)
699{ 699{
700 int i; 700 int i;
701 701
@@ -706,39 +706,19 @@ static int pmacpic_resume(struct sys_device *sysdev)
706 for (i = 0; i < max_real_irqs; ++i) 706 for (i = 0; i < max_real_irqs; ++i)
707 if (test_bit(i, sleep_save_mask)) 707 if (test_bit(i, sleep_save_mask))
708 pmac_unmask_irq(irq_get_irq_data(i)); 708 pmac_unmask_irq(irq_get_irq_data(i));
709
710 return 0;
711} 709}
712 710
713#endif /* CONFIG_PM && CONFIG_PPC32 */ 711static struct syscore_ops pmacpic_syscore_ops = {
714 712 .suspend = pmacpic_suspend,
715static struct sysdev_class pmacpic_sysclass = { 713 .resume = pmacpic_resume,
716 .name = "pmac_pic",
717}; 714};
718 715
719static struct sys_device device_pmacpic = { 716static int __init init_pmacpic_syscore(void)
720 .id = 0,
721 .cls = &pmacpic_sysclass,
722};
723
724static struct sysdev_driver driver_pmacpic = {
725#if defined(CONFIG_PM) && defined(CONFIG_PPC32)
726 .suspend = &pmacpic_suspend,
727 .resume = &pmacpic_resume,
728#endif /* CONFIG_PM && CONFIG_PPC32 */
729};
730
731static int __init init_pmacpic_sysfs(void)
732{ 717{
733#ifdef CONFIG_PPC32 718 register_syscore_ops(&pmacpic_syscore_ops);
734 if (max_irqs == 0)
735 return -ENODEV;
736#endif
737 printk(KERN_DEBUG "Registering pmac pic with sysfs...\n");
738 sysdev_class_register(&pmacpic_sysclass);
739 sysdev_register(&device_pmacpic);
740 sysdev_driver_register(&pmacpic_sysclass, &driver_pmacpic);
741 return 0; 719 return 0;
742} 720}
743machine_subsys_initcall(powermac, init_pmacpic_sysfs);
744 721
722machine_subsys_initcall(powermac, init_pmacpic_syscore);
723
724#endif /* CONFIG_PM && CONFIG_PPC32 */