[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20190619055247.35771-3-Anson.Huang@nxp.com>
Date: Wed, 19 Jun 2019 13:52:45 +0800
From: Anson.Huang@....com
To: mturquette@...libre.com, sboyd@...nel.org, robh+dt@...nel.org,
mark.rutland@....com, shawnguo@...nel.org, s.hauer@...gutronix.de,
kernel@...gutronix.de, festevam@...il.com, catalin.marinas@....com,
will.deacon@....com, maxime.ripard@...tlin.com, olof@...om.net,
horms+renesas@...ge.net.au, jagan@...rulasolutions.com,
leonard.crestez@....com, bjorn.andersson@...aro.org,
dinguyen@...nel.org, enric.balletbo@...labora.com,
aisheng.dong@....com, ping.bai@....com, abel.vesa@....com,
l.stach@...gutronix.de, peng.fan@....com,
linux-clk@...r.kernel.org, devicetree@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, linux-kernel@...r.kernel.org
Cc: Linux-imx@....com
Subject: [PATCH V5 3/5] clk: imx: Add API for clk unregister when driver probe fail
From: Anson Huang <Anson.Huang@....com>
For i.MX clock drivers probe fail case, clks should be unregistered
in the return path, this patch adds a common API for i.MX clock
drivers to unregister clocks when fail.
Signed-off-by: Anson Huang <Anson.Huang@....com>
---
New patch.
---
drivers/clk/imx/clk.c | 8 ++++++++
drivers/clk/imx/clk.h | 1 +
2 files changed, 9 insertions(+)
diff --git a/drivers/clk/imx/clk.c b/drivers/clk/imx/clk.c
index f241189..8616967 100644
--- a/drivers/clk/imx/clk.c
+++ b/drivers/clk/imx/clk.c
@@ -13,6 +13,14 @@
DEFINE_SPINLOCK(imx_ccm_lock);
+void imx_unregister_clocks(struct clk *clks[], unsigned int count)
+{
+ unsigned int i;
+
+ for (i = 0; i < count; i++)
+ clk_unregister(clks[i]);
+}
+
void __init imx_mmdc_mask_handshake(void __iomem *ccm_base,
unsigned int chn)
{
diff --git a/drivers/clk/imx/clk.h b/drivers/clk/imx/clk.h
index 19d7b8b..bb4ec1b 100644
--- a/drivers/clk/imx/clk.h
+++ b/drivers/clk/imx/clk.h
@@ -12,6 +12,7 @@ void imx_check_clk_hws(struct clk_hw *clks[], unsigned int count);
void imx_register_uart_clocks(struct clk ** const clks[]);
void imx_register_uart_clocks_hws(struct clk_hw ** const hws[]);
void imx_mmdc_mask_handshake(void __iomem *ccm_base, unsigned int chn);
+void imx_unregister_clocks(struct clk *clks[], unsigned int count);
extern void imx_cscmr1_fixup(u32 *val);
--
2.7.4
Powered by blists - more mailing lists