| From 81caf22b37ef762b3b9fa2f1f35eaec1f6ad4b51 Mon Sep 17 00:00:00 2001 |
| From: Marco Felsch <m.felsch@pengutronix.de> |
| Date: Tue, 17 Sep 2019 18:09:23 +0200 |
| Subject: [PATCH] iio: adc: ad799x: fix probe error handling |
| |
| commit c62dd44901cfff12acc5792bf3d2dec20bcaf392 upstream. |
| |
| Since commit 0f7ddcc1bff1 ("iio:adc:ad799x: Write default config on probe |
| and reset alert status on probe") the error path is wrong since it |
| leaves the vref regulator on. Fix this by disabling both regulators. |
| |
| Fixes: 0f7ddcc1bff1 ("iio:adc:ad799x: Write default config on probe and reset alert status on probe") |
| Signed-off-by: Marco Felsch <m.felsch@pengutronix.de> |
| Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com> |
| Cc: <Stable@vger.kernel.org> |
| Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> |
| Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com> |
| |
| diff --git a/drivers/iio/adc/ad799x.c b/drivers/iio/adc/ad799x.c |
| index 5a3ca5904ded..f658012baad8 100644 |
| --- a/drivers/iio/adc/ad799x.c |
| +++ b/drivers/iio/adc/ad799x.c |
| @@ -810,10 +810,10 @@ static int ad799x_probe(struct i2c_client *client, |
| |
| ret = ad799x_write_config(st, st->chip_config->default_config); |
| if (ret < 0) |
| - goto error_disable_reg; |
| + goto error_disable_vref; |
| ret = ad799x_read_config(st); |
| if (ret < 0) |
| - goto error_disable_reg; |
| + goto error_disable_vref; |
| st->config = ret; |
| |
| ret = iio_triggered_buffer_setup(indio_dev, NULL, |
| -- |
| 2.7.4 |
| |