summaryrefslogtreecommitdiffstats
path: root/arch/x86/mach-generic/es7000.c
Commit message (Collapse)AuthorAgeFilesLines
* x86, ES7000: Consolidate codeIngo Molnar2009-01-291-427/+0
| | | | | | | | Move all ES7000 code into arch/x86/kernel/es7000_32.c. With this it ceases to rely on any build-time subarch features. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, smp: eliminate asm/mach-default/mach_wakecpu.hIngo Molnar2009-01-281-1/+0
| | | | | | | Spread mach_wakecpu.h's definitions into apic.h and genapic.h and remove mach_wakecpu.h. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, ES7000: consolidate the APIC codeIngo Molnar2009-01-281-19/+295
| | | | | | | | Consolidate all the ES7000 APIC code into arch/x86/mach-generic/es7000.c. With this ES7000 ceases to rely on any subarchitecture include files. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, smp: refactor ->inquire_remote_apic() methodsIngo Molnar2009-01-281-1/+1
| | | | | | | | | | | | | Nothing exciting - a few subarches dont want APIC remote reads to be performed - the others are content with the default method. - extend the generic code to handle NULL methods - clear out dummy methods and replace them with NULL - clean up: remove wrapper macros, etc. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, smp: remove ->restore_NMI_vector()Ingo Molnar2009-01-281-1/+0
| | | | | | | Nothing actually restores the NMI vector - so remove this logic altogether. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, smp: refactor ->store/restore_NMI_vector() methodsIngo Molnar2009-01-281-3/+2
| | | | | | | | | | | | | | Only NUMAQ does something substantial here, because it initializes via NMIs (not via INIT as standard SMP startup) - so it needs to store and restore the NMI vector. - extend the generic code to handle NULL methods - clear out dummy methods and replace them with NULL - clean up: remove wrapper macros, etc. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, smp: refactor ->smp_callin_clear_local_apic() methodsIngo Molnar2009-01-281-1/+3
| | | | | | | | | | | | | | Only NUMAQ does something substantial here, because it initializes via NMIs (not via INIT as standard SMP startup) - so it needs to reset the APIC. - extend the generic code to handle NULL methods - clear out dummy methods and replace them with NULL - clean up: remove wrapper macros, etc. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, smp: refactor ->wait_for_init_deassert()Ingo Molnar2009-01-281-1/+3
| | | | | | | | | | - spread out the namespace on a per APIC driver basis - handle a NULL ->wait_for_init_deassert() as a 'dont wait' default method - remove NUMAQ and Summit handlers Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, smp: clean up ->trampoline_phys_low/high handlingIngo Molnar2009-01-281-2/+2
| | | | | | | | - spread out the namespace on a per apic driver basis - remove wrapper macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: untangle the send_IPI_*() jungleIngo Molnar2009-01-281-3/+3
| | | | | | | | | | | | | | | | 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-281-3/+3
| | | | | | | | | | - 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-281-1/+1
| | | | | | | | | 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-281-1/+1
| | | | | | | | - 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-281-1/+1
| | | | | | | | | | - 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-281-2/+3
| | | | | | - spread out the mps_oem_check() namespace on a per APIC driver basis Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: refactor ->phys_pkg_id()Ingo Molnar2009-01-281-1/+1
| | | | | | | | | | | | 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, es7000: clean up es7000_enable_apic_mode()Ingo Molnar2009-01-281-7/+0
| | | | | | | | | | | - 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-281-3/+3
| | | | | | | | | | | 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-281-1/+1
| | | | | | | | | - 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-281-1/+1
| | | | | | | | | | | | | | 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-281-1/+1
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->cpu_present_to_apicid()Ingo Molnar2009-01-281-1/+1
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->cpu_to_logical_apicid()Ingo Molnar2009-01-281-1/+1
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->apicid_to_node()Ingo Molnar2009-01-281-1/+1
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: streamline the ->multi_timer_check() quirkIngo Molnar2009-01-281-1/+1
| | | | | | | | | | | | 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-281-1/+1
| | | | | | | | | | - 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-281-1/+1
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->init_apic_ldr()Ingo Molnar2009-01-281-2/+2
| | | | | | | | - separate the namespace - remove macros Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86, apic: clean up ->vector_allocation_domain()Ingo Molnar2009-01-281-2/+2
| | | | | | | | | | | | - 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-281-4/+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-281-2/+2
| | | | | | | 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-281-1/+1
| | | | | | 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-281-1/+1
| | | | | | | | | | | | | | | 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-281-1/+1
| | | | | | | | 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-281-1/+1
| | | | | | | | | | | | | | 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 target_cpus methodsIngo Molnar2009-01-281-1/+1
| | | | | | | | | | 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 ES7000_IRQ_DELIVERY_MODE and ES7000_IRQ_DEST_MODEIngo Molnar2009-01-281-2/+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 IRQ_DEST_MODE / IRQ_DELIVERY_MODEIngo Molnar2009-01-281-2/+2
| | | | | | | | | | | | | 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-281-4/+4
| | | | | | | | | | | | | | | 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-281-1/+1
| | | | | | | | | | | | | | | 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-281-3/+3
| | | | | | | | | | | | | | | | | 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, 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: rename 'genapic' to 'apic'Ingo Molnar2009-01-281-6/+6
| | | | | | | | Rename genapic-> to apic-> references because in a future chagne we'll open-code all the indirect calls (instead of obscuring them via macros), so we want this reference to be as short as possible. Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: rename all fields of mpc_table mpc_X to XJaswinder Singh Rajput2009-01-051-2/+2
| | | | | | | | | | | | Impact: cleanup, solve 80 columns wrap problems It would be cleaner to rename all the mpc->mpc_X fields to mpc->X - that alone would give 4 characters per usage site. (we already know that it's an 'mpc' entity - no need to duplicate that in the field too) Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: rename mpc_config_oemtable to mpc_oemtableJaswinder Singh Rajput2009-01-041-2/+2
| | | | | | | | | | | | Impact: cleanup, solve 80 columns wrap problems mpc_config_oemtable should be renamed to mpc_oemtable. The reason: the 'c' in MPC already means 'config' - no need to repeat that in the type name. Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: rename mp_config_table to mpc_tableJaswinder Singh Rajput2009-01-041-2/+2
| | | | | | | | | | | Impact: cleanup, solve 80 columns wrap problems mp_config_table should be renamed to mpc_table. The reason: the 'c' in MPC already means 'config' - no need to repeat that in the type name. Signed-off-by: Jaswinder Singh Rajput <jaswinderrajput@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86 smp: modify send_IPI_mask interface to accept cpumask_t pointersMike Travis2008-12-161-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Impact: cleanup, change parameter passing * Change genapic interfaces to accept cpumask_t pointers where possible. * Modify external callers to use cpumask_t pointers in function calls. * Create new send_IPI_mask_allbutself which is the same as the send_IPI_mask functions but removes smp_processor_id() from list. This removes another common need for a temporary cpumask_t variable. * Functions that used a temp cpumask_t variable for: cpumask_t allbutme = cpu_online_map; cpu_clear(smp_processor_id(), allbutme); if (!cpus_empty(allbutme)) ... become: if (!cpus_equal(cpu_online_map, cpumask_of_cpu(cpu))) ... * Other minor code optimizations (like using cpus_clear instead of CPU_MASK_NONE, etc.) Applies to linux-2.6.tip/master. Signed-off-by: Mike Travis <travis@sgi.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au> Acked-by: Ingo Molnar <mingo@elte.hu>
* x86: use update_genapic to get rid of ES7000_CLUSTERED_APIC v2Yinghai Lu2008-11-181-1/+13
| | | | | | | | | | | | | Impact: clean up We can autodetect those system that need cluster apic, and update genapic accordingly. We can also remove wakeup.h for e7000, because it's default one is now the same as overall default mach_wakecpu.h Signed-off-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: make 32bit support per_cpu vectorYinghai Lu2008-10-161-0/+14
| | | | | | | | | | | | | | | | | | so we can merge io_apic_32.c and io_apic_64.c v2: Use cpu_online_map as target cpus for bigsmp, just like 64-bit is doing. Also remove some unused TARGET_CPUS macro. v3: need to check if desc is null in smp_irq_move_cleanup also migration needs to reset vector too, so copy __target_IO_APIC_irq from 64bit. (the duplication will go away once the two files are unified.) Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
* x86: check dsdt before find oem table for es7000, v2Yinghai Lu2008-10-131-5/+15
| | | | | | | v2: use __acpi_unmap_table() Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
OpenPOWER on IntegriCloud