clk: improve handling of orphan clocks
From: Heiko Stuebner <heiko@...> Date: Thu, 2 Apr 2015 17:10:29 +0200
This resurrects a patch from Doug Anderson from november that fixes the enable counts when previous orphan-clocks get reparented to a newly probed parent clock. In the ensuing discussion Russell rightfully pointed out that orphan clocks should probably not be used at all, as things like dividers won't be able to set meaningful / safe values at all. But Doug's reply also rightfully mentioned the fact that we most likely cannot change the behaviour for all orphans as maybe some arches depend on the current behaviour and it's not really possible to find all possible affected clocks. So this series is two-part. Patch1 is the fix from Doug fixing the actual enable mismatch when an enabled orphan gets reparented to a real parent and patches 2-4 try to provide a way to let the clock core defer clk_gets on orphan clocks. If at some point the majority of clock drivers make use of deferrals this could then become the default behaviour. Doug Anderson (1): clk: Propagate prepare and enable when reparenting orphans Heiko Stuebner (3): clk: add clk_is_orphan() to check if a clocks inherits from an orphan clock clk: add CLK_DEFER_ORPHAN flag to prevent orphans from being used clk: rockchip: enable CLK_DEFER_ORPHAN for all branches drivers/clk/clk.c | 69 ++++++++++++++++++++++++++++++++++++++++++-- drivers/clk/rockchip/clk.c | 3 ++ include/linux/clk-provider.h | 1 + 3 files changed, 71 insertions(+), 2 deletions(-) -- 2.1.4
Patches in this set
- [0001] clk: Propagate prepare and enable when reparenting orphans (raw)
- [0002] clk: add clk_is_orphan() to check if a clocks inherits from an orphan clock (raw)
- [0003] clk: add CLK_DEFER_ORPHAN flag to prevent orphans from being used (raw)
- [0004] clk: rockchip: enable CLK_DEFER_ORPHAN for all branches (raw)
Statistics
- 4 individual patches
- 71 lines added
- 2 lines removed