[PATCH v2 2/3] clk: mediatek: add grandparent variable in mtk_find_parent_rate()
Weijie Gao
weijie.gao at mediatek.com
Thu Apr 16 10:23:05 CEST 2026
From: Sam Shih <sam.shih at mediatek.com>
Add grandparent device variable in mtk_find_parent_rate() to allow
the grandparent device being reused instead of calling
dev_get_parent(priv->parent) multiple times.
Signed-off-by: Sam Shih <sam.shih at mediatek.com>
Signed-off-by: Weijie Gao <weijie.gao at mediatek.com>
---
drivers/clk/mediatek/clk-mtk.c | 11 +++++++----
1 file changed, 7 insertions(+), 4 deletions(-)
diff --git a/drivers/clk/mediatek/clk-mtk.c b/drivers/clk/mediatek/clk-mtk.c
index 4adec4457b4..f974f0f2432 100644
--- a/drivers/clk/mediatek/clk-mtk.c
+++ b/drivers/clk/mediatek/clk-mtk.c
@@ -216,11 +216,14 @@ static ulong mtk_find_parent_rate(struct mtk_clk_priv *priv, struct clk *clk,
parent_dev = clk->dev;
else if (dev_get_driver_ops(priv->parent) == &mtk_clk_apmixedsys_ops)
parent_dev = priv->parent;
- else if (dev_get_driver_ops(dev_get_parent(priv->parent)) == &mtk_clk_apmixedsys_ops)
- parent_dev = dev_get_parent(priv->parent);
- else
- return -EINVAL;
+ else {
+ struct udevice *grandparent_dev = dev_get_parent(priv->parent);
+ if (dev_get_driver_ops(grandparent_dev) == &mtk_clk_apmixedsys_ops)
+ parent_dev = grandparent_dev;
+ else
+ return -EINVAL;
+ }
break;
case CLK_PARENT_TOPCKGEN:
if (dev_get_driver_ops(clk->dev) == &mtk_clk_topckgen_ops)
--
2.45.2
More information about the U-Boot
mailing list