diff options
author | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2006-08-25 14:46:23 +1000 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-08-30 14:31:03 +1000 |
commit | 006b64de607f895de2ba1e21d3179cddf059128f (patch) | |
tree | c4eb38d1a3fcb42336475ae261c6624d179308ed /include/asm-powerpc/prom.h | |
parent | 7233593b7844c2db930594ee9c0c872a6900bfcc (diff) | |
download | kernel_samsung_smdk4412-006b64de607f895de2ba1e21d3179cddf059128f.zip kernel_samsung_smdk4412-006b64de607f895de2ba1e21d3179cddf059128f.tar.gz kernel_samsung_smdk4412-006b64de607f895de2ba1e21d3179cddf059128f.tar.bz2 |
[POWERPC] Make OF irq map code detect more error cases
Device-tree bugs on js20 with some versions of SLOF were causing the
interrupt for IDE to not be parsed correctly and fail to boot. This
patch adds a bit more sanity checking to the parser to detect some of
those errors and fail instead of returning bogus information. The
powerpc PCI code can then trigger a fallback that works on those
machines.
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
Diffstat (limited to 'include/asm-powerpc/prom.h')
-rw-r--r-- | include/asm-powerpc/prom.h | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/include/asm-powerpc/prom.h b/include/asm-powerpc/prom.h index b095a28..d0fa1b9 100644 --- a/include/asm-powerpc/prom.h +++ b/include/asm-powerpc/prom.h @@ -276,6 +276,7 @@ extern void of_irq_map_init(unsigned int flags); * of_irq_map_raw - Low level interrupt tree parsing * @parent: the device interrupt parent * @intspec: interrupt specifier ("interrupts" property of the device) + * @ointsize: size of the passed in interrupt specifier * @addr: address specifier (start of "reg" property of the device) * @out_irq: structure of_irq filled by this function * @@ -288,7 +289,8 @@ extern void of_irq_map_init(unsigned int flags); * */ -extern int of_irq_map_raw(struct device_node *parent, u32 *intspec, u32 *addr, +extern int of_irq_map_raw(struct device_node *parent, u32 *intspec, + u32 ointsize, u32 *addr, struct of_irq *out_irq); |