diff options
Diffstat (limited to 'arch/powerpc/platforms/powermac/pic.c')
-rw-r--r-- | arch/powerpc/platforms/powermac/pic.c | 42 |
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 | ||
677 | static int pmacpic_suspend(struct sys_device *sysdev, pm_message_t state) | 677 | static 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 | ||
698 | static int pmacpic_resume(struct sys_device *sysdev) | 698 | static 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 */ | 711 | static struct syscore_ops pmacpic_syscore_ops = { |
714 | 712 | .suspend = pmacpic_suspend, | |
715 | static struct sysdev_class pmacpic_sysclass = { | 713 | .resume = pmacpic_resume, |
716 | .name = "pmac_pic", | ||
717 | }; | 714 | }; |
718 | 715 | ||
719 | static struct sys_device device_pmacpic = { | 716 | static int __init init_pmacpic_syscore(void) |
720 | .id = 0, | ||
721 | .cls = &pmacpic_sysclass, | ||
722 | }; | ||
723 | |||
724 | static 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 | |||
731 | static 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 | } |
743 | machine_subsys_initcall(powermac, init_pmacpic_sysfs); | ||
744 | 721 | ||
722 | machine_subsys_initcall(powermac, init_pmacpic_syscore); | ||
723 | |||
724 | #endif /* CONFIG_PM && CONFIG_PPC32 */ | ||