aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/acpi/pci_link.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/acpi/pci_link.c')
-rw-r--r--drivers/acpi/pci_link.c31
1 files changed, 8 insertions, 23 deletions
diff --git a/drivers/acpi/pci_link.c b/drivers/acpi/pci_link.c
index 8d47a5846aeb..4a29763b8eb4 100644
--- a/drivers/acpi/pci_link.c
+++ b/drivers/acpi/pci_link.c
@@ -29,12 +29,11 @@
29 * for IRQ management (e.g. start()->_SRS). 29 * for IRQ management (e.g. start()->_SRS).
30 */ 30 */
31 31
32#include <linux/sysdev.h> 32#include <linux/syscore_ops.h>
33#include <linux/kernel.h> 33#include <linux/kernel.h>
34#include <linux/module.h> 34#include <linux/module.h>
35#include <linux/init.h> 35#include <linux/init.h>
36#include <linux/types.h> 36#include <linux/types.h>
37#include <linux/proc_fs.h>
38#include <linux/spinlock.h> 37#include <linux/spinlock.h>
39#include <linux/pm.h> 38#include <linux/pm.h>
40#include <linux/pci.h> 39#include <linux/pci.h>
@@ -758,14 +757,13 @@ static int acpi_pci_link_resume(struct acpi_pci_link *link)
758 return 0; 757 return 0;
759} 758}
760 759
761static int irqrouter_resume(struct sys_device *dev) 760static void irqrouter_resume(void)
762{ 761{
763 struct acpi_pci_link *link; 762 struct acpi_pci_link *link;
764 763
765 list_for_each_entry(link, &acpi_link_list, list) { 764 list_for_each_entry(link, &acpi_link_list, list) {
766 acpi_pci_link_resume(link); 765 acpi_pci_link_resume(link);
767 } 766 }
768 return 0;
769} 767}
770 768
771static int acpi_pci_link_remove(struct acpi_device *device, int type) 769static int acpi_pci_link_remove(struct acpi_device *device, int type)
@@ -872,32 +870,19 @@ static int __init acpi_irq_balance_set(char *str)
872 870
873__setup("acpi_irq_balance", acpi_irq_balance_set); 871__setup("acpi_irq_balance", acpi_irq_balance_set);
874 872
875/* FIXME: we will remove this interface after all drivers call pci_disable_device */ 873static struct syscore_ops irqrouter_syscore_ops = {
876static struct sysdev_class irqrouter_sysdev_class = {
877 .name = "irqrouter",
878 .resume = irqrouter_resume, 874 .resume = irqrouter_resume,
879}; 875};
880 876
881static struct sys_device device_irqrouter = { 877static int __init irqrouter_init_ops(void)
882 .id = 0,
883 .cls = &irqrouter_sysdev_class,
884};
885
886static int __init irqrouter_init_sysfs(void)
887{ 878{
888 int error; 879 if (!acpi_disabled && !acpi_noirq)
880 register_syscore_ops(&irqrouter_syscore_ops);
889 881
890 if (acpi_disabled || acpi_noirq) 882 return 0;
891 return 0;
892
893 error = sysdev_class_register(&irqrouter_sysdev_class);
894 if (!error)
895 error = sysdev_register(&device_irqrouter);
896
897 return error;
898} 883}
899 884
900device_initcall(irqrouter_init_sysfs); 885device_initcall(irqrouter_init_ops);
901 886
902static int __init acpi_pci_link_init(void) 887static int __init acpi_pci_link_init(void)
903{ 888{