mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH 0/3] media: i2c: propagate GPIO errors
@ 2026-10-07 10:49 phucduc.bui
  2026-10-07 10:49 ` [PATCH 1/3] media: i2c: ov2685: propagate reset " phucduc.bui
                   ` (2 more replies)
  0 siblings, 3 replies; 5+ messages in thread
From: phucduc.bui @ 2026-10-07 10:49 UTC (permalink / raw)
  To: Sakari Ailus, Shunqian Zheng, Mauro Carvalho Chehab,
	Walter Werner Schneider, Dave Stevenson, Jacopo Mondi,
	linux-media, linux-kernel
  Cc: Luca Weiss, Hans Verkuil, Roman Kovalivskyi, bui duc phuc

From: bui duc phuc <phucduc.bui@gmail.com>

Hi all,

Some drivers use devm_gpiod_get_optional(), but do not properly handle
errors returned by the GPIO lookup.

This series fixes the error handling in three drivers by propagating
the errors returned by devm_gpiod_get_optional().

Compile-tested only.

Best regards,
Phuc

bui duc phuc (3):
  media: i2c: ov2685: propagate reset GPIO errors
  media: i2c: ov2732: propagate GPIO errors
  media: i2c: ov5647: propagate pwdn GPIO errors

 drivers/media/i2c/ov2685.c | 7 +++----
 drivers/media/i2c/ov2732.c | 6 ++++++
 drivers/media/i2c/ov5647.c | 7 +++----
 3 files changed, 12 insertions(+), 8 deletions(-)

-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 1/3] media: i2c: ov2685: propagate reset GPIO errors
  2026-10-07 10:49 [PATCH 0/3] media: i2c: propagate GPIO errors phucduc.bui
@ 2026-10-07 10:49 ` phucduc.bui
  2026-10-07 10:49 ` [PATCH 2/3] media: i2c: ov2732: propagate " phucduc.bui
  2026-10-07 10:49 ` [PATCH 3/3] media: i2c: ov5647: propagate pwdn " phucduc.bui
  2 siblings, 0 replies; 5+ messages in thread
From: phucduc.bui @ 2026-10-07 10:49 UTC (permalink / raw)
  To: Sakari Ailus, Shunqian Zheng, Mauro Carvalho Chehab,
	Walter Werner Schneider, Dave Stevenson, Jacopo Mondi,
	linux-media, linux-kernel
  Cc: Luca Weiss, Hans Verkuil, Roman Kovalivskyi, bui duc phuc

From: bui duc phuc <phucduc.bui@gmail.com>

devm_gpiod_get_optional() may return -EPROBE_DEFER or other errors,
but ov2685_probe() currently converts them all to -EINVAL.

Use dev_err_probe() to propagate the original error from the reset GPIO
lookup.

Fixes: 0482fbb1c1cc ("media: i2c: ov2685: Make reset gpio optional")
Fixes: e3861d9118c8 ("media: ov2685: add support for OV2685 sensor")
Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
---
 drivers/media/i2c/ov2685.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/media/i2c/ov2685.c b/drivers/media/i2c/ov2685.c
index 4911a4eea126..92d0f90b3d37 100644
--- a/drivers/media/i2c/ov2685.c
+++ b/drivers/media/i2c/ov2685.c
@@ -793,10 +793,9 @@ static int ov2685_probe(struct i2c_client *client)
 		dev_warn(dev, "xvclk mismatched, modes are based on 24MHz\n");
 
 	ov2685->reset_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_OUT_LOW);
-	if (IS_ERR(ov2685->reset_gpio)) {
-		dev_err(dev, "Failed to get reset-gpios\n");
-		return -EINVAL;
-	}
+	if (IS_ERR(ov2685->reset_gpio))
+		return dev_err_probe(dev, PTR_ERR(ov2685->reset_gpio),
+				     "Failed to get reset-gpios\n");
 
 	ret = ov2685_configure_regulators(ov2685);
 	if (ret) {
-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 2/3] media: i2c: ov2732: propagate GPIO errors
  2026-10-07 10:49 [PATCH 0/3] media: i2c: propagate GPIO errors phucduc.bui
  2026-10-07 10:49 ` [PATCH 1/3] media: i2c: ov2685: propagate reset " phucduc.bui
@ 2026-10-07 10:49 ` phucduc.bui
  2026-10-07 10:49 ` [PATCH 3/3] media: i2c: ov5647: propagate pwdn " phucduc.bui
  2 siblings, 0 replies; 5+ messages in thread
From: phucduc.bui @ 2026-10-07 10:49 UTC (permalink / raw)
  To: Sakari Ailus, Shunqian Zheng, Mauro Carvalho Chehab,
	Walter Werner Schneider, Dave Stevenson, Jacopo Mondi,
	linux-media, linux-kernel
  Cc: Luca Weiss, Hans Verkuil, Roman Kovalivskyi, bui duc phuc

From: bui duc phuc <phucduc.bui@gmail.com>

devm_gpiod_get_optional() returns NULL when an optional GPIO is not
present, but may return -EPROBE_DEFER or other errors.

Check the return values and propagate errors from the powerdown and
reset GPIO lookups.

Fixes: 247b8b855876 ("media: i2c: Add ov2732 image sensor driver")
Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
---
 drivers/media/i2c/ov2732.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/drivers/media/i2c/ov2732.c b/drivers/media/i2c/ov2732.c
index 40035320fec6..b8009c392d4d 100644
--- a/drivers/media/i2c/ov2732.c
+++ b/drivers/media/i2c/ov2732.c
@@ -665,9 +665,15 @@ static int ov2732_probe(struct i2c_client *client)
 	ov2732->powerdown_gpio = devm_gpiod_get_optional(ov2732->dev,
 							 "powerdown",
 							 GPIOD_OUT_HIGH);
+	if (IS_ERR(ov2732->powerdown_gpio))
+		return dev_err_probe(ov2732->dev, PTR_ERR(ov2732->powerdown_gpio),
+				     "failed to get powerdown GPIO\n");
 
 	ov2732->reset_gpio = devm_gpiod_get_optional(ov2732->dev, "reset",
 						     GPIOD_OUT_HIGH);
+	if (IS_ERR(ov2732->reset_gpio))
+		return dev_err_probe(ov2732->dev, PTR_ERR(ov2732->reset_gpio),
+				     "failed to get reset GPIO\n");
 
 	ov2732->regmap = devm_cci_regmap_init_i2c(client, 16);
 	if (IS_ERR(ov2732->regmap))
-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH 3/3] media: i2c: ov5647: propagate pwdn GPIO errors
  2026-10-07 10:49 [PATCH 0/3] media: i2c: propagate GPIO errors phucduc.bui
  2026-10-07 10:49 ` [PATCH 1/3] media: i2c: ov2685: propagate reset " phucduc.bui
  2026-10-07 10:49 ` [PATCH 2/3] media: i2c: ov2732: propagate " phucduc.bui
@ 2026-10-07 10:49 ` phucduc.bui
  2026-10-07 11:07   ` Dave Stevenson
  2 siblings, 1 reply; 5+ messages in thread
From: phucduc.bui @ 2026-10-07 10:49 UTC (permalink / raw)
  To: Sakari Ailus, Shunqian Zheng, Mauro Carvalho Chehab,
	Walter Werner Schneider, Dave Stevenson, Jacopo Mondi,
	linux-media, linux-kernel
  Cc: Luca Weiss, Hans Verkuil, Roman Kovalivskyi, bui duc phuc

From: bui duc phuc <phucduc.bui@gmail.com>

devm_gpiod_get_optional() may return -EPROBE_DEFER or other errors,
but ov5647_probe() currently converts them to -EINVAL.

Use dev_err_probe() to propagate the original error from the pwdn GPIO
lookup.

Fixes: b050791d287a ("media: ov5647: Add support for PWDN GPIO.")
Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>
---
 drivers/media/i2c/ov5647.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c
index 3facf92b3841..b3049761a5fb 100644
--- a/drivers/media/i2c/ov5647.c
+++ b/drivers/media/i2c/ov5647.c
@@ -1186,10 +1186,9 @@ static int ov5647_probe(struct i2c_client *client)
 
 	/* Request the power down GPIO asserted. */
 	sensor->pwdn = devm_gpiod_get_optional(dev, "pwdn", GPIOD_OUT_HIGH);
-	if (IS_ERR(sensor->pwdn)) {
-		dev_err(dev, "Failed to get 'pwdn' gpio\n");
-		return -EINVAL;
-	}
+	if (IS_ERR(sensor->pwdn))
+		return dev_err_probe(dev, PTR_ERR(sensor->pwdn),
+				     "Failed to get 'pwdn' gpio\n");
 
 	ret = ov5647_configure_regulators(dev, sensor);
 	if (ret)
-- 
2.43.0


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH 3/3] media: i2c: ov5647: propagate pwdn GPIO errors
  2026-10-07 10:49 ` [PATCH 3/3] media: i2c: ov5647: propagate pwdn " phucduc.bui
@ 2026-10-07 11:07   ` Dave Stevenson
  0 siblings, 0 replies; 5+ messages in thread
From: Dave Stevenson @ 2026-10-07 11:07 UTC (permalink / raw)
  To: phucduc.bui
  Cc: Sakari Ailus, Shunqian Zheng, Mauro Carvalho Chehab,
	Walter Werner Schneider, Jacopo Mondi, linux-media, linux-kernel,
	Luca Weiss, Hans Verkuil, Roman Kovalivskyi

On Wed, 7 Oct 2026 at 11:50, <phucduc.bui@gmail.com> wrote:
>
> From: bui duc phuc <phucduc.bui@gmail.com>
>
> devm_gpiod_get_optional() may return -EPROBE_DEFER or other errors,
> but ov5647_probe() currently converts them to -EINVAL.
>
> Use dev_err_probe() to propagate the original error from the pwdn GPIO
> lookup.
>
> Fixes: b050791d287a ("media: ov5647: Add support for PWDN GPIO.")
> Signed-off-by: bui duc phuc <phucduc.bui@gmail.com>

Thanks for the patch.

Reviewed-by: Dave Stevenson <dave.stevenson@raspberrypi.com>

> ---
>  drivers/media/i2c/ov5647.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/media/i2c/ov5647.c b/drivers/media/i2c/ov5647.c
> index 3facf92b3841..b3049761a5fb 100644
> --- a/drivers/media/i2c/ov5647.c
> +++ b/drivers/media/i2c/ov5647.c
> @@ -1186,10 +1186,9 @@ static int ov5647_probe(struct i2c_client *client)
>
>         /* Request the power down GPIO asserted. */
>         sensor->pwdn = devm_gpiod_get_optional(dev, "pwdn", GPIOD_OUT_HIGH);
> -       if (IS_ERR(sensor->pwdn)) {
> -               dev_err(dev, "Failed to get 'pwdn' gpio\n");
> -               return -EINVAL;
> -       }
> +       if (IS_ERR(sensor->pwdn))
> +               return dev_err_probe(dev, PTR_ERR(sensor->pwdn),
> +                                    "Failed to get 'pwdn' gpio\n");
>
>         ret = ov5647_configure_regulators(dev, sensor);
>         if (ret)
> --
> 2.43.0
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2026-10-07 11:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-10-07 10:49 [PATCH 0/3] media: i2c: propagate GPIO errors phucduc.bui
2026-10-07 10:49 ` [PATCH 1/3] media: i2c: ov2685: propagate reset " phucduc.bui
2026-10-07 10:49 ` [PATCH 2/3] media: i2c: ov2732: propagate " phucduc.bui
2026-10-07 10:49 ` [PATCH 3/3] media: i2c: ov5647: propagate pwdn " phucduc.bui
2026-10-07 11:07   ` Dave Stevenson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®