summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* x86, apic: untangle the send_IPI_*() jungleIngo Molnar2009-01-2826-180/+178
| | | | | | | | | | | | | | | | Our send_IPI_*() methods and definitions are a twisted mess: the same symbol is defined to different things depending on .config details, in a non-transparent way. - spread out the quirks into separately named per apic driver methods - prefix the standard PC methods with default_ - get rid of wrapper macro obfuscation - clean up various details Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: refactor ->cpu_mask_to_apicid*()Ingo Molnar2009-01-2816-80/+101
| | | | | | | | | | - spread out the namespace on a per driver basis - clean up the functions - get rid of macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: get rid of *_APIC_ID_MASK definitionsIngo Molnar2009-01-2810-14/+5
| | | | | | | | | Impact: cleanup Remove the *_APIC_ID_MASK subarch definitions and move them straight to the genapic driver initialization code. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: refactor ->apic_id_mask & APIC_ID_MASKIngo Molnar2009-01-2813-16/+13
| | | | | | | | - spread out the namespace on a per driver basis - get rid of wrapper macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: refactor ->get_apic_id() & GET_APIC_ID()Ingo Molnar2009-01-2817-41/+32
| | | | | | | | | | - spread out the namespace on a per driver basis - get rid of macro wrappers - small cleanups Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: consolidate the ->mps_oem_check() codeIngo Molnar2009-01-2811-20/+15
| | | | | | - spread out the mps_oem_check() namespace on a per APIC driver basis Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, mpparse: call the generic quirk handlers earlyIngo Molnar2009-01-281-10/+1
| | | | | | | | Call all the registered MPS quirk handlers early. These methods scan low RAM typically for specific signatures so are safe to be called early. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, smp: clean up mps_oem_check()Ingo Molnar2009-01-282-11/+14
| | | | | | | | | | Impact: cleanup - allow NULL ->mps_oem_check() entries - clean up the code flow Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: refactor ->phys_pkg_id()Ingo Molnar2009-01-2813-19/+17
| | | | | | | | | | | | Refactor the ->phys_pkg_id() methods: - namespace separation - macro wrapper removal - open-coded calls to the methods in the generic code Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: unify phys_pkg_id()Ingo Molnar2009-01-2812-39/+19
| | | | | | | | | | - unify the call signature of 64-bit to that of 32-bit - clean up the types all around - clean up namespace contamination Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, es7000: clean up es7000_enable_apic_mode()Ingo Molnar2009-01-283-20/+16
| | | | | | | | | | | - eliminate the needless es7000_enable_apic_mode() complication which was not apparent prior the namespace cleanups - clean up the control flow in es7000_enable_apic_mode() - other cleanups Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: refactor ->enable_apic_mode() subarch methodsIngo Molnar2009-01-2811-24/+9
| | | | | | | | | | | Only ES7000 has a real ->enable_apic_mode() method, the other subarchitectures define it but keep it empty. So mark the vector as NULL, extend the generic code to handle NULL -setup_portio_remap() entries and remove all the empty handlers. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: refactor ->check_phys_apicid_present() subarch methodsIngo Molnar2009-01-2817-25/+38
| | | | | | | | | - spread out the namespace to per driver methods - extend it to 64-bit as well so that we can use apic->check_phys_apicid_present() unconditionally Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: refactor ->setup_portio_remap() subarch methodsIngo Molnar2009-01-2812-30/+22
| | | | | | | | | | | | | | Only NUMAQ has a real ->setup_portio_remap() method, the other subarchitectures define it but keep it empty. So mark the vector as NULL, extend the generic code to handle NULL -setup_portio_remap() entries and remove all the empty handlers. Also move the NUMAQ method from the header file into the apic driver .c file. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->apicid_to_cpu_present()Ingo Molnar2009-01-2813-15/+14
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->cpu_present_to_apicid()Ingo Molnar2009-01-2817-17/+34
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->cpu_to_logical_apicid()Ingo Molnar2009-01-2812-25/+25
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->apicid_to_node()Ingo Molnar2009-01-2812-13/+12
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: streamline the ->multi_timer_check() quirkIngo Molnar2009-01-2812-30/+14
| | | | | | | | | | | | only NUMAQ uses this quirk: to prevent the timer IRQ from being added on secondary nodes. All other genapic templates can have a NULL ->multi_timer_check() callback. Also, extend the generic code to treat a NULL pointer accordingly. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->setup_apic_routing()Ingo Molnar2009-01-2817-22/+20
| | | | | | | | | | - separate the namespace - remove macros - remove namespace clash on 64-bit Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->ioapic_phys_id_map()Ingo Molnar2009-01-2812-13/+13
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->init_apic_ldr()Ingo Molnar2009-01-2812-15/+13
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->vector_allocation_domain()Ingo Molnar2009-01-288-24/+24
| | | | | | | | | | | | - separate the namespace - remove macros - move the default vector-allocation-domain to mach-generic - fix whitespace damage Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: remove no_balance_irq and no_ioapic_check flagsIngo Molnar2009-01-2816-44/+0
| | | | | | | These flags are completely unused. (the in-kernel IRQ balancer has been removed from the upstream kernel.) Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up check_apicid*() callbacksIngo Molnar2009-01-2812-27/+29
| | | | | | | Clean up these methods - to make it clearer which function is used in which case. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: rename genapic::apic_destination_logical to genapic::dest_logicalIngo Molnar2009-01-2813-20/+20
| | | | | | This field name was unreasonably long - shorten it. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: clean up the APIC_DEST_LOGICAL logicIngo Molnar2009-01-2812-25/+19
| | | | | | | | | | | | | | | Impact: cleanup The bigsmp and es7000 subarchitectures un-defined APIC_DEST_LOGICAL in a rather nasty way by re-defining it to zero. That is infinitely fragile and makes it very hard to see what to code really does in a given context. The very same constant has different meanings and values - depending on which subarch is enabled. Untangle this mess by never undefining the constant, but instead propagating the right values into the genapic driver templates. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: rename ->ESR_DISABLE to ->disable_esrIngo Molnar2009-01-2811-13/+13
| | | | | | | | the ->ESR_DISABLE shouting variant was used to enable the esr_disable macro wrappers. Those ugly macros are removed now so we can rename ->ESR_DISABLE to ->disable_esr Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: clean up esr_disable() methodsIngo Molnar2009-01-2812-13/+7
| | | | | | | | | | | | | | Impact: cleanup Most subarchitectures want to disable the APIC ESR (Error Status Register), because they generally have hardware hacks that wrap standard CPUs into a bigger system and hence the APIC bus is quite non-standard and weirdnesses (lockups) have been seen with ESR reporting. Remove the esr_disable macros and put the desired flag into each subarchitecture's genapic template directly. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up / remove TARGET_CPUSIngo Molnar2009-01-285-17/+14
| | | | | | | | Impact: cleanup use apic->target_cpus() directly instead of the TARGET_CPUS wrapper. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up target_cpus methodsIngo Molnar2009-01-2810-12/+12
| | | | | | | | | | Impact: cleanup Clean up all the target_cpus() namespace overlap that exists between bigsmp, es7000, mach-default, numaq and summit - by separating the different functions into different names. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: remove IRQ_DEST_MODEIngo Molnar2009-01-281-1/+0
| | | | | | Remove leftover definition. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: remove ES7000_IRQ_DELIVERY_MODE and ES7000_IRQ_DEST_MODEIngo Molnar2009-01-282-4/+3
| | | | | | | | | Impact: cleanup They were only used in a single place and obscured the apic_es7000 driver template. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: remove BIGSMP_IRQ_DELIVERY_MODE and BIGSMP_IRQ_DEST_MODEIngo Molnar2009-01-282-4/+3
| | | | | | | | | Impact: cleanup They were only used in a single place and obscured the apic_bigsmp driver template. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: remove NUMAQ_IRQ_DELIVERY_MODE and NUMAQ_IRQ_DEST_MODEIngo Molnar2009-01-282-5/+3
| | | | | | | | Impact: cleanup They were only used in a single place and obscured the apic_numaq template. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: remove SUMMIT_IRQ_DELIVERY_MODE and SUMMIT_IRQ_DEST_MODEIngo Molnar2009-01-282-5/+3
| | | | | | | | Impact: cleanup They were only used in a single place and obscured the apic_summit template. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: remove DEFAULT_IRQ_DELIVERY_MODE and DEFAULT_IRQ_DEST_MODEIngo Molnar2009-01-282-4/+3
| | | | | | | | Impact: cleanup They were only used in a single place and obscured the apic_default template. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: remove IRQ_DEST_MODE / IRQ_DELIVERY_MODEIngo Molnar2009-01-2812-38/+35
| | | | | | | | | | | | | Remove the wrapper macros IRQ_DEST_MODE and IRQ_DELIVERY_MODE. The typical 32-bit and the 64-bit build all dereference via the genapic, so it's pointless to hide that indirection via these ugly macros. Furthermore, it also obscures subarchitecture details. So replace it with apic->irq_dest_mode / etc. accesses. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, genapic: rename int_delivery_mode, et. al.Ingo Molnar2009-01-2817-53/+53
| | | | | | | | | | | | | | | int_delivery_mode is supposed to mean 'interrupt delivery mode', but it's quite a misnomer as 'int' we usually think of as an integer type ... The standard naming for such attributes is 'irq' - so rename the following fields and macros: int_delivery_mode => irq_delivery_mode INT_DELIVERY_MODE => IRQ_DELIVERY_MODE int_dest_mode => irq_dest_mode INT_DEST_MODE => IRQ_DEST_MODE Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: clean up apic->apic_id_registered() methodsIngo Molnar2009-01-2812-15/+13
| | | | | | | | | | | | | | | Impact: cleanup x86 subarchitectures each defined a "apic_id_registered()" method, which could be an inline function depending on which subarch we build for, and which was also the name of a genapic field. Untangle this namespace spaghetti by giving each of the instances a separate name. Also remove wrapper macro obfuscation. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: clean up apic->acpi_madt_oem_check methodsIngo Molnar2009-01-2813-30/+29
| | | | | | | | | | | | | | | | | 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>
* x86: remove APIC_INIT / APICFUNC / IPIFUNCIngo Molnar2009-01-281-61/+2
| | | | | | | | | The APIC_INIT() / APICFUNC / IPIFUNC macros were ugly and obfuscated the true identity of various APIC driver methods. Now that they are not used anymore, remove them. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, genapic: cleanup 32-bit apic_summit templateIngo Molnar2009-01-281-1/+57
| | | | | | | | | | Clean up the APIC driver template: - order fields properly - use the macro names explicitly (so that they can be renamed later) - fill in NULL entries as well Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, genapic: cleanup 32-bit apic_es7000 templateIngo Molnar2009-01-281-1/+57
| | | | | | | | | | Clean up the APIC driver template: - order fields properly - use the macro names explicitly (so that they can be renamed later) - fill in NULL entries as well Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, genapic: cleanup 32-bit apic_numaq templateIngo Molnar2009-01-281-1/+57
| | | | | | | | | | Clean up the APIC driver template: - order fields properly - use the macro names explicitly (so that they can be renamed later) - fill in NULL entries as well Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, genapic: cleanup 32-bit apic_bigsmp templateIngo Molnar2009-01-281-1/+57
| | | | | | | | | | Clean up the APIC driver template: - order fields properly - use the macro names explicitly (so that they can be renamed later) - fill in NULL entries as well Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, genapic: cleanup 32-bit apic_default templateIngo Molnar2009-01-281-1/+57
| | | | | | | | | | Clean up the APIC driver template: - order fields properly - use the macro names explicitly (so that they can be renamed later) - fill in NULL entries as well Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: clean up apic_x2apic_clusterIngo Molnar2009-01-281-19/+55
| | | | | | | | | - reorder fields so that they appear in struct genapic field ordering - add zero-initialized fields too so that it's apparent which functionality is default / missing. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: clean up apic_x2apic_physIngo Molnar2009-01-281-19/+55
| | | | | | | | | - reorder fields so that they appear in struct genapic field ordering - add zero-initialized fields too so that it's apparent which functionality is default / missing. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: clean up apic_x2apic_uv_xIngo Molnar2009-01-281-19/+55
| | | | | | | | | - reorder fields so that they appear in struct genapic field ordering - add zero-initialized fields too so that it's apparent which functionality is default / missing. Signed-off-by: Ingo Molnar <mingo@elte.hu>