Message ID | 20230728013148.1720978-9-liaochang1@huawei.com |
---|---|
State | Superseded |
Headers | show |
Series | Use dev_err_probe in i2c probe function | expand |
Hello, On Fri, Jul 28, 2023 at 09:31:47AM +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> > --- > drivers/i2c/busses/i2c-imx-lpi2c.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c > index c3287c887c6f..9021b8064ae4 100644 > --- a/drivers/i2c/busses/i2c-imx-lpi2c.c > +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c > @@ -569,10 +569,8 @@ static int lpi2c_imx_probe(struct platform_device *pdev) > sizeof(lpi2c_imx->adapter.name)); > > ret = devm_clk_bulk_get_all(&pdev->dev, &lpi2c_imx->clks); > - if (ret < 0) { > - dev_err(&pdev->dev, "can't get I2C peripheral clock, ret=%d\n", ret); > - return ret; > - } > + if (ret < 0) > + return dev_err_probe(&pdev->dev, ret, "can't get I2C peripheral clock\n"); The change looks good, however I wonder why you didn't convert the other dev_err() called by lpi2c_imx_probe() in the same way. Best regards Uwe
在 2023/7/28 13:55, Uwe Kleine-König 写道: > Hello, > > On Fri, Jul 28, 2023 at 09:31:47AM +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> >> --- >> drivers/i2c/busses/i2c-imx-lpi2c.c | 6 ++---- >> 1 file changed, 2 insertions(+), 4 deletions(-) >> >> diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c >> index c3287c887c6f..9021b8064ae4 100644 >> --- a/drivers/i2c/busses/i2c-imx-lpi2c.c >> +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c >> @@ -569,10 +569,8 @@ static int lpi2c_imx_probe(struct platform_device *pdev) >> sizeof(lpi2c_imx->adapter.name)); >> >> ret = devm_clk_bulk_get_all(&pdev->dev, &lpi2c_imx->clks); >> - if (ret < 0) { >> - dev_err(&pdev->dev, "can't get I2C peripheral clock, ret=%d\n", ret); >> - return ret; >> - } >> + if (ret < 0) >> + return dev_err_probe(&pdev->dev, ret, "can't get I2C peripheral clock\n"); > > The change looks good, however I wonder why you didn't convert the other > dev_err() called by lpi2c_imx_probe() in the same way. Sorry, I am in hurry and don't clean it up as much as. Actually, I am not sure if I should convert all dev_err calls to dev_err_probe, or just replace the ones that print the 'return value'. I know that dev_err_probe is better suited for printing return values, but I am nore sure if it's worth the effort to convert all of the calls, for example, the second dev_err in lpi2c_imx_probe(): ret = devm_request_irq(&pdev->dev, irq, lpi2c_imx_isr, 0, pdev->name, lpi2c_imx); if (ret) dev_err(&pdev->dev, "can't claim rqi %d\n", irq); return ret; } Thanks. > > Best regards > Uwe >
Hello, On Mon, Jul 31, 2023 at 10:16:38AM +0800, Liao, Chang wrote: > 在 2023/7/28 13:55, Uwe Kleine-König 写道: > > On Fri, Jul 28, 2023 at 09:31:47AM +0800, Liao Chang wrote: > >> diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c > >> index c3287c887c6f..9021b8064ae4 100644 > >> --- a/drivers/i2c/busses/i2c-imx-lpi2c.c > >> +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c > >> @@ -569,10 +569,8 @@ static int lpi2c_imx_probe(struct platform_device *pdev) > >> sizeof(lpi2c_imx->adapter.name)); > >> > >> ret = devm_clk_bulk_get_all(&pdev->dev, &lpi2c_imx->clks); > >> - if (ret < 0) { > >> - dev_err(&pdev->dev, "can't get I2C peripheral clock, ret=%d\n", ret); > >> - return ret; > >> - } > >> + if (ret < 0) > >> + return dev_err_probe(&pdev->dev, ret, "can't get I2C peripheral clock\n"); > > > > The change looks good, however I wonder why you didn't convert the other > > dev_err() called by lpi2c_imx_probe() in the same way. > > Sorry, I am in hurry and don't clean it up as much as. > > Actually, I am not sure if I should convert all dev_err calls to dev_err_probe, or just > replace the ones that print the 'return value'. I know that dev_err_probe is better > suited for printing return values, but I am nore sure if it's worth the effort to convert > all of the calls, for example, the second dev_err in lpi2c_imx_probe(): > > ret = devm_request_irq(&pdev->dev, irq, lpi2c_imx_isr, 0, pdev->name, lpi2c_imx); > if (ret) > dev_err(&pdev->dev, "can't claim rqi %d\n", irq); > return ret; > } I'd say yes. The return value of devm_request_irq() might be interesting in the error message. Also emitting error messages in a consistent style is nice. Best regards Uwe
在 2023/7/31 15:34, Uwe Kleine-König 写道: > Hello, > > On Mon, Jul 31, 2023 at 10:16:38AM +0800, Liao, Chang wrote: >> 在 2023/7/28 13:55, Uwe Kleine-König 写道: >>> On Fri, Jul 28, 2023 at 09:31:47AM +0800, Liao Chang wrote: >>>> diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c >>>> index c3287c887c6f..9021b8064ae4 100644 >>>> --- a/drivers/i2c/busses/i2c-imx-lpi2c.c >>>> +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c >>>> @@ -569,10 +569,8 @@ static int lpi2c_imx_probe(struct platform_device *pdev) >>>> sizeof(lpi2c_imx->adapter.name)); >>>> >>>> ret = devm_clk_bulk_get_all(&pdev->dev, &lpi2c_imx->clks); >>>> - if (ret < 0) { >>>> - dev_err(&pdev->dev, "can't get I2C peripheral clock, ret=%d\n", ret); >>>> - return ret; >>>> - } >>>> + if (ret < 0) >>>> + return dev_err_probe(&pdev->dev, ret, "can't get I2C peripheral clock\n"); >>> >>> The change looks good, however I wonder why you didn't convert the other >>> dev_err() called by lpi2c_imx_probe() in the same way. >> >> Sorry, I am in hurry and don't clean it up as much as. >> >> Actually, I am not sure if I should convert all dev_err calls to dev_err_probe, or just >> replace the ones that print the 'return value'. I know that dev_err_probe is better >> suited for printing return values, but I am nore sure if it's worth the effort to convert >> all of the calls, for example, the second dev_err in lpi2c_imx_probe(): >> >> ret = devm_request_irq(&pdev->dev, irq, lpi2c_imx_isr, 0, pdev->name, lpi2c_imx); >> if (ret) >> dev_err(&pdev->dev, "can't claim rqi %d\n", irq); >> return ret; >> } > > I'd say yes. The return value of devm_request_irq() might be interesting > in the error message. Also emitting error messages in a consistent style > is nice. Sounds good, I will convert them all in the next revision. Thanks. > > Best regards > Uwe >
diff --git a/drivers/i2c/busses/i2c-imx-lpi2c.c b/drivers/i2c/busses/i2c-imx-lpi2c.c index c3287c887c6f..9021b8064ae4 100644 --- a/drivers/i2c/busses/i2c-imx-lpi2c.c +++ b/drivers/i2c/busses/i2c-imx-lpi2c.c @@ -569,10 +569,8 @@ static int lpi2c_imx_probe(struct platform_device *pdev) sizeof(lpi2c_imx->adapter.name)); ret = devm_clk_bulk_get_all(&pdev->dev, &lpi2c_imx->clks); - if (ret < 0) { - dev_err(&pdev->dev, "can't get I2C peripheral clock, ret=%d\n", ret); - return ret; - } + if (ret < 0) + return dev_err_probe(&pdev->dev, ret, "can't get I2C peripheral clock\n"); lpi2c_imx->num_clks = ret; ret = of_property_read_u32(pdev->dev.of_node,
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-imx-lpi2c.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-)