diff options
author | Patrick Delaunay <patrick.delaunay@foss.st.com> | 2022-01-24 14:17:14 +0100 |
---|---|---|
committer | Sean Anderson <seanga2@gmail.com> | 2022-02-25 01:41:04 -0500 |
commit | b0cdd8287add19d1af6668b6e9e968046506c08d (patch) | |
tree | 3446e3d4eabf01f039cc57b4ea566b1cb9b1e07b /drivers | |
parent | e96e2132f977aab738994c11162b14695029be6e (diff) | |
download | u-boot-b0cdd8287add19d1af6668b6e9e968046506c08d.tar.gz u-boot-b0cdd8287add19d1af6668b6e9e968046506c08d.tar.bz2 u-boot-b0cdd8287add19d1af6668b6e9e968046506c08d.zip |
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/clk/clk-uclass.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c index fca4b8321a..c20c928bf1 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", |