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 | |
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')
-rw-r--r-- | arch/x86/mach-generic/bigsmp.c | 2 | ||||
-rw-r--r-- | arch/x86/mach-generic/default.c | 2 | ||||
-rw-r--r-- | arch/x86/mach-generic/es7000.c | 6 | ||||
-rw-r--r-- | arch/x86/mach-generic/numaq.c | 8 | ||||
-rw-r--r-- | arch/x86/mach-generic/probe.c | 24 | ||||
-rw-r--r-- | arch/x86/mach-generic/summit.c | 2 |
6 files changed, 21 insertions, 23 deletions
diff --git a/arch/x86/mach-generic/bigsmp.c b/arch/x86/mach-generic/bigsmp.c index 13e82bc4dae6..22c3608b80dd 100644 --- a/arch/x86/mach-generic/bigsmp.c +++ b/arch/x86/mach-generic/bigsmp.c | |||
@@ -61,7 +61,7 @@ struct genapic apic_bigsmp = { | |||
61 | 61 | ||
62 | .name = "bigsmp", | 62 | .name = "bigsmp", |
63 | .probe = probe_bigsmp, | 63 | .probe = probe_bigsmp, |
64 | .acpi_madt_oem_check = acpi_madt_oem_check, | 64 | .acpi_madt_oem_check = NULL, |
65 | .apic_id_registered = apic_id_registered, | 65 | .apic_id_registered = apic_id_registered, |
66 | 66 | ||
67 | .int_delivery_mode = INT_DELIVERY_MODE, | 67 | .int_delivery_mode = INT_DELIVERY_MODE, |
diff --git a/arch/x86/mach-generic/default.c b/arch/x86/mach-generic/default.c index d5fec764fb40..cfec3494a967 100644 --- a/arch/x86/mach-generic/default.c +++ b/arch/x86/mach-generic/default.c | |||
@@ -28,7 +28,7 @@ struct genapic apic_default = { | |||
28 | 28 | ||
29 | .name = "default", | 29 | .name = "default", |
30 | .probe = probe_default, | 30 | .probe = probe_default, |
31 | .acpi_madt_oem_check = acpi_madt_oem_check, | 31 | .acpi_madt_oem_check = NULL, |
32 | .apic_id_registered = apic_id_registered, | 32 | .apic_id_registered = apic_id_registered, |
33 | 33 | ||
34 | .int_delivery_mode = INT_DELIVERY_MODE, | 34 | .int_delivery_mode = INT_DELIVERY_MODE, |
diff --git a/arch/x86/mach-generic/es7000.c b/arch/x86/mach-generic/es7000.c index 4a404ea5f928..23fe6f1c9691 100644 --- a/arch/x86/mach-generic/es7000.c +++ b/arch/x86/mach-generic/es7000.c | |||
@@ -57,7 +57,7 @@ mps_oem_check(struct mpc_table *mpc, char *oem, char *productid) | |||
57 | 57 | ||
58 | #ifdef CONFIG_ACPI | 58 | #ifdef CONFIG_ACPI |
59 | /* Hook from generic ACPI tables.c */ | 59 | /* Hook from generic ACPI tables.c */ |
60 | static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 60 | static int __init es7000_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
61 | { | 61 | { |
62 | unsigned long oem_addr = 0; | 62 | unsigned long oem_addr = 0; |
63 | int check_dsdt; | 63 | int check_dsdt; |
@@ -81,7 +81,7 @@ static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) | |||
81 | return ret; | 81 | return ret; |
82 | } | 82 | } |
83 | #else | 83 | #else |
84 | static int __init acpi_madt_oem_check(char *oem_id, char *oem_table_id) | 84 | static int __init es7000_acpi_madt_oem_check(char *oem_id, char *oem_table_id) |
85 | { | 85 | { |
86 | return 0; | 86 | return 0; |
87 | } | 87 | } |
@@ -104,7 +104,7 @@ struct genapic apic_es7000 = { | |||
104 | 104 | ||
105 | .name = "es7000", | 105 | .name = "es7000", |
106 | .probe = probe_es7000, | 106 | .probe = probe_es7000, |
107 | .acpi_madt_oem_check = acpi_madt_oem_check, | 107 | .acpi_madt_oem_check = es7000_acpi_madt_oem_check, |
108 | .apic_id_registered = apic_id_registered, | 108 | .apic_id_registered = apic_id_registered, |
109 | 109 | ||
110 | .int_delivery_mode = INT_DELIVERY_MODE, | 110 | .int_delivery_mode = INT_DELIVERY_MODE, |
diff --git a/arch/x86/mach-generic/numaq.c b/arch/x86/mach-generic/numaq.c index fa486ca49c0a..9691b4e1654d 100644 --- a/arch/x86/mach-generic/numaq.c +++ b/arch/x86/mach-generic/numaq.c | |||
@@ -31,12 +31,6 @@ static int probe_numaq(void) | |||
31 | return found_numaq; | 31 | return found_numaq; |
32 | } | 32 | } |
33 | 33 | ||
34 | /* Hook from generic ACPI tables.c */ | ||
35 | static int acpi_madt_oem_check(char *oem_id, char *oem_table_id) | ||
36 | { | ||
37 | return 0; | ||
38 | } | ||
39 | |||
40 | static void vector_allocation_domain(int cpu, cpumask_t *retmask) | 34 | static void vector_allocation_domain(int cpu, cpumask_t *retmask) |
41 | { | 35 | { |
42 | /* Careful. Some cpus do not strictly honor the set of cpus | 36 | /* Careful. Some cpus do not strictly honor the set of cpus |
@@ -54,7 +48,7 @@ struct genapic apic_numaq = { | |||
54 | 48 | ||
55 | .name = "NUMAQ", | 49 | .name = "NUMAQ", |
56 | .probe = probe_numaq, | 50 | .probe = probe_numaq, |
57 | .acpi_madt_oem_check = acpi_madt_oem_check, | 51 | .acpi_madt_oem_check = NULL, |
58 | .apic_id_registered = apic_id_registered, | 52 | .apic_id_registered = apic_id_registered, |
59 | 53 | ||
60 | .int_delivery_mode = INT_DELIVERY_MODE, | 54 | .int_delivery_mode = INT_DELIVERY_MODE, |
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 | } |
diff --git a/arch/x86/mach-generic/summit.c b/arch/x86/mach-generic/summit.c index 479c1d409779..0eea9fbb2a50 100644 --- a/arch/x86/mach-generic/summit.c +++ b/arch/x86/mach-generic/summit.c | |||
@@ -41,7 +41,7 @@ struct genapic apic_summit = { | |||
41 | 41 | ||
42 | .name = "summit", | 42 | .name = "summit", |
43 | .probe = probe_summit, | 43 | .probe = probe_summit, |
44 | .acpi_madt_oem_check = acpi_madt_oem_check, | 44 | .acpi_madt_oem_check = summit_acpi_madt_oem_check, |
45 | .apic_id_registered = apic_id_registered, | 45 | .apic_id_registered = apic_id_registered, |
46 | 46 | ||
47 | .int_delivery_mode = INT_DELIVERY_MODE, | 47 | .int_delivery_mode = INT_DELIVERY_MODE, |