diff options
Diffstat (limited to 'drivers/clocksource/timer-stm32.c')
-rw-r--r-- | drivers/clocksource/timer-stm32.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/clocksource/timer-stm32.c b/drivers/clocksource/timer-stm32.c index f3dcb76799b4..d5bf352905c8 100644 --- a/drivers/clocksource/timer-stm32.c +++ b/drivers/clocksource/timer-stm32.c | |||
@@ -98,7 +98,7 @@ static struct stm32_clock_event_ddata clock_event_ddata = { | |||
98 | }, | 98 | }, |
99 | }; | 99 | }; |
100 | 100 | ||
101 | static void __init stm32_clockevent_init(struct device_node *np) | 101 | static int __init stm32_clockevent_init(struct device_node *np) |
102 | { | 102 | { |
103 | struct stm32_clock_event_ddata *data = &clock_event_ddata; | 103 | struct stm32_clock_event_ddata *data = &clock_event_ddata; |
104 | struct clk *clk; | 104 | struct clk *clk; |
@@ -130,12 +130,14 @@ static void __init stm32_clockevent_init(struct device_node *np) | |||
130 | 130 | ||
131 | data->base = of_iomap(np, 0); | 131 | data->base = of_iomap(np, 0); |
132 | if (!data->base) { | 132 | if (!data->base) { |
133 | ret = -ENXIO; | ||
133 | pr_err("failed to map registers for clockevent\n"); | 134 | pr_err("failed to map registers for clockevent\n"); |
134 | goto err_iomap; | 135 | goto err_iomap; |
135 | } | 136 | } |
136 | 137 | ||
137 | irq = irq_of_parse_and_map(np, 0); | 138 | irq = irq_of_parse_and_map(np, 0); |
138 | if (!irq) { | 139 | if (!irq) { |
140 | ret = -EINVAL; | ||
139 | pr_err("%s: failed to get irq.\n", np->full_name); | 141 | pr_err("%s: failed to get irq.\n", np->full_name); |
140 | goto err_get_irq; | 142 | goto err_get_irq; |
141 | } | 143 | } |
@@ -173,7 +175,7 @@ static void __init stm32_clockevent_init(struct device_node *np) | |||
173 | pr_info("%s: STM32 clockevent driver initialized (%d bits)\n", | 175 | pr_info("%s: STM32 clockevent driver initialized (%d bits)\n", |
174 | np->full_name, bits); | 176 | np->full_name, bits); |
175 | 177 | ||
176 | return; | 178 | return ret; |
177 | 179 | ||
178 | err_get_irq: | 180 | err_get_irq: |
179 | iounmap(data->base); | 181 | iounmap(data->base); |
@@ -182,7 +184,7 @@ err_iomap: | |||
182 | err_clk_enable: | 184 | err_clk_enable: |
183 | clk_put(clk); | 185 | clk_put(clk); |
184 | err_clk_get: | 186 | err_clk_get: |
185 | return; | 187 | return ret; |
186 | } | 188 | } |
187 | 189 | ||
188 | CLOCKSOURCE_OF_DECLARE(stm32, "st,stm32-timer", stm32_clockevent_init); | 190 | CLOCKSOURCE_OF_DECLARE_RET(stm32, "st,stm32-timer", stm32_clockevent_init); |