diff options
author | Suresh Siddha <suresh.b.siddha@intel.com> | 2009-08-04 15:07:09 -0400 |
---|---|---|
committer | Thomas Gleixner <tglx@linutronix.de> | 2009-08-27 17:33:20 -0400 |
commit | c8bc6f3c806f1fcbfdbf0b1ff6c52dba59192d3b (patch) | |
tree | 072f772308c44eb0223fbfb45c8a055918c70502 /arch/x86/kernel/hpet.c | |
parent | 20f3097bfe5fb5ced0b14f9ea2620c4039bf1dde (diff) |
x86: arch specific support for remapping HPET MSIs
x86 arch support for remapping HPET MSI's by associating the HPET timer block
with the interrupt-remapping HW unit and setting up appropriate irq_chip
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Cc: Venkatesh Pallipadi <venkatesh.pallipadi@intel.com>
Cc: David Woodhouse <dwmw2@infradead.org>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Cc: Jay Fenlason <fenlason@redhat.com>
LKML-Reference: <20090804190729.630510000@intel.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Diffstat (limited to 'arch/x86/kernel/hpet.c')
-rw-r--r-- | arch/x86/kernel/hpet.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/arch/x86/kernel/hpet.c b/arch/x86/kernel/hpet.c index ba575f0f2e34..7f024ff47d1d 100644 --- a/arch/x86/kernel/hpet.c +++ b/arch/x86/kernel/hpet.c | |||
@@ -33,6 +33,7 @@ | |||
33 | * HPET address is set in acpi/boot.c, when an ACPI entry exists | 33 | * HPET address is set in acpi/boot.c, when an ACPI entry exists |
34 | */ | 34 | */ |
35 | unsigned long hpet_address; | 35 | unsigned long hpet_address; |
36 | u8 hpet_blockid; /* OS timer block num */ | ||
36 | #ifdef CONFIG_PCI_MSI | 37 | #ifdef CONFIG_PCI_MSI |
37 | static unsigned long hpet_num_timers; | 38 | static unsigned long hpet_num_timers; |
38 | #endif | 39 | #endif |
@@ -467,7 +468,7 @@ static int hpet_msi_next_event(unsigned long delta, | |||
467 | 468 | ||
468 | static int hpet_setup_msi_irq(unsigned int irq) | 469 | static int hpet_setup_msi_irq(unsigned int irq) |
469 | { | 470 | { |
470 | if (arch_setup_hpet_msi(irq)) { | 471 | if (arch_setup_hpet_msi(irq, hpet_blockid)) { |
471 | destroy_irq(irq); | 472 | destroy_irq(irq); |
472 | return -EINVAL; | 473 | return -EINVAL; |
473 | } | 474 | } |