diff options
author | Ingo Molnar <mingo@elte.hu> | 2009-01-27 21:43:47 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2009-01-28 17:20:12 -0500 |
commit | 306db03b0d71bf9c94155c0c4771a79fc70b4b27 (patch) | |
tree | 060e085368664f142013b65cbc0271a704b7dbc3 /arch/x86/mach-generic/probe.c | |
parent | 9a6801da55e4a4492e8f666ac272efe8186682c8 (diff) |
x86: clean up apic->acpi_madt_oem_check methods
Impact: refactor code
x86 subarchitectures each defined a "acpi_madt_oem_check()" method,
which could be an inline function, or an extern, or a static function,
and which was also the name of a genapic field.
Untangle this namespace spaghetti by setting ->acpi_madt_oem_check()
to NULL on those subarchitectures that have no detection quirks,
and rename the other ones (summit, es7000) that do.
Also change default_acpi_madt_oem_check() to handle NULL entries,
and clean its control flow up as well.
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/mach-generic/probe.c')
-rw-r--r-- | arch/x86/mach-generic/probe.c | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/arch/x86/mach-generic/probe.c b/arch/x86/mach-generic/probe.c index 82bf0f520fb6..a21e2b1a7011 100644 --- a/arch/x86/mach-generic/probe.c +++ b/arch/x86/mach-generic/probe.c | |||
@@ -128,20 +128,24 @@ int __init mps_oem_check(struct mpc_table *mpc, char *oem, char *productid) | |||
128 | return 0; | 128 | return 0; |
129 | } | 129 | } |
130 | 130 | ||
131 | int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 131 | int __init default_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
132 | { | 132 | { |
133 | int i; | 133 | int i; |
134 | |||
134 | for (i = 0; apic_probe[i]; ++i) { | 135 | for (i = 0; apic_probe[i]; ++i) { |
135 | if (apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) { | 136 | if (!apic_probe[i]->acpi_madt_oem_check) |
136 | if (!cmdline_apic) { | 137 | continue; |
137 | apic = apic_probe[i]; | 138 | if (!apic_probe[i]->acpi_madt_oem_check(oem_id, oem_table_id)) |
138 | if (x86_quirks->update_genapic) | 139 | continue; |
139 | x86_quirks->update_genapic(); | 140 | |
140 | printk(KERN_INFO "Switched to APIC driver `%s'.\n", | 141 | if (!cmdline_apic) { |
141 | apic->name); | 142 | apic = apic_probe[i]; |
142 | } | 143 | if (x86_quirks->update_genapic) |
143 | return 1; | 144 | x86_quirks->update_genapic(); |
145 | printk(KERN_INFO "Switched to APIC driver `%s'.\n", | ||
146 | apic->name); | ||
144 | } | 147 | } |
148 | return 1; | ||
145 | } | 149 | } |
146 | return 0; | 150 | return 0; |
147 | } | 151 | } |