aboutsummaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorRobert Richter <robert.richter@amd.com>2008-07-11 06:26:59 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-11 15:22:59 -0400
commit3cabf37f6167125cb5185db05f5061650f685ab7 (patch)
tree5f07be8d72da9fecb694536795b1e8fbd4bf8b3d /arch
parente27cf3a2e151b79375efadf71a5d383ad416fb44 (diff)
x86/pci: Changing subsystem init for visws
I don't know, if this new code boots, but at least it compiles. Someone should really test it. Signed-off-by: Robert Richter <robert.richter@amd.com> Cc: Robert Richter <robert.richter@amd.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/pci/legacy.c3
-rw-r--r--arch/x86/pci/pci.h1
-rw-r--r--arch/x86/pci/visws.c23
3 files changed, 11 insertions, 16 deletions
diff --git a/arch/x86/pci/legacy.c b/arch/x86/pci/legacy.c
index f405eb0b8911..ec9ce35e44d6 100644
--- a/arch/x86/pci/legacy.c
+++ b/arch/x86/pci/legacy.c
@@ -63,6 +63,9 @@ int __init pci_subsys_init(void)
63#ifdef CONFIG_ACPI 63#ifdef CONFIG_ACPI
64 pci_acpi_init(); 64 pci_acpi_init();
65#endif 65#endif
66#ifdef CONFIG_X86_VISWS
67 pci_visws_init();
68#endif
66 pci_legacy_init(); 69 pci_legacy_init();
67 pcibios_irq_init(); 70 pcibios_irq_init();
68 pcibios_init(); 71 pcibios_init();
diff --git a/arch/x86/pci/pci.h b/arch/x86/pci/pci.h
index 36b8dd019fab..a2c55ee98aff 100644
--- a/arch/x86/pci/pci.h
+++ b/arch/x86/pci/pci.h
@@ -107,6 +107,7 @@ extern void __init dmi_check_skip_isa_align(void);
107/* some common used subsys_initcalls */ 107/* some common used subsys_initcalls */
108extern int __init pci_acpi_init(void); 108extern int __init pci_acpi_init(void);
109extern int __init pcibios_irq_init(void); 109extern int __init pcibios_irq_init(void);
110extern int __init pci_visws_init(void);
110extern int __init pci_numaq_init(void); 111extern int __init pci_numaq_init(void);
111extern int __init pcibios_init(void); 112extern int __init pcibios_init(void);
112 113
diff --git a/arch/x86/pci/visws.c b/arch/x86/pci/visws.c
index 1a7bed492bb1..42f4cb19faca 100644
--- a/arch/x86/pci/visws.c
+++ b/arch/x86/pci/visws.c
@@ -86,8 +86,14 @@ void __init pcibios_update_irq(struct pci_dev *dev, int irq)
86 pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq); 86 pci_write_config_byte(dev, PCI_INTERRUPT_LINE, irq);
87} 87}
88 88
89static int __init pci_visws_init(void) 89int __init pci_visws_init(void)
90{ 90{
91 if (!is_visws_box())
92 return -1;
93
94 pcibios_enable_irq = &pci_visws_enable_irq;
95 pcibios_disable_irq = &pci_visws_disable_irq;
96
91 /* The VISWS supports configuration access type 1 only */ 97 /* The VISWS supports configuration access type 1 only */
92 pci_probe = (pci_probe | PCI_PROBE_CONF1) & 98 pci_probe = (pci_probe | PCI_PROBE_CONF1) &
93 ~(PCI_PROBE_BIOS | PCI_PROBE_CONF2); 99 ~(PCI_PROBE_BIOS | PCI_PROBE_CONF2);
@@ -105,18 +111,3 @@ static int __init pci_visws_init(void)
105 pcibios_resource_survey(); 111 pcibios_resource_survey();
106 return 0; 112 return 0;
107} 113}
108
109static __init int pci_subsys_init(void)
110{
111 if (!is_visws_box())
112 return -1;
113
114 pcibios_enable_irq = &pci_visws_enable_irq;
115 pcibios_disable_irq = &pci_visws_disable_irq;
116
117 pci_visws_init();
118 pcibios_init();
119
120 return 0;
121}
122subsys_initcall(pci_subsys_init);