Message ID | 20230728013148.1720978-6-liaochang1@huawei.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Use dev_err_probe in i2c probe function | expand |
Hi Liao, On Fri, Jul 28, 2023 at 09:31:44AM +0800, Liao Chang wrote: > Use the dev_err_probe function instead of dev_err in the probe function > so that the printed messge includes the return value and also handles > -EPROBE_DEFER nicely. > > Signed-off-by: Liao Chang <liaochang1@huawei.com> Reviewed-by: Andi Shyti <andi.shyti@kernel.org> Andi
On 28/07/2023 04:31, Liao Chang wrote: > Use the dev_err_probe function instead of dev_err in the probe function > so that the printed messge includes the return value and also handles > -EPROBE_DEFER nicely. > > Signed-off-by: Liao Chang <liaochang1@huawei.com> > --- > drivers/i2c/busses/i2c-qcom-cci.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > diff --git a/drivers/i2c/busses/i2c-qcom-cci.c b/drivers/i2c/busses/i2c-qcom-cci.c > index 622dc14add9d..cf13abec05f1 100644 > --- a/drivers/i2c/busses/i2c-qcom-cci.c > +++ b/drivers/i2c/busses/i2c-qcom-cci.c > @@ -588,10 +588,8 @@ static int cci_probe(struct platform_device *pdev) > /* Clocks */ > > ret = devm_clk_bulk_get_all(dev, &cci->clocks); > - if (ret < 1) { > - dev_err(dev, "failed to get clocks %d\n", ret); > - return ret; > - } > + if (ret < 1) > + return dev_err_probe(dev, ret, "failed to get clocks\n"); > cci->nclocks = ret; > > /* Retrieve CCI clock rate */
Hi, On 18/08/23 4:36 pm, Dmitry Baryshkov wrote: > On 28/07/2023 04:31, Liao Chang wrote: >> Use the dev_err_probe function instead of dev_err in the probe function >> so that the printed messge includes the return value and also handles >> -EPROBE_DEFER nicely. >> >> Signed-off-by: Liao Chang <liaochang1@huawei.com> >> --- >> drivers/i2c/busses/i2c-qcom-cci.c | 6 ++---- >> 1 file changed, 2 insertions(+), 4 deletions(-) > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > >> >> diff --git a/drivers/i2c/busses/i2c-qcom-cci.c >> b/drivers/i2c/busses/i2c-qcom-cci.c >> index 622dc14add9d..cf13abec05f1 100644 >> --- a/drivers/i2c/busses/i2c-qcom-cci.c >> +++ b/drivers/i2c/busses/i2c-qcom-cci.c >> @@ -588,10 +588,8 @@ static int cci_probe(struct platform_device *pdev) >> /* Clocks */ >> ret = devm_clk_bulk_get_all(dev, &cci->clocks); >> - if (ret < 1) { >> - dev_err(dev, "failed to get clocks %d\n", ret); >> - return ret; >> - } >> + if (ret < 1) >> + return dev_err_probe(dev, ret, "failed to get clocks\n"); Description: ----------- * devm_clk_bulk_get_all - managed get multiple clk consumers * @dev: device for clock "consumer" * @clks: pointer to the clk_bulk_data table of consumer * * Returns a positive value for the number of clocks obtained while the * clock references are stored in the clk_bulk_data table in @clks field. * Returns 0 if there're none and a negative value if something failed. ----------- When ret = 0; "zero" is passed to dev_err_probe and we are returning success(zero) from probe function. Based on other instances of devm_clk_bulk_get_all() API, can we fix it by changing condition like this? diff --git a/drivers/i2c/busses/i2c-qcom-cci.c b/drivers/i2c/busses/i2c-qcom-cci.c index cf13abec05f1..cea6f70d2b8d 100644 --- a/drivers/i2c/busses/i2c-qcom-cci.c +++ b/drivers/i2c/busses/i2c-qcom-cci.c @@ -588,7 +588,7 @@ 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"); cci->nclocks = ret; Thanks, Harshit >> cci->nclocks = ret; >> /* Retrieve CCI clock rate */ >
On Mon, 21 Aug 2023 at 23:39, Harshit Mogalapalli <harshit.m.mogalapalli@oracle.com> wrote: > > Hi, > > On 18/08/23 4:36 pm, Dmitry Baryshkov wrote: > > On 28/07/2023 04:31, Liao Chang wrote: > >> Use the dev_err_probe function instead of dev_err in the probe function > >> so that the printed messge includes the return value and also handles > >> -EPROBE_DEFER nicely. > >> > >> Signed-off-by: Liao Chang <liaochang1@huawei.com> > >> --- > >> drivers/i2c/busses/i2c-qcom-cci.c | 6 ++---- > >> 1 file changed, 2 insertions(+), 4 deletions(-) > > > > Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org> > > > >> > >> diff --git a/drivers/i2c/busses/i2c-qcom-cci.c > >> b/drivers/i2c/busses/i2c-qcom-cci.c > >> index 622dc14add9d..cf13abec05f1 100644 > >> --- a/drivers/i2c/busses/i2c-qcom-cci.c > >> +++ b/drivers/i2c/busses/i2c-qcom-cci.c > >> @@ -588,10 +588,8 @@ static int cci_probe(struct platform_device *pdev) > >> /* Clocks */ > >> ret = devm_clk_bulk_get_all(dev, &cci->clocks); > >> - if (ret < 1) { > >> - dev_err(dev, "failed to get clocks %d\n", ret); > >> - return ret; > >> - } > >> + if (ret < 1) > >> + return dev_err_probe(dev, ret, "failed to get clocks\n"); > > Description: > ----------- > * devm_clk_bulk_get_all - managed get multiple clk consumers > * @dev: device for clock "consumer" > * @clks: pointer to the clk_bulk_data table of consumer > * > * Returns a positive value for the number of clocks obtained while the > * clock references are stored in the clk_bulk_data table in @clks field. > * Returns 0 if there're none and a negative value if something failed. > ----------- > > When ret = 0; > > "zero" is passed to dev_err_probe and we are returning success(zero) > from probe function. > > Based on other instances of devm_clk_bulk_get_all() API, can we fix it > by changing condition like this? > > diff --git a/drivers/i2c/busses/i2c-qcom-cci.c > b/drivers/i2c/busses/i2c-qcom-cci.c > index cf13abec05f1..cea6f70d2b8d 100644 > --- a/drivers/i2c/busses/i2c-qcom-cci.c > +++ b/drivers/i2c/busses/i2c-qcom-cci.c > @@ -588,7 +588,7 @@ 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"); Only if it succeeded with something like: if (!ret) return dev_err_probe(dev, -EINVAL, "Not enough clocks in DT\n"); But it is a separate topic and should be a part of the separate patch. > cci->nclocks = ret; > > > Thanks, > Harshit > > >> cci->nclocks = ret; > >> /* Retrieve CCI clock rate */ > >
diff --git a/drivers/i2c/busses/i2c-qcom-cci.c b/drivers/i2c/busses/i2c-qcom-cci.c index 622dc14add9d..cf13abec05f1 100644 --- a/drivers/i2c/busses/i2c-qcom-cci.c +++ b/drivers/i2c/busses/i2c-qcom-cci.c @@ -588,10 +588,8 @@ static int cci_probe(struct platform_device *pdev) /* Clocks */ ret = devm_clk_bulk_get_all(dev, &cci->clocks); - if (ret < 1) { - dev_err(dev, "failed to get clocks %d\n", ret); - return ret; - } + if (ret < 1) + return dev_err_probe(dev, ret, "failed to get clocks\n"); cci->nclocks = ret; /* Retrieve CCI clock rate */
Use the dev_err_probe function instead of dev_err in the probe function so that the printed messge includes the return value and also handles -EPROBE_DEFER nicely. Signed-off-by: Liao Chang <liaochang1@huawei.com> --- drivers/i2c/busses/i2c-qcom-cci.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)