drivers/iio/pressure/bmp280-core.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-)
`devm_gpiod_get_optional()` may return non-NULL error pointer on failure.
Check its return value using `IS_ERR()` and propagate the error if
necessary.
`dev_info()` has been dropped as it was considered noisy.
Also switch to `gpiod_set_value_cansleep()`, which is safe to use in
sleepable contexts like probe.
Signed-off-by: Salah Triki <salah.triki@gmail.com>
---
Changes in v2:
- Use IS_ERR() instead of IS_ERR_OR_NULL()
- Drop dev_info()
- Use gpiod_set_value_cansleep()
- Improve commit title and message
drivers/iio/pressure/bmp280-core.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c
index 74505c9ec1a0..be6c981a4cc7 100644
--- a/drivers/iio/pressure/bmp280-core.c
+++ b/drivers/iio/pressure/bmp280-core.c
@@ -3213,11 +3213,11 @@ int bmp280_common_probe(struct device *dev,
/* Bring chip out of reset if there is an assigned GPIO line */
gpiod = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH);
+ if (IS_ERR(gpiod))
+ return dev_err_probe(dev, PTR_ERR(gpiod), "failed to get GPIO\n");
+
/* Deassert the signal */
- if (gpiod) {
- dev_info(dev, "release reset\n");
- gpiod_set_value(gpiod, 0);
- }
+ gpiod_set_value_cansleep(gpiod, 0);
data->regmap = regmap;
--
2.43.0
> `devm_gpiod_get_optional()` may return non-NULL error pointer on failure. > Check its return value using `IS_ERR()` and propagate the error if > necessary. How do you think about to add any tags (like “Fixes” and “Cc”) accordingly? https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.16#n145 > Also switch to `gpiod_set_value_cansleep()`, which is safe to use in > sleepable contexts like probe. Would it be helpful to provide desirable changes by separate update steps? https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/process/submitting-patches.rst?h=v6.16#n81 Regards, Markus
On Thu, Aug 7, 2025 at 4:25 AM Salah Triki <salah.triki@gmail.com> wrote: > > `devm_gpiod_get_optional()` may return non-NULL error pointer on failure. > Check its return value using `IS_ERR()` and propagate the error if > necessary. > `dev_info()` has been dropped as it was considered noisy. > Also switch to `gpiod_set_value_cansleep()`, which is safe to use in > sleepable contexts like probe. 'Also' automatically means: Please split to a separate patch. You may drop dev_info() in the patch which converts to _cansleep, though. Ordering of the patch should be based on the least noise and churn between them. -- With Best Regards, Andy Shevchenko
On 8/6/25 9:25 PM, Salah Triki wrote: > `devm_gpiod_get_optional()` may return non-NULL error pointer on failure. > Check its return value using `IS_ERR()` and propagate the error if > necessary. > > `dev_info()` has been dropped as it was considered noisy. > > Also switch to `gpiod_set_value_cansleep()`, which is safe to use in > sleepable contexts like probe. > > Signed-off-by: Salah Triki <salah.triki@gmail.com> > --- > Changes in v2: > - Use IS_ERR() instead of IS_ERR_OR_NULL() > - Drop dev_info() > - Use gpiod_set_value_cansleep() > - Improve commit title and message > > drivers/iio/pressure/bmp280-core.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/drivers/iio/pressure/bmp280-core.c b/drivers/iio/pressure/bmp280-core.c > index 74505c9ec1a0..be6c981a4cc7 100644 > --- a/drivers/iio/pressure/bmp280-core.c > +++ b/drivers/iio/pressure/bmp280-core.c > @@ -3213,11 +3213,11 @@ int bmp280_common_probe(struct device *dev, > > /* Bring chip out of reset if there is an assigned GPIO line */ > gpiod = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_HIGH); > + if (IS_ERR(gpiod)) > + return dev_err_probe(dev, PTR_ERR(gpiod), "failed to get GPIO\n"); Could be slightly better if the error message said "reset GPIO". > + > /* Deassert the signal */ > - if (gpiod) { > - dev_info(dev, "release reset\n"); > - gpiod_set_value(gpiod, 0); > - } > + gpiod_set_value_cansleep(gpiod, 0); > > data->regmap = regmap; > In any case... Reviewed-by: David Lechner <dlechner@baylibre.com>
© 2016 - 2025 Red Hat, Inc.