* [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_
2017-09-23 6:06 ` [PATCH 1/3] iio: adc: twl4030: Fix an error handling path " Christophe JAILLET
@ 2017-09-23 6:06 ` Christophe JAILLET
2017-09-24 12:00 ` [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4 Jonathan Cameron
2017-09-23 6:06 ` [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl403 Christophe JAILLET
2017-09-24 11:58 ` [PATCH 1/3] iio: adc: twl4030: Fix an error handling path in 'twl4030_madc_probe()' Jonathan Cameron
2 siblings, 1 reply; 7+ messages in thread
From: Christophe JAILLET @ 2017-09-23 6:06 UTC (permalink / raw)
To: jic23, knaack.h, lars, pmeerw, sre, wsa, kishon
Cc: linux-iio, linux-kernel, kernel-janitors, Christophe JAILLET
Commit 7cc97d77ee8a has introduced a call to 'regulator_disable()' in the
.remove function.
So we should also have such a call in the .probe function in case of
error after a successful 'regulator_enable()' call.
Add a new label for that and use it.
Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
drivers/iio/adc/twl4030-madc.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
index 80ab2ed70b85..32db23d9a483 100644
--- a/drivers/iio/adc/twl4030-madc.c
+++ b/drivers/iio/adc/twl4030-madc.c
@@ -899,11 +899,13 @@ static int twl4030_madc_probe(struct platform_device *pdev)
ret = iio_device_register(iio_dev);
if (ret) {
dev_err(&pdev->dev, "could not register iio device\n");
- goto err_i2c;
+ goto err_usb3v1;
}
return 0;
+err_usb3v1:
+ regulator_disable(madc->usb3v1);
err_i2c:
twl4030_madc_set_current_generator(madc, 0, 0);
err_current_generator:
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4
2017-09-23 6:06 ` [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_ Christophe JAILLET
@ 2017-09-24 12:00 ` Jonathan Cameron
0 siblings, 0 replies; 7+ messages in thread
From: Jonathan Cameron @ 2017-09-24 12:00 UTC (permalink / raw)
To: Christophe JAILLET
Cc: knaack.h, lars, pmeerw, sre, wsa, kishon, linux-iio,
linux-kernel, kernel-janitors
On Sat, 23 Sep 2017 08:06:19 +0200
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:
> Commit 7cc97d77ee8a has introduced a call to 'regulator_disable()' in the
> .remove function.
> So we should also have such a call in the .probe function in case of
> error after a successful 'regulator_enable()' call.
>
> Add a new label for that and use it.
>
> Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Applied to the fixes-togreg-post-rc1 branch of iio.git and marked
for stable.
Thanks,
Jonathan
> ---
> drivers/iio/adc/twl4030-madc.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
> index 80ab2ed70b85..32db23d9a483 100644
> --- a/drivers/iio/adc/twl4030-madc.c
> +++ b/drivers/iio/adc/twl4030-madc.c
> @@ -899,11 +899,13 @@ static int twl4030_madc_probe(struct platform_device *pdev)
> ret = iio_device_register(iio_dev);
> if (ret) {
> dev_err(&pdev->dev, "could not register iio device\n");
> - goto err_i2c;
> + goto err_usb3v1;
> }
>
> return 0;
>
> +err_usb3v1:
> + regulator_disable(madc->usb3v1);
> err_i2c:
> twl4030_madc_set_current_generator(madc, 0, 0);
> err_current_generator:
^ permalink raw reply [flat|nested] 7+ messages in thread
* [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl403
2017-09-23 6:06 ` [PATCH 1/3] iio: adc: twl4030: Fix an error handling path " Christophe JAILLET
2017-09-23 6:06 ` [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_ Christophe JAILLET
@ 2017-09-23 6:06 ` Christophe JAILLET
2017-09-24 12:05 ` [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'tw Jonathan Cameron
2017-09-24 11:58 ` [PATCH 1/3] iio: adc: twl4030: Fix an error handling path in 'twl4030_madc_probe()' Jonathan Cameron
2 siblings, 1 reply; 7+ messages in thread
From: Christophe JAILLET @ 2017-09-23 6:06 UTC (permalink / raw)
To: jic23, knaack.h, lars, pmeerw, sre, wsa, kishon
Cc: linux-iio, linux-kernel, kernel-janitors, Christophe JAILLET
If we can not enable the regulator, go through the error handling path
instead of silently continuing.
Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
---
This patch is highly speculative.
I don't find logical to return an error if we don't find the 'vusb3v1'
regulator, but continue if we find it, but can't enable it.
Returning an error if both cases (i.e. failing 'devm_regulator_get()' or
'regulator_enable)' seems the usual pattern in all the .probe functions
with a 'regulator_enable()' call have looked at (~ 10 of them taken
randomly)
---
drivers/iio/adc/twl4030-madc.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
index 32db23d9a483..e3cfb91bffc6 100644
--- a/drivers/iio/adc/twl4030-madc.c
+++ b/drivers/iio/adc/twl4030-madc.c
@@ -893,8 +893,10 @@ static int twl4030_madc_probe(struct platform_device *pdev)
}
ret = regulator_enable(madc->usb3v1);
- if (ret)
+ if (ret) {
dev_err(madc->dev, "could not enable 3v1 bias regulator\n");
+ goto err_i2c;
+ }
ret = iio_device_register(iio_dev);
if (ret) {
--
2.11.0
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'tw
2017-09-23 6:06 ` [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl403 Christophe JAILLET
@ 2017-09-24 12:05 ` Jonathan Cameron
0 siblings, 0 replies; 7+ messages in thread
From: Jonathan Cameron @ 2017-09-24 12:05 UTC (permalink / raw)
To: Christophe JAILLET
Cc: knaack.h, lars, pmeerw, sre, wsa, kishon, linux-iio,
linux-kernel, kernel-janitors
On Sat, 23 Sep 2017 08:06:20 +0200
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:
> If we can not enable the regulator, go through the error handling path
> instead of silently continuing.
>
> Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Applied to the fixes-togreg-post-rc1 branch of iio.git.
I haven't explicitly marked this one for stable as it isn't broken
as such, just inconsistent.
Thanks,
Jonathan
> ---
> This patch is highly speculative.
> I don't find logical to return an error if we don't find the 'vusb3v1'
> regulator, but continue if we find it, but can't enable it.
> Returning an error if both cases (i.e. failing 'devm_regulator_get()' or
> 'regulator_enable)' seems the usual pattern in all the .probe functions
> with a 'regulator_enable()' call have looked at (~ 10 of them taken
> randomly)
> ---
> drivers/iio/adc/twl4030-madc.c | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
> index 32db23d9a483..e3cfb91bffc6 100644
> --- a/drivers/iio/adc/twl4030-madc.c
> +++ b/drivers/iio/adc/twl4030-madc.c
> @@ -893,8 +893,10 @@ static int twl4030_madc_probe(struct platform_device *pdev)
> }
>
> ret = regulator_enable(madc->usb3v1);
> - if (ret)
> + if (ret) {
> dev_err(madc->dev, "could not enable 3v1 bias regulator\n");
> + goto err_i2c;
> + }
>
> ret = iio_device_register(iio_dev);
> if (ret) {
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 1/3] iio: adc: twl4030: Fix an error handling path in 'twl4030_madc_probe()'
2017-09-23 6:06 ` [PATCH 1/3] iio: adc: twl4030: Fix an error handling path " Christophe JAILLET
2017-09-23 6:06 ` [PATCH 2/3] iio: adc: twl4030: Disable the vusb3v1 rugulator in the error handling path of 'twl4030_ Christophe JAILLET
2017-09-23 6:06 ` [PATCH 3/3] iio: adc: twl4030: Return an error if we can not enable the vusb3v1 regulator in 'twl403 Christophe JAILLET
@ 2017-09-24 11:58 ` Jonathan Cameron
2 siblings, 0 replies; 7+ messages in thread
From: Jonathan Cameron @ 2017-09-24 11:58 UTC (permalink / raw)
To: Christophe JAILLET
Cc: knaack.h, lars, pmeerw, sre, wsa, kishon, linux-iio,
linux-kernel, kernel-janitors
On Sat, 23 Sep 2017 08:06:18 +0200
Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:
> If 'devm_regulator_get()' fails, we should go through the existing error
> handling path instead of returning directly, as done is all the other
> error handling paths in this function.
>
> Fixes: 7cc97d77ee8a ("iio: adc: twl4030: Fix ADC[3:6] readings")
> Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Applied to the fixes-togreg-post-rc1 branch of iio.git and marked
for stable.
Thanks,
Jonathan
> ---
> drivers/iio/adc/twl4030-madc.c | 6 ++++--
> 1 file changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/iio/adc/twl4030-madc.c b/drivers/iio/adc/twl4030-madc.c
> index 1edd99f0c5e5..80ab2ed70b85 100644
> --- a/drivers/iio/adc/twl4030-madc.c
> +++ b/drivers/iio/adc/twl4030-madc.c
> @@ -887,8 +887,10 @@ static int twl4030_madc_probe(struct platform_device *pdev)
>
> /* Enable 3v1 bias regulator for MADC[3:6] */
> madc->usb3v1 = devm_regulator_get(madc->dev, "vusb3v1");
> - if (IS_ERR(madc->usb3v1))
> - return -ENODEV;
> + if (IS_ERR(madc->usb3v1)) {
> + ret = -ENODEV;
> + goto err_i2c;
> + }
>
> ret = regulator_enable(madc->usb3v1);
> if (ret)
^ permalink raw reply [flat|nested] 7+ messages in thread