diff options
Diffstat (limited to 'drivers/clocksource/timer-of.c')
-rw-r--r-- | drivers/clocksource/timer-of.c | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/drivers/clocksource/timer-of.c b/drivers/clocksource/timer-of.c index f6e7491c873c..d509b500a7b5 100644 --- a/drivers/clocksource/timer-of.c +++ b/drivers/clocksource/timer-of.c | |||
@@ -41,8 +41,16 @@ static __init int timer_irq_init(struct device_node *np, | |||
41 | struct timer_of *to = container_of(of_irq, struct timer_of, of_irq); | 41 | struct timer_of *to = container_of(of_irq, struct timer_of, of_irq); |
42 | struct clock_event_device *clkevt = &to->clkevt; | 42 | struct clock_event_device *clkevt = &to->clkevt; |
43 | 43 | ||
44 | of_irq->irq = of_irq->name ? of_irq_get_byname(np, of_irq->name): | 44 | if (of_irq->name) { |
45 | irq_of_parse_and_map(np, of_irq->index); | 45 | of_irq->irq = ret = of_irq_get_byname(np, of_irq->name); |
46 | if (ret < 0) { | ||
47 | pr_err("Failed to get interrupt %s for %s\n", | ||
48 | of_irq->name, np->full_name); | ||
49 | return ret; | ||
50 | } | ||
51 | } else { | ||
52 | of_irq->irq = irq_of_parse_and_map(np, of_irq->index); | ||
53 | } | ||
46 | if (!of_irq->irq) { | 54 | if (!of_irq->irq) { |
47 | pr_err("Failed to map interrupt for %s\n", np->full_name); | 55 | pr_err("Failed to map interrupt for %s\n", np->full_name); |
48 | return -EINVAL; | 56 | return -EINVAL; |