[PATCH] clk: ccf: correct the test on the parent uclass in clk_enable/clk_disable

Sean Anderson seanga2 at gmail.com
Tue Feb 1 15:54:05 CET 2022


On 1/24/22 8:17 AM, Patrick Delaunay wrote:
> 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 at foss.st.com>
> ---
> 
>   drivers/clk/clk-uclass.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/clk/clk-uclass.c b/drivers/clk/clk-uclass.c
> index d245b672fa..8b6981a307 100644
> --- a/drivers/clk/clk-uclass.c
> +++ b/drivers/clk/clk-uclass.c
> @@ -652,7 +652,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",
> @@ -726,7 +726,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",
> 

Looks like I put this in [1] in v6, so

Reviewed-by: Sean Anderson <seanga2 at gmail.com>

[1] https://lore.kernel.org/u-boot/20200521161503.384823-4-seanga2@gmail.com/


More information about the U-Boot mailing list