[PATCH v3 1/2] iio: gyro: mpu3050: fail probe() on trigger registration failure
From: Joshua Crofts
Date: Sat Oct 17 2026 - 01:20:08 EST
The current implementation lets mpu3050_common_probe() continue on trigger
registration failure, causing the device to operate in an odd polling mode
and making resource management harder.
Jump to the error handling logic if the trigger failed to register.
Suggested-by: Nuno Sá <nuno.sa@xxxxxxxxxx>
Fixes: 3904b28efb2c ("iio: gyro: Add driver for the MPU-3050 gyroscope")
Cc: <stable@xxxxxxxxxxxxxxx>
Signed-off-by: Joshua Crofts <joshua.crofts1@xxxxxxxxx>
---
drivers/iio/gyro/mpu3050-core.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/drivers/iio/gyro/mpu3050-core.c b/drivers/iio/gyro/mpu3050-core.c
index 07c0f9011c63..879caf3b729c 100644
--- a/drivers/iio/gyro/mpu3050-core.c
+++ b/drivers/iio/gyro/mpu3050-core.c
@@ -1231,8 +1231,10 @@ int mpu3050_common_probe(struct device *dev,
/* Check if we have an assigned IRQ to use as trigger */
if (irq) {
ret = mpu3050_trigger_probe(indio_dev, irq);
- if (ret)
+ if (ret) {
dev_err(dev, "failed to register trigger\n");
+ goto err_cleanup_buffer;
+ }
}
/* Enable runtime PM */
@@ -1262,6 +1264,7 @@ int mpu3050_common_probe(struct device *dev,
pm_runtime_disable(dev);
if (irq)
free_irq(mpu3050->irq, mpu3050->trig);
+err_cleanup_buffer:
iio_triggered_buffer_cleanup(indio_dev);
err_power_down:
mpu3050_power_down(mpu3050);
--
2.56.0