diff options
author | Andy Fleming <afleming@freescale.com> | 2006-11-07 17:57:22 -0500 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-11-12 22:48:54 -0500 |
commit | 66a91e9c0ab62ea938afaba7352741d8c554a589 (patch) | |
tree | 7fd491c3088f098bb9676bd6d0458db8bc6673c7 /include/asm-powerpc/prom.h | |
parent | a9b14973a8c42b2aecc968851372203c6567e196 (diff) |
[PATCH] of_irq_to_resource now returns the virq
Mostly this is to allow for error checking (check the return for NO_IRQ)
Added a check that the resource is non-NULL, too.
Signed-off-by: Andrew Fleming <afleming@freescale.com>
Acked-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 | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/include/asm-powerpc/prom.h b/include/asm-powerpc/prom.h index 39f04ef96f38..1fd7a2253e3a 100644 --- a/include/asm-powerpc/prom.h +++ b/include/asm-powerpc/prom.h | |||
@@ -332,10 +332,18 @@ extern int of_irq_map_one(struct device_node *device, int index, | |||
332 | struct pci_dev; | 332 | struct pci_dev; |
333 | extern int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq); | 333 | extern int of_irq_map_pci(struct pci_dev *pdev, struct of_irq *out_irq); |
334 | 334 | ||
335 | static inline void of_irq_to_resource(struct device_node *dev, int index, struct resource *r) | 335 | static inline int of_irq_to_resource(struct device_node *dev, int index, struct resource *r) |
336 | { | 336 | { |
337 | r->start = r->end = irq_of_parse_and_map(dev, index); | 337 | int irq = irq_of_parse_and_map(dev, index); |
338 | r->flags = IORESOURCE_IRQ; | 338 | |
339 | /* Only dereference the resource if both the | ||
340 | * resource and the irq are valid. */ | ||
341 | if (r && irq != NO_IRQ) { | ||
342 | r->start = r->end = irq; | ||
343 | r->flags = IORESOURCE_IRQ; | ||
344 | } | ||
345 | |||
346 | return irq; | ||
339 | } | 347 | } |
340 | 348 | ||
341 | 349 | ||