summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKirill A. Shutemov <kirill.shutemov@linux.intel.com>2011-08-26 15:20:59 +0400
committerLinus Torvalds <torvalds@linux-foundation.org>2011-08-26 20:03:29 +0400
commita94cc4e6c0a26a7c8f79a432ab2c89534aa674d5 (patch)
treec49bd80e9001f189c8f3b3c77518c3cbbb1fc6b9
parent1e8d4e8be2e104514564983239af9dd9521c7779 (diff)
downloadlinux-a94cc4e6c0a26a7c8f79a432ab2c89534aa674d5.tar.xz
sfi: table irq 0xFF means 'no interrupt'
According to the SFI specification irq number 0xFF means device has no interrupt or interrupt attached via GPIO. Currently, we don't handle this special case and set irq field in *_board_info structs to 255. It leads to confusion in some drivers. Accelerometer driver tries to register interrupt 255, fails and prints "Cannot get IRQ" to dmesg. Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Signed-off-by: Alan Cox <alan@linux.intel.com> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/x86/platform/mrst/mrst.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/arch/x86/platform/mrst/mrst.c b/arch/x86/platform/mrst/mrst.c
index 7000e74b3087..58425adc22c6 100644
--- a/arch/x86/platform/mrst/mrst.c
+++ b/arch/x86/platform/mrst/mrst.c
@@ -689,7 +689,9 @@ static int __init sfi_parse_devs(struct sfi_table_header *table)
irq_attr.trigger = 1;
irq_attr.polarity = 1;
io_apic_set_pci_routing(NULL, pentry->irq, &irq_attr);
- }
+ } else
+ pentry->irq = 0; /* No irq */
+
switch (pentry->type) {
case SFI_DEV_TYPE_IPC:
/* ID as IRQ is a hack that will go away */