[Query] how to handle must be always enabled clk but there's no driver use the clk

Jisheng Zhang jszhang at marvell.com
Fri May 29 04:40:11 PDT 2015


Hi Sebastian, Mike and all,

Let me describe the situation:

there's one clk called as perifsysclk, it's the system AXI clk and at the same
time it's the clock source of two gate clks, for example ethclk, sdioclk etc.
Once cold boot, HW enables perifsysclk by default,

Now let's assume eth driver is firstly probed, in the beginning of eth_probe()
we call clk_prepare_enable(ethclk);

but the eth_probe() fail due to something, so in its failed path, it calls

clk_disable_unprepare(ethclk);

which will finally disable the perifsysclk, so we hang here.


How to handle this situation? Register one dummy driver early then
clk_prepare_enable(perifsysclk) in the driver probe?

Thanks,
Jisheng



More information about the linux-arm-kernel mailing list