#include <linux/pci.h>
#include <linux/irq.h>
-#include <asm/hpet.h>
-
-#if defined(CONFIG_X86_IO_APIC) && defined(CONFIG_SMP) && defined(CONFIG_PCI)
+#if defined(CONFIG_X86_IO_APIC) && (defined(CONFIG_SMP) || defined(CONFIG_XEN)) && defined(CONFIG_PCI)
static void __devinit quirk_intel_irqbalance(struct pci_dev *dev)
{
if (!(word & (1 << 13))) {
dev_info(&dev->dev, "Intel E7520/7320/7525 detected; "
"disabling irq balancing and affinity\n");
+#ifndef CONFIG_XEN
noirqdebug_setup("");
#ifdef CONFIG_PROC_FS
no_irq_affinity = 1;
#endif
+#else
+ {
+ struct xen_platform_op op = {
+ .cmd = XENPF_platform_quirk,
+ .u.platform_quirk.quirk_id = QUIRK_NOIRQBALANCING
+ };
+
+ WARN_ON(HYPERVISOR_platform_op(&op));
+ }
+#endif
}
/* put back the original value for config space*/
#endif
#if defined(CONFIG_HPET_TIMER)
+#include <asm/hpet.h>
+
unsigned long force_hpet_address;
static enum {