aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPatrick Delaunay <patrick.delaunay@foss.st.com>2022-01-24 14:17:14 +0100
committerSean Anderson <seanga2@gmail.com>2022-02-25 01:41:04 -0500
commitb0cdd8287add19d1af6668b6e9e968046506c08d (patch)
tree3446e3d4eabf01f039cc57b4ea566b1cb9b1e07b
parente96e2132f977aab738994c11162b14695029be6e (diff)
downloadu-boot-b0cdd8287add19d1af6668b6e9e968046506c08d.zip
u-boot-b0cdd8287add19d1af6668b6e9e968046506c08d.tar.gz
u-boot-b0cdd8287add19d1af6668b6e9e968046506c08d.tar.bz2
clk: ccf: correct the test on the parent uclass in clk_enable/clk_disable
It is safe to check if the uclass id on the device is UCLASS_CLK before to call the clk_ functions, but today this comparison is not done on the device used in API: clkp->dev->parent but on the device himself: clkp->dev. This patch corrects this behavior and tests if the parent device is a clock device before to call the clock API, clk_enable or clk_disable, on this device. Fixes: 0520be0f67e3 ("clk: prograte clk enable/disable to parent") Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com> Reviewed-by: Sean Anderson <seanga2@gmail.com>
-rw-r--r--drivers/clk/clk-uclass.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
index fca4b83..c20c928 100644
--- a/drivers/clk/clk-uclass.c
+++ b/drivers/clk/clk-uclass.c
@@ -641,7 +641,7 @@ int clk_enable(struct clk *clk)
return 0;
}
if (clkp->dev->parent &&
- device_get_uclass_id(clkp->dev) == UCLASS_CLK) {
+ device_get_uclass_id(clkp->dev->parent) == UCLASS_CLK) {
ret = clk_enable(dev_get_clk_ptr(clkp->dev->parent));
if (ret) {
printf("Enable %s failed\n",
@@ -715,7 +715,7 @@ int clk_disable(struct clk *clk)
}
if (clkp && clkp->dev->parent &&
- device_get_uclass_id(clkp->dev) == UCLASS_CLK) {
+ 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",