extern int gsi_irq_sharing(int gsi);
#include <asm/proto.h>
-static inline int acpi_madt_oem_check(char *oem_id, char *oem_table_id) { return 0; }
-
-
#else /* X86 */
#ifdef CONFIG_X86_LOCAL_APIC
irq_exit();
}
+int __initdata unsync_tsc_on_multicluster;
+
/*
* oem_force_hpet_timer -- force HPET mode for some boxes.
*
* Thus far, the major user of this is IBM's Summit2 series:
*
- * Clustered boxes may have unsynced TSC problems if they are
+ * Some clustered boxes may have unsynced TSC problems if they are
* multi-chassis. Use available data to take a good guess.
* If in doubt, go HPET.
*/
unsigned id;
DECLARE_BITMAP(clustermap, NUM_APIC_CLUSTERS);
+ /* Only do this check on IBM machines - big Unisys systems
+ use multiple clusters too, but have synchronized TSC */
+ if (!unsync_tsc_on_multicluster)
+ return 0;
+
bitmap_zero(clustermap, NUM_APIC_CLUSTERS);
for (i = 0; i < NR_CPUS; i++) {
extern int acpi_skip_timer_override;
+extern int unsync_tsc_on_multicluster;
+
+static inline int acpi_madt_oem_check(char *oem, char *productid)
+{
+ /* Copied from i386. Probably has too many entries. */
+ if (!strncmp(oem, "IBM ENSW", 8) &&
+ (!strncmp(productid, "VIGIL SMP", 9)
+ || !strncmp(productid, "EXA", 3)
+ || !strncmp(productid, "RUTHLESS SMP", 12))) {
+ unsync_tsc_on_multicluster = 1;
+ }
+ return 0;
+}
+
#endif /*__KERNEL__*/
#endif /*_ASM_ACPI_H*/