[PATCH v2 3/5] clk: use clk_get_parent() helper in clk_en(dis)able()
Simon Glass
sjg at chromium.org
Tue Jan 6 17:22:24 CET 2026
On Wed, 31 Dec 2025 at 12:52, Yang Xiwen via B4 Relay
<devnull+forbidden405.outlook.com at kernel.org> wrote:
>
> From: Yang Xiwen <forbidden405 at outlook.com>
>
> Update clk_enable() and clk_disable() to use clk_get_parent() instead of
> manually accessing clk->dev->parent.
>
> Signed-off-by: Yang Xiwen <forbidden405 at outlook.com>
> ---
> drivers/clk/clk-uclass.c | 26 +++++++++++++++-----------
> 1 file changed, 15 insertions(+), 11 deletions(-)
Reviewed-by: Simon Glass <simon.glass at canonical.com>
>
> diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
> index bd18de972bb9..bfad71e7af70 100644
> --- a/drivers/clk/clk-uclass.c
> +++ b/drivers/clk/clk-uclass.c
> @@ -656,7 +656,7 @@ int clk_set_parent(struct clk *clk, struct clk *parent)
> int clk_enable(struct clk *clk)
> {
> const struct clk_ops *ops;
> - struct clk *clkp = NULL;
> + struct clk *clkp = NULL, *clk_parent;
> int ret;
>
> debug("%s(clk=%p name=%s)\n", __func__, clk, clk->dev->name);
> @@ -672,9 +672,10 @@ int clk_enable(struct clk *clk)
> clkp->enable_count++;
> return 0;
> }
> - if (clkp->dev->parent &&
> - device_get_uclass_id(clkp->dev->parent) == UCLASS_CLK) {
> - ret = clk_enable(dev_get_clk_ptr(clkp->dev->parent));
> +
> + clk_parent = clk_get_parent(clkp);
> + if (!IS_ERR_OR_NULL(clk_parent)) {
> + ret = clk_enable(clk_parent);
> if (ret) {
> printf("Enable %s failed\n",
> clkp->dev->parent->name);
> @@ -747,13 +748,16 @@ int clk_disable(struct clk *clk)
> return ret;
> }
>
> - if (clkp && clkp->dev->parent &&
> - device_get_uclass_id(clkp->dev->parent) == UCLASS_CLK) {
> - ret = clk_disable(dev_get_clk_ptr(clkp->dev->parent));
> - if (ret) {
> - printf("Disable %s failed\n",
> - clkp->dev->parent->name);
> - return ret;
> + if (clkp) {
> + struct clk *clk_parent = clk_get_parent(clkp);
> +
> + if (!IS_ERR_OR_NULL(clk_parent)) {
> + ret = clk_disable(clk_parent);
> + if (ret) {
> + printf("Disable %s failed\n",
> + clkp->dev->parent->name);
> + return ret;
> + }
> }
> }
> } else {
>
> --
> 2.43.0
>
>
More information about the U-Boot
mailing list