* [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®