Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 92a39d90 authored by Maxime Ripard's avatar Maxime Ripard Committed by Stephen Boyd
Browse files

clk: composite: Add unregister function



The composite clock didn't have any unregistration function, which forced
us to use clk_unregister directly on it.

While it was already not great from an API point of view, it also meant
that we were leaking the clk_composite structure allocated in
clk_register_composite.

Add a clk_unregister_composite function to fix this.

Signed-off-by: default avatarMaxime Ripard <maxime.ripard@free-electrons.com>
Signed-off-by: default avatarStephen Boyd <sboyd@codeaurora.org>
parent f55532a0
Loading
Loading
Loading
Loading
+15 −0
Original line number Diff line number Diff line
@@ -286,3 +286,18 @@ struct clk *clk_register_composite(struct device *dev, const char *name,
	kfree(composite);
	return clk;
}

void clk_unregister_composite(struct clk *clk)
{
	struct clk_composite *composite;
	struct clk_hw *hw;

	hw = __clk_get_hw(clk);
	if (!hw)
		return;

	composite = to_clk_composite(hw);

	clk_unregister(clk);
	kfree(composite);
}
+1 −0
Original line number Diff line number Diff line
@@ -603,6 +603,7 @@ struct clk *clk_register_composite(struct device *dev, const char *name,
		struct clk_hw *rate_hw, const struct clk_ops *rate_ops,
		struct clk_hw *gate_hw, const struct clk_ops *gate_ops,
		unsigned long flags);
void clk_unregister_composite(struct clk *clk);

/***
 * struct clk_gpio_gate - gpio gated clock