diff options
author | Dong Aisheng <aisheng.dong@nxp.com> | 2020-11-19 19:43:02 +0800 |
---|---|---|
committer | Shawn Guo <shawnguo@kernel.org> | 2020-11-30 21:53:03 +0800 |
commit | 43d2479687c93ed9b93774ef9b46b37de5b3efcc (patch) | |
tree | 7610a1160b401346c2a4b6faf7f9b8ce8ac0334d /drivers/clk | |
parent | 550b562a153f84282c60fc3cb0d98f4e5609f0b4 (diff) | |
download | linux-43d2479687c93ed9b93774ef9b46b37de5b3efcc.tar.gz |
clk: imx: scu: remove the calling of device_is_bound
The device_is_bound() is invisible to drivers when built as modules.
It's also not aimed to be used by drivers according to Greg K.H.
Let's remove it from clk-scu driver and find another way to do proper
driver loading sequence.
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Sascha Hauer <kernel@pengutronix.de>
Cc: Stephen Boyd <sboyd@kernel.org>
Fixes: 77d8f3068c63 ("clk: imx: scu: add two cells binding support")
Reported-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
Diffstat (limited to 'drivers/clk')
-rw-r--r-- | drivers/clk/imx/clk-scu.c | 15 |
1 files changed, 4 insertions, 11 deletions
diff --git a/drivers/clk/imx/clk-scu.c b/drivers/clk/imx/clk-scu.c index d10f60e48ece..1f5518b7ab39 100644 --- a/drivers/clk/imx/clk-scu.c +++ b/drivers/clk/imx/clk-scu.c @@ -153,7 +153,6 @@ static inline struct clk_scu *to_clk_scu(struct clk_hw *hw) int imx_clk_scu_init(struct device_node *np) { - struct platform_device *pd_dev; u32 clk_cells; int ret, i; @@ -166,17 +165,11 @@ int imx_clk_scu_init(struct device_node *np) if (clk_cells == 2) { for (i = 0; i < IMX_SC_R_LAST; i++) INIT_LIST_HEAD(&imx_scu_clks[i]); - /* - * Note: SCU clock driver depends on SCU power domain to be ready - * first. As there're no power domains under scu clock node in dts, - * we can't use PROBE_DEFER automatically. - */ + + /* pd_np will be used to attach power domains later */ pd_np = of_find_compatible_node(NULL, NULL, "fsl,scu-pd"); - pd_dev = of_find_device_by_node(pd_np); - if (!pd_dev || !device_is_bound(&pd_dev->dev)) { - of_node_put(pd_np); - return -EPROBE_DEFER; - } + if (!pd_np) + return -EINVAL; } return platform_driver_register(&imx_clk_scu_driver); |