[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1508331506-23782-2-git-send-email-benjamin.gaignard@linaro.org>
Date: Wed, 18 Oct 2017 14:58:22 +0200
From: Benjamin Gaignard <benjamin.gaignard@...aro.org>
To: robh+dt@...nel.org, mark.rutland@....com, linux@...linux.org.uk,
mcoquelin.stm32@...il.com, alexandre.torgue@...com,
daniel.lezcano@...aro.org, tglx@...utronix.de,
ludovic.barre@...com, julien.thierry@....com
Cc: devicetree@...r.kernel.org, linux-arm-kernel@...ts.infradead.org,
linux-kernel@...r.kernel.org,
Benjamin Gaignard <benjamin.gaignard@...aro.org>
Subject: [PATCH v6 1/5] timer: add timer_of_deinit function
Add this deinit function to be able to undo what have been done
in timer_of_init().
Signed-off-by: Benjamin Gaignard <benjamin.gaignard@...aro.org>
---
drivers/clocksource/timer-of.c | 12 ++++++++++++
drivers/clocksource/timer-of.h | 3 +++
2 files changed, 15 insertions(+)
diff --git a/drivers/clocksource/timer-of.c b/drivers/clocksource/timer-of.c
index c79122d..14404a0 100644
--- a/drivers/clocksource/timer-of.c
+++ b/drivers/clocksource/timer-of.c
@@ -176,3 +176,15 @@ int __init timer_of_init(struct device_node *np, struct timer_of *to)
timer_base_exit(&to->of_base);
return ret;
}
+
+void timer_of_deinit(struct timer_of *to)
+{
+ if (to->flags & TIMER_OF_IRQ)
+ timer_irq_exit(&to->of_irq);
+
+ if (to->flags & TIMER_OF_CLOCK)
+ timer_clk_exit(&to->of_clk);
+
+ if (to->flags & TIMER_OF_BASE)
+ timer_base_exit(&to->of_base);
+}
diff --git a/drivers/clocksource/timer-of.h b/drivers/clocksource/timer-of.h
index e0d7272..3833ab1 100644
--- a/drivers/clocksource/timer-of.h
+++ b/drivers/clocksource/timer-of.h
@@ -66,4 +66,7 @@ static inline unsigned long timer_of_period(struct timer_of *to)
extern int __init timer_of_init(struct device_node *np,
struct timer_of *to);
+
+extern void timer_of_deinit(struct timer_of *to);
+
#endif
--
2.7.4
Powered by blists - more mailing lists