i2c: qcom-cci: Fix error checking in cci_probe()
authorHarshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Wed, 23 Aug 2023 19:42:02 +0000 (12:42 -0700)
committerWolfram Sang <wsa@kernel.org>
Fri, 25 Aug 2023 20:07:10 +0000 (22:07 +0200)
devm_clk_bulk_get_all() can return zero when no clocks are obtained.
Passing zero to dev_err_probe() is a success which is incorrect.

Fixes: 605efbf43813 ("i2c: qcom-cci: Use dev_err_probe in probe function")
Signed-off-by: Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com>
Reviewed-by: Bryan O'Donoghue <bryan.odonoghue@linaro.org>
Reviewed-by: Andi Shyti <andi.shyti@kernel.org>
Signed-off-by: Wolfram Sang <wsa@kernel.org>
drivers/i2c/busses/i2c-qcom-cci.c

index cf13abe..414882c 100644 (file)
@@ -588,8 +588,10 @@ static int cci_probe(struct platform_device *pdev)
        /* Clocks */
 
        ret = devm_clk_bulk_get_all(dev, &cci->clocks);
-       if (ret < 1)
+       if (ret < 0)
                return dev_err_probe(dev, ret, "failed to get clocks\n");
+       else if (!ret)
+               return dev_err_probe(dev, -EINVAL, "not enough clocks in DT\n");
        cci->nclocks = ret;
 
        /* Retrieve CCI clock rate */