public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup
@ 2026-04-29 17:59 Sanjay Chitroda
  2026-04-29 17:59 ` [PATCH v2 1/4] iio: hid-sensors: drop redundant iio_dev argument Sanjay Chitroda
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Sanjay Chitroda @ 2026-04-29 17:59 UTC (permalink / raw)
  To: jikos, jic23, srinivas.pandruvada
  Cc: dlechner, nuno.sa, andy, sanjayembeddedse, sakari.ailus,
	linux-input, linux-iio, linux-kernel

From: Sanjay Chitroda <sanjayembeddedse@gmail.com>

Key highlights:
- Prepare change as pre-requisite for devm conversion for HID IIO
  drivers by removing redundant argument
- Add devm API to setup trigger and clenaup resource using
  devm_add_action_or_reset()
- few sample driver update using devm conversion to auto release resource

changes in v2:
- Following input from Jonathan and Andy, squash initial patch v1
  series in single change as individual change should not break anything
- Add devm API support and two driver using the same
- v1 series -> https://lore.kernel.org/all/20260428071613.1134053-1-sanjayembedded@gmail.com/

Testing:
  - Compiled with W=1
  - Build-tested on QEMU x86_64

Based on further feedback and reviews, I would extend this series to convert all HID IIO driver to use devm_* API.

Thanks,
Sanjay Chitroda

Sanjay Chitroda (4):
  iio: hid-sensors: drop redundant iio_dev argument
  iio: hid-sensors: introduce device managed API
  iio: gyro: drop hid_sensor_remove_trigger() using devm API
  iio: humidity: drop hid_sensor_remove_trigger() using devm API

 drivers/iio/accel/hid-sensor-accel-3d.c       |  4 +--
 .../common/hid-sensors/hid-sensor-trigger.c   | 27 +++++++++++++++++--
 .../common/hid-sensors/hid-sensor-trigger.h   |  5 ++--
 drivers/iio/gyro/hid-sensor-gyro-3d.c         | 10 +++----
 drivers/iio/humidity/hid-sensor-humidity.c    | 10 +++----
 drivers/iio/light/hid-sensor-als.c            |  4 +--
 drivers/iio/light/hid-sensor-prox.c           |  4 +--
 drivers/iio/magnetometer/hid-sensor-magn-3d.c |  4 +--
 drivers/iio/orientation/hid-sensor-incl-3d.c  |  4 +--
 drivers/iio/orientation/hid-sensor-rotation.c |  4 +--
 .../position/hid-sensor-custom-intel-hinge.c  |  4 +--
 drivers/iio/pressure/hid-sensor-press.c       |  4 +--
 .../iio/temperature/hid-sensor-temperature.c  |  4 +--
 13 files changed, 52 insertions(+), 36 deletions(-)


base-commit: eade2b843d9b1f668fc1775f15611bb0a1999cd9
-- 
2.34.1


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

* [PATCH v2 1/4] iio: hid-sensors: drop redundant iio_dev argument
  2026-04-29 17:59 [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup Sanjay Chitroda
@ 2026-04-29 17:59 ` Sanjay Chitroda
  2026-04-29 17:59 ` [PATCH v2 2/4] iio: hid-sensors: introduce device managed API Sanjay Chitroda
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Sanjay Chitroda @ 2026-04-29 17:59 UTC (permalink / raw)
  To: jikos, jic23, srinivas.pandruvada
  Cc: dlechner, nuno.sa, andy, sanjayembeddedse, sakari.ailus,
	linux-input, linux-iio, linux-kernel

From: Sanjay Chitroda <sanjayembeddedse@gmail.com>

hid_sensor_remove_trigger() uses struct hid_sensor_common to release
resources acquired during trigger setup.

Earlier implementations required struct iio_dev to clean up buffers,
but with the current code this argument is no longer used and is
redundant.

Adapt to hid_sensor_remove_trigger() API change across all HID IIO
drivers to match updated prototype.

Removing it simplifies the API and is a preparatory step toward
converting the trigger handling to a devm-based API.

Signed-off-by: Sanjay Chitroda <sanjayembeddedse@gmail.com>
---
 drivers/iio/accel/hid-sensor-accel-3d.c              | 4 ++--
 drivers/iio/common/hid-sensors/hid-sensor-trigger.c  | 3 +--
 drivers/iio/common/hid-sensors/hid-sensor-trigger.h  | 3 +--
 drivers/iio/gyro/hid-sensor-gyro-3d.c                | 4 ++--
 drivers/iio/humidity/hid-sensor-humidity.c           | 4 ++--
 drivers/iio/light/hid-sensor-als.c                   | 4 ++--
 drivers/iio/light/hid-sensor-prox.c                  | 4 ++--
 drivers/iio/magnetometer/hid-sensor-magn-3d.c        | 4 ++--
 drivers/iio/orientation/hid-sensor-incl-3d.c         | 4 ++--
 drivers/iio/orientation/hid-sensor-rotation.c        | 4 ++--
 drivers/iio/position/hid-sensor-custom-intel-hinge.c | 4 ++--
 drivers/iio/pressure/hid-sensor-press.c              | 4 ++--
 drivers/iio/temperature/hid-sensor-temperature.c     | 4 ++--
 13 files changed, 24 insertions(+), 26 deletions(-)

diff --git a/drivers/iio/accel/hid-sensor-accel-3d.c b/drivers/iio/accel/hid-sensor-accel-3d.c
index 2ff591b3458f..a63dae90dadc 100644
--- a/drivers/iio/accel/hid-sensor-accel-3d.c
+++ b/drivers/iio/accel/hid-sensor-accel-3d.c
@@ -416,7 +416,7 @@ static int hid_accel_3d_probe(struct platform_device *pdev)
 error_iio_unreg:
 	iio_device_unregister(indio_dev);
 error_remove_trigger:
-	hid_sensor_remove_trigger(indio_dev, &accel_state->common_attributes);
+	hid_sensor_remove_trigger(&accel_state->common_attributes);
 	return ret;
 }
 
@@ -429,7 +429,7 @@ static void hid_accel_3d_remove(struct platform_device *pdev)
 
 	sensor_hub_remove_callback(hsdev, hsdev->usage);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(indio_dev, &accel_state->common_attributes);
+	hid_sensor_remove_trigger(&accel_state->common_attributes);
 }
 
 static const struct platform_device_id hid_accel_3d_ids[] = {
diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
index 417c4ab8c1b2..28d050b45c74 100644
--- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
+++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
@@ -218,8 +218,7 @@ static const struct iio_buffer_setup_ops hid_sensor_buffer_ops = {
 	.predisable = buffer_predisable,
 };
 
-void hid_sensor_remove_trigger(struct iio_dev *indio_dev,
-			       struct hid_sensor_common *attrb)
+void hid_sensor_remove_trigger(struct hid_sensor_common *attrb)
 {
 	if (atomic_read(&attrb->runtime_pm_enable))
 		pm_runtime_disable(&attrb->pdev->dev);
diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.h b/drivers/iio/common/hid-sensors/hid-sensor-trigger.h
index f94fca4f1edf..afec46ecbe71 100644
--- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.h
+++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.h
@@ -16,8 +16,7 @@ extern const struct dev_pm_ops hid_sensor_pm_ops;
 
 int hid_sensor_setup_trigger(struct iio_dev *indio_dev, const char *name,
 				struct hid_sensor_common *attrb);
-void hid_sensor_remove_trigger(struct iio_dev *indio_dev,
-			       struct hid_sensor_common *attrb);
+void hid_sensor_remove_trigger(struct hid_sensor_common *attrb);
 int hid_sensor_power_state(struct hid_sensor_common *st, bool state);
 
 #endif
diff --git a/drivers/iio/gyro/hid-sensor-gyro-3d.c b/drivers/iio/gyro/hid-sensor-gyro-3d.c
index c340cc899a7c..fe663b19e902 100644
--- a/drivers/iio/gyro/hid-sensor-gyro-3d.c
+++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c
@@ -354,7 +354,7 @@ static int hid_gyro_3d_probe(struct platform_device *pdev)
 error_iio_unreg:
 	iio_device_unregister(indio_dev);
 error_remove_trigger:
-	hid_sensor_remove_trigger(indio_dev, &gyro_state->common_attributes);
+	hid_sensor_remove_trigger(&gyro_state->common_attributes);
 	return ret;
 }
 
@@ -367,7 +367,7 @@ static void hid_gyro_3d_remove(struct platform_device *pdev)
 
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_GYRO_3D);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(indio_dev, &gyro_state->common_attributes);
+	hid_sensor_remove_trigger(&gyro_state->common_attributes);
 }
 
 static const struct platform_device_id hid_gyro_3d_ids[] = {
diff --git a/drivers/iio/humidity/hid-sensor-humidity.c b/drivers/iio/humidity/hid-sensor-humidity.c
index be2338d5f407..e580a2af9562 100644
--- a/drivers/iio/humidity/hid-sensor-humidity.c
+++ b/drivers/iio/humidity/hid-sensor-humidity.c
@@ -255,7 +255,7 @@ static int hid_humidity_probe(struct platform_device *pdev)
 error_remove_callback:
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_HUMIDITY);
 error_remove_trigger:
-	hid_sensor_remove_trigger(indio_dev, &humid_st->common_attributes);
+	hid_sensor_remove_trigger(&humid_st->common_attributes);
 	return ret;
 }
 
@@ -268,7 +268,7 @@ static void hid_humidity_remove(struct platform_device *pdev)
 
 	iio_device_unregister(indio_dev);
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_HUMIDITY);
-	hid_sensor_remove_trigger(indio_dev, &humid_st->common_attributes);
+	hid_sensor_remove_trigger(&humid_st->common_attributes);
 }
 
 static const struct platform_device_id hid_humidity_ids[] = {
diff --git a/drivers/iio/light/hid-sensor-als.c b/drivers/iio/light/hid-sensor-als.c
index 384572844162..9b57cdced18a 100644
--- a/drivers/iio/light/hid-sensor-als.c
+++ b/drivers/iio/light/hid-sensor-als.c
@@ -432,7 +432,7 @@ static int hid_als_probe(struct platform_device *pdev)
 error_iio_unreg:
 	iio_device_unregister(indio_dev);
 error_remove_trigger:
-	hid_sensor_remove_trigger(indio_dev, &als_state->common_attributes);
+	hid_sensor_remove_trigger(&als_state->common_attributes);
 	return ret;
 }
 
@@ -445,7 +445,7 @@ static void hid_als_remove(struct platform_device *pdev)
 
 	sensor_hub_remove_callback(hsdev, hsdev->usage);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(indio_dev, &als_state->common_attributes);
+	hid_sensor_remove_trigger(&als_state->common_attributes);
 }
 
 static const struct platform_device_id hid_als_ids[] = {
diff --git a/drivers/iio/light/hid-sensor-prox.c b/drivers/iio/light/hid-sensor-prox.c
index efa904a70d0e..473c45626487 100644
--- a/drivers/iio/light/hid-sensor-prox.c
+++ b/drivers/iio/light/hid-sensor-prox.c
@@ -340,7 +340,7 @@ static int hid_prox_probe(struct platform_device *pdev)
 error_iio_unreg:
 	iio_device_unregister(indio_dev);
 error_remove_trigger:
-	hid_sensor_remove_trigger(indio_dev, &prox_state->common_attributes);
+	hid_sensor_remove_trigger(&prox_state->common_attributes);
 	return ret;
 }
 
@@ -353,7 +353,7 @@ static void hid_prox_remove(struct platform_device *pdev)
 
 	sensor_hub_remove_callback(hsdev, hsdev->usage);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(indio_dev, &prox_state->common_attributes);
+	hid_sensor_remove_trigger(&prox_state->common_attributes);
 }
 
 static const struct platform_device_id hid_prox_ids[] = {
diff --git a/drivers/iio/magnetometer/hid-sensor-magn-3d.c b/drivers/iio/magnetometer/hid-sensor-magn-3d.c
index b01dd53eb100..8be3dfe4dd58 100644
--- a/drivers/iio/magnetometer/hid-sensor-magn-3d.c
+++ b/drivers/iio/magnetometer/hid-sensor-magn-3d.c
@@ -542,7 +542,7 @@ static int hid_magn_3d_probe(struct platform_device *pdev)
 error_iio_unreg:
 	iio_device_unregister(indio_dev);
 error_remove_trigger:
-	hid_sensor_remove_trigger(indio_dev, &magn_state->magn_flux_attributes);
+	hid_sensor_remove_trigger(&magn_state->magn_flux_attributes);
 	return ret;
 }
 
@@ -555,7 +555,7 @@ static void hid_magn_3d_remove(struct platform_device *pdev)
 
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_COMPASS_3D);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(indio_dev, &magn_state->magn_flux_attributes);
+	hid_sensor_remove_trigger(&magn_state->magn_flux_attributes);
 }
 
 static const struct platform_device_id hid_magn_3d_ids[] = {
diff --git a/drivers/iio/orientation/hid-sensor-incl-3d.c b/drivers/iio/orientation/hid-sensor-incl-3d.c
index 4e23a598a3fb..56fd9c53dfc2 100644
--- a/drivers/iio/orientation/hid-sensor-incl-3d.c
+++ b/drivers/iio/orientation/hid-sensor-incl-3d.c
@@ -378,7 +378,7 @@ static int hid_incl_3d_probe(struct platform_device *pdev)
 error_iio_unreg:
 	iio_device_unregister(indio_dev);
 error_remove_trigger:
-	hid_sensor_remove_trigger(indio_dev, &incl_state->common_attributes);
+	hid_sensor_remove_trigger(&incl_state->common_attributes);
 	return ret;
 }
 
@@ -391,7 +391,7 @@ static void hid_incl_3d_remove(struct platform_device *pdev)
 
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_INCLINOMETER_3D);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(indio_dev, &incl_state->common_attributes);
+	hid_sensor_remove_trigger(&incl_state->common_attributes);
 }
 
 static const struct platform_device_id hid_incl_3d_ids[] = {
diff --git a/drivers/iio/orientation/hid-sensor-rotation.c b/drivers/iio/orientation/hid-sensor-rotation.c
index 4a11e4555099..56fdb3412fe3 100644
--- a/drivers/iio/orientation/hid-sensor-rotation.c
+++ b/drivers/iio/orientation/hid-sensor-rotation.c
@@ -353,7 +353,7 @@ static int hid_dev_rot_probe(struct platform_device *pdev)
 error_iio_unreg:
 	iio_device_unregister(indio_dev);
 error_remove_trigger:
-	hid_sensor_remove_trigger(indio_dev, &rot_state->common_attributes);
+	hid_sensor_remove_trigger(&rot_state->common_attributes);
 	return ret;
 }
 
@@ -366,7 +366,7 @@ static void hid_dev_rot_remove(struct platform_device *pdev)
 
 	sensor_hub_remove_callback(hsdev, hsdev->usage);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(indio_dev, &rot_state->common_attributes);
+	hid_sensor_remove_trigger(&rot_state->common_attributes);
 }
 
 static const struct platform_device_id hid_dev_rot_ids[] = {
diff --git a/drivers/iio/position/hid-sensor-custom-intel-hinge.c b/drivers/iio/position/hid-sensor-custom-intel-hinge.c
index a26d391661fd..5288b63f4e21 100644
--- a/drivers/iio/position/hid-sensor-custom-intel-hinge.c
+++ b/drivers/iio/position/hid-sensor-custom-intel-hinge.c
@@ -337,7 +337,7 @@ static int hid_hinge_probe(struct platform_device *pdev)
 error_remove_callback:
 	sensor_hub_remove_callback(hsdev, hsdev->usage);
 error_remove_trigger:
-	hid_sensor_remove_trigger(indio_dev, &st->common_attributes);
+	hid_sensor_remove_trigger(&st->common_attributes);
 	return ret;
 }
 
@@ -350,7 +350,7 @@ static void hid_hinge_remove(struct platform_device *pdev)
 
 	iio_device_unregister(indio_dev);
 	sensor_hub_remove_callback(hsdev, hsdev->usage);
-	hid_sensor_remove_trigger(indio_dev, &st->common_attributes);
+	hid_sensor_remove_trigger(&st->common_attributes);
 }
 
 static const struct platform_device_id hid_hinge_ids[] = {
diff --git a/drivers/iio/pressure/hid-sensor-press.c b/drivers/iio/pressure/hid-sensor-press.c
index 5f1d6abda3e4..2bf5d055e175 100644
--- a/drivers/iio/pressure/hid-sensor-press.c
+++ b/drivers/iio/pressure/hid-sensor-press.c
@@ -319,7 +319,7 @@ static int hid_press_probe(struct platform_device *pdev)
 error_iio_unreg:
 	iio_device_unregister(indio_dev);
 error_remove_trigger:
-	hid_sensor_remove_trigger(indio_dev, &press_state->common_attributes);
+	hid_sensor_remove_trigger(&press_state->common_attributes);
 	return ret;
 }
 
@@ -332,7 +332,7 @@ static void hid_press_remove(struct platform_device *pdev)
 
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_PRESSURE);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(indio_dev, &press_state->common_attributes);
+	hid_sensor_remove_trigger(&press_state->common_attributes);
 }
 
 static const struct platform_device_id hid_press_ids[] = {
diff --git a/drivers/iio/temperature/hid-sensor-temperature.c b/drivers/iio/temperature/hid-sensor-temperature.c
index 9f628a8e5cfb..60d4fcc8043b 100644
--- a/drivers/iio/temperature/hid-sensor-temperature.c
+++ b/drivers/iio/temperature/hid-sensor-temperature.c
@@ -253,7 +253,7 @@ static int hid_temperature_probe(struct platform_device *pdev)
 error_remove_callback:
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TEMPERATURE);
 error_remove_trigger:
-	hid_sensor_remove_trigger(indio_dev, &temp_st->common_attributes);
+	hid_sensor_remove_trigger(&temp_st->common_attributes);
 	return ret;
 }
 
@@ -265,7 +265,7 @@ static void hid_temperature_remove(struct platform_device *pdev)
 	struct temperature_state *temp_st = iio_priv(indio_dev);
 
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TEMPERATURE);
-	hid_sensor_remove_trigger(indio_dev, &temp_st->common_attributes);
+	hid_sensor_remove_trigger(&temp_st->common_attributes);
 }
 
 static const struct platform_device_id hid_temperature_ids[] = {
-- 
2.34.1


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

* [PATCH v2 2/4] iio: hid-sensors: introduce device managed API
  2026-04-29 17:59 [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup Sanjay Chitroda
  2026-04-29 17:59 ` [PATCH v2 1/4] iio: hid-sensors: drop redundant iio_dev argument Sanjay Chitroda
@ 2026-04-29 17:59 ` Sanjay Chitroda
  2026-04-29 19:31   ` Andy Shevchenko
  2026-04-29 17:59 ` [PATCH v2 3/4] iio: gyro: drop hid_sensor_remove_trigger() using devm API Sanjay Chitroda
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Sanjay Chitroda @ 2026-04-29 17:59 UTC (permalink / raw)
  To: jikos, jic23, srinivas.pandruvada
  Cc: dlechner, nuno.sa, andy, sanjayembeddedse, sakari.ailus,
	linux-input, linux-iio, linux-kernel

From: Sanjay Chitroda <sanjayembeddedse@gmail.com>

hid_sensor_setup_trigger() is common API used for the HID IIO drivers,
prepare devm API devm_hid_sensor_setup_trigger() to acquire resource
during setup and release using device managed framework during drivers
fail, unbind or remove path.

Register action with devm_add_action_or_reset() to release resource with
devres framework.

Signed-off-by: Sanjay Chitroda <sanjayembeddedse@gmail.com>
---
 .../common/hid-sensors/hid-sensor-trigger.c   | 24 +++++++++++++++++++
 .../common/hid-sensors/hid-sensor-trigger.h   |  2 ++
 2 files changed, 26 insertions(+)

diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
index 28d050b45c74..6692f403c8ec 100644
--- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
+++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
@@ -301,6 +301,30 @@ int hid_sensor_setup_trigger(struct iio_dev *indio_dev, const char *name,
 }
 EXPORT_SYMBOL_NS(hid_sensor_setup_trigger, "IIO_HID");
 
+static void hid_sensor_remove_trigger_action(void *ptr)
+{
+	struct hid_sensor_common *attrb = ptr;
+
+	hid_sensor_remove_trigger(attrb);
+}
+
+int devm_hid_sensor_setup_trigger(struct device *dev, struct iio_dev *indio_dev,
+				  const char *name, struct hid_sensor_common *attrb)
+{
+	int ret;
+
+	ret = hid_sensor_setup_trigger(indio_dev, name, attrb);
+	if (ret)
+		return ret;
+
+	ret = devm_add_action_or_reset(dev, hid_sensor_remove_trigger_action, attrb);
+	if (ret)
+		return ret;
+
+	return 0;
+}
+EXPORT_SYMBOL_NS(devm_hid_sensor_setup_trigger, "IIO_HID");
+
 static int __maybe_unused hid_sensor_suspend(struct device *dev)
 {
 	struct iio_dev *indio_dev = dev_get_drvdata(dev);
diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.h b/drivers/iio/common/hid-sensors/hid-sensor-trigger.h
index afec46ecbe71..6fd7c39a240d 100644
--- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.h
+++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.h
@@ -17,6 +17,8 @@ extern const struct dev_pm_ops hid_sensor_pm_ops;
 int hid_sensor_setup_trigger(struct iio_dev *indio_dev, const char *name,
 				struct hid_sensor_common *attrb);
 void hid_sensor_remove_trigger(struct hid_sensor_common *attrb);
+int devm_hid_sensor_setup_trigger(struct device *dev, struct iio_dev *indio_dev,
+				  const char *name, struct hid_sensor_common *attrb);
 int hid_sensor_power_state(struct hid_sensor_common *st, bool state);
 
 #endif
-- 
2.34.1


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

* [PATCH v2 3/4] iio: gyro: drop hid_sensor_remove_trigger() using devm API
  2026-04-29 17:59 [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup Sanjay Chitroda
  2026-04-29 17:59 ` [PATCH v2 1/4] iio: hid-sensors: drop redundant iio_dev argument Sanjay Chitroda
  2026-04-29 17:59 ` [PATCH v2 2/4] iio: hid-sensors: introduce device managed API Sanjay Chitroda
@ 2026-04-29 17:59 ` Sanjay Chitroda
  2026-04-29 17:59 ` [PATCH v2 4/4] iio: humidity: " Sanjay Chitroda
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 13+ messages in thread
From: Sanjay Chitroda @ 2026-04-29 17:59 UTC (permalink / raw)
  To: jikos, jic23, srinivas.pandruvada
  Cc: dlechner, nuno.sa, andy, sanjayembeddedse, sakari.ailus,
	linux-input, linux-iio, linux-kernel

From: Sanjay Chitroda <sanjayembeddedse@gmail.com>

Use devm_hid_sensor_setup_trigger() to automatically release resource
during fail, unbind or removal of driver using devres framework.

This simplify the setup, remove goto, avoid manual resource cleanup in
teardown path.

Signed-off-by: Sanjay Chitroda <sanjayembeddedse@gmail.com>
---
 drivers/iio/gyro/hid-sensor-gyro-3d.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/iio/gyro/hid-sensor-gyro-3d.c b/drivers/iio/gyro/hid-sensor-gyro-3d.c
index fe663b19e902..86c281f2a367 100644
--- a/drivers/iio/gyro/hid-sensor-gyro-3d.c
+++ b/drivers/iio/gyro/hid-sensor-gyro-3d.c
@@ -326,8 +326,8 @@ static int hid_gyro_3d_probe(struct platform_device *pdev)
 
 	atomic_set(&gyro_state->common_attributes.data_ready, 0);
 
-	ret = hid_sensor_setup_trigger(indio_dev, name,
-					&gyro_state->common_attributes);
+	ret = devm_hid_sensor_setup_trigger(&pdev->dev, indio_dev, name,
+					    &gyro_state->common_attributes);
 	if (ret < 0) {
 		dev_err(&pdev->dev, "trigger setup failed\n");
 		return ret;
@@ -336,7 +336,7 @@ static int hid_gyro_3d_probe(struct platform_device *pdev)
 	ret = iio_device_register(indio_dev);
 	if (ret) {
 		dev_err(&pdev->dev, "device register failed\n");
-		goto error_remove_trigger;
+		return ret;
 	}
 
 	gyro_state->callbacks.send_event = gyro_3d_proc_event;
@@ -353,8 +353,6 @@ static int hid_gyro_3d_probe(struct platform_device *pdev)
 
 error_iio_unreg:
 	iio_device_unregister(indio_dev);
-error_remove_trigger:
-	hid_sensor_remove_trigger(&gyro_state->common_attributes);
 	return ret;
 }
 
@@ -363,11 +361,9 @@ static void hid_gyro_3d_remove(struct platform_device *pdev)
 {
 	struct hid_sensor_hub_device *hsdev = dev_get_platdata(&pdev->dev);
 	struct iio_dev *indio_dev = platform_get_drvdata(pdev);
-	struct gyro_3d_state *gyro_state = iio_priv(indio_dev);
 
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_GYRO_3D);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(&gyro_state->common_attributes);
 }
 
 static const struct platform_device_id hid_gyro_3d_ids[] = {
-- 
2.34.1


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

* [PATCH v2 4/4] iio: humidity: drop hid_sensor_remove_trigger() using devm API
  2026-04-29 17:59 [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup Sanjay Chitroda
                   ` (2 preceding siblings ...)
  2026-04-29 17:59 ` [PATCH v2 3/4] iio: gyro: drop hid_sensor_remove_trigger() using devm API Sanjay Chitroda
@ 2026-04-29 17:59 ` Sanjay Chitroda
  2026-04-29 19:33   ` Andy Shevchenko
  2026-04-29 19:35 ` [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup Andy Shevchenko
  2026-05-01 11:53 ` srinivas pandruvada
  5 siblings, 1 reply; 13+ messages in thread
From: Sanjay Chitroda @ 2026-04-29 17:59 UTC (permalink / raw)
  To: jikos, jic23, srinivas.pandruvada
  Cc: dlechner, nuno.sa, andy, sanjayembeddedse, sakari.ailus,
	linux-input, linux-iio, linux-kernel

From: Sanjay Chitroda <sanjayembeddedse@gmail.com>

Use devm_hid_sensor_setup_trigger() to automatically release resource
during fail, unbind or removal of driver using devres framework.

This simplify the setup, remove goto, avoid manual resource cleanup in
teardown path.

Signed-off-by: Sanjay Chitroda <sanjayembeddedse@gmail.com>
---
 drivers/iio/humidity/hid-sensor-humidity.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/iio/humidity/hid-sensor-humidity.c b/drivers/iio/humidity/hid-sensor-humidity.c
index e580a2af9562..7ec8a8ba2b38 100644
--- a/drivers/iio/humidity/hid-sensor-humidity.c
+++ b/drivers/iio/humidity/hid-sensor-humidity.c
@@ -233,8 +233,8 @@ static int hid_humidity_probe(struct platform_device *pdev)
 
 	atomic_set(&humid_st->common_attributes.data_ready, 0);
 
-	ret = hid_sensor_setup_trigger(indio_dev, name,
-				&humid_st->common_attributes);
+	ret = devm_hid_sensor_setup_trigger(&indio_dev->dev, indio_dev, name,
+					    &humid_st->common_attributes);
 	if (ret)
 		return ret;
 
@@ -244,7 +244,7 @@ static int hid_humidity_probe(struct platform_device *pdev)
 	ret = sensor_hub_register_callback(hsdev, HID_USAGE_SENSOR_HUMIDITY,
 					&humidity_callbacks);
 	if (ret)
-		goto error_remove_trigger;
+		return ret;
 
 	ret = iio_device_register(indio_dev);
 	if (ret)
@@ -254,8 +254,6 @@ static int hid_humidity_probe(struct platform_device *pdev)
 
 error_remove_callback:
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_HUMIDITY);
-error_remove_trigger:
-	hid_sensor_remove_trigger(&humid_st->common_attributes);
 	return ret;
 }
 
@@ -264,11 +262,9 @@ static void hid_humidity_remove(struct platform_device *pdev)
 {
 	struct hid_sensor_hub_device *hsdev = dev_get_platdata(&pdev->dev);
 	struct iio_dev *indio_dev = platform_get_drvdata(pdev);
-	struct hid_humidity_state *humid_st = iio_priv(indio_dev);
 
 	iio_device_unregister(indio_dev);
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_HUMIDITY);
-	hid_sensor_remove_trigger(&humid_st->common_attributes);
 }
 
 static const struct platform_device_id hid_humidity_ids[] = {
-- 
2.34.1


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

* Re: [PATCH v2 2/4] iio: hid-sensors: introduce device managed API
  2026-04-29 17:59 ` [PATCH v2 2/4] iio: hid-sensors: introduce device managed API Sanjay Chitroda
@ 2026-04-29 19:31   ` Andy Shevchenko
  2026-04-30 19:30     ` Sanjay Chitroda
  0 siblings, 1 reply; 13+ messages in thread
From: Andy Shevchenko @ 2026-04-29 19:31 UTC (permalink / raw)
  To: Sanjay Chitroda
  Cc: jikos, jic23, srinivas.pandruvada, dlechner, nuno.sa, andy,
	sakari.ailus, linux-input, linux-iio, linux-kernel

On Wed, Apr 29, 2026 at 11:29:16PM +0530, Sanjay Chitroda wrote:

> hid_sensor_setup_trigger() is common API used for the HID IIO drivers,
> prepare devm API devm_hid_sensor_setup_trigger() to acquire resource
> during setup and release using device managed framework during drivers
> fail, unbind or remove path.
> 
> Register action with devm_add_action_or_reset() to release resource with
> devres framework.

...

> +static void hid_sensor_remove_trigger_action(void *ptr)
> +{
> +	struct hid_sensor_common *attrb = ptr;
> +
> +	hid_sensor_remove_trigger(attrb);
> +}

Casting is not needed here.

static void hid_sensor_remove_trigger_action(void *attrb)
{
	hid_sensor_remove_trigger(attrb);
}

...

> +int devm_hid_sensor_setup_trigger(struct device *dev, struct iio_dev *indio_dev,
> +				  const char *name, struct hid_sensor_common *attrb)
> +{
> +	int ret;
> +
> +	ret = hid_sensor_setup_trigger(indio_dev, name, attrb);
> +	if (ret)
> +		return ret;

> +	ret = devm_add_action_or_reset(dev, hid_sensor_remove_trigger_action, attrb);
> +	if (ret)
> +		return ret;
> +
> +	return 0;

	return devm_add_action_or_reset(dev, hid_sensor_remove_trigger_action, attrb);

> +}

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v2 4/4] iio: humidity: drop hid_sensor_remove_trigger() using devm API
  2026-04-29 17:59 ` [PATCH v2 4/4] iio: humidity: " Sanjay Chitroda
@ 2026-04-29 19:33   ` Andy Shevchenko
  2026-04-30 19:21     ` Sanjay Chitroda
  0 siblings, 1 reply; 13+ messages in thread
From: Andy Shevchenko @ 2026-04-29 19:33 UTC (permalink / raw)
  To: Sanjay Chitroda
  Cc: jikos, jic23, srinivas.pandruvada, dlechner, nuno.sa, andy,
	sakari.ailus, linux-input, linux-iio, linux-kernel

On Wed, Apr 29, 2026 at 11:29:18PM +0530, Sanjay Chitroda wrote:

> Use devm_hid_sensor_setup_trigger() to automatically release resource
> during fail, unbind or removal of driver using devres framework.
> 
> This simplify the setup, remove goto, avoid manual resource cleanup in
> teardown path.

...

> -	ret = hid_sensor_setup_trigger(indio_dev, name,
> -				&humid_st->common_attributes);
> +	ret = devm_hid_sensor_setup_trigger(&indio_dev->dev, indio_dev, name,
> +					    &humid_st->common_attributes);

I believe the first parameter is utterly wrong here.
Or other way around, same issue but in the previous patch.

>  	if (ret)
>  		return ret;

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup
  2026-04-29 17:59 [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup Sanjay Chitroda
                   ` (3 preceding siblings ...)
  2026-04-29 17:59 ` [PATCH v2 4/4] iio: humidity: " Sanjay Chitroda
@ 2026-04-29 19:35 ` Andy Shevchenko
  2026-05-01 11:53 ` srinivas pandruvada
  5 siblings, 0 replies; 13+ messages in thread
From: Andy Shevchenko @ 2026-04-29 19:35 UTC (permalink / raw)
  To: Sanjay Chitroda
  Cc: jikos, jic23, srinivas.pandruvada, dlechner, nuno.sa, andy,
	sakari.ailus, linux-input, linux-iio, linux-kernel

On Wed, Apr 29, 2026 at 11:29:14PM +0530, Sanjay Chitroda wrote:

> Key highlights:
> - Prepare change as pre-requisite for devm conversion for HID IIO
>   drivers by removing redundant argument
> - Add devm API to setup trigger and clenaup resource using
>   devm_add_action_or_reset()
> - few sample driver update using devm conversion to auto release resource

> Based on further feedback and reviews, I would extend this series to convert
> all HID IIO driver to use devm_* API.

Not sure about this. But if people (and HID sensors maintainers in particular)
are fine with this, I have no objections. There are some nit-picks and one
serious problem to address, though.

-- 
With Best Regards,
Andy Shevchenko



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

* Re: [PATCH v2 4/4] iio: humidity: drop hid_sensor_remove_trigger() using devm API
  2026-04-29 19:33   ` Andy Shevchenko
@ 2026-04-30 19:21     ` Sanjay Chitroda
  2026-05-01 18:25       ` Andy Shevchenko
  0 siblings, 1 reply; 13+ messages in thread
From: Sanjay Chitroda @ 2026-04-30 19:21 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: jikos, jic23, srinivas.pandruvada, dlechner, nuno.sa, andy,
	sakari.ailus, linux-input, linux-iio, linux-kernel



On 30 April 2026 1:03:56 am IST, Andy Shevchenko <andriy.shevchenko@intel.com> wrote:
>On Wed, Apr 29, 2026 at 11:29:18PM +0530, Sanjay Chitroda wrote:
>
>> Use devm_hid_sensor_setup_trigger() to automatically release resource
>> during fail, unbind or removal of driver using devres framework.
>> 
>> This simplify the setup, remove goto, avoid manual resource cleanup in
>> teardown path.
>
>...
>
>> -	ret = hid_sensor_setup_trigger(indio_dev, name,
>> -				&humid_st->common_attributes);
>> +	ret = devm_hid_sensor_setup_trigger(&indio_dev->dev, indio_dev, name,
>> +					    &humid_st->common_attributes);
>
>I believe the first parameter is utterly wrong here.
>Or other way around, same issue but in the previous patch.
>
Thank you Andy for the review comment.

It looks in same humidity probe of hid sensor with devm API two device pointer are used &pdev->dev and &indio_dev->dev; ideally all devm should have same parent device for devres resource framework and over here preferable and consistent device should be &pdev->dev;

I would first update existing devm_* API to have consistent device and on top of that will use same device in devm conversation.

While for gyro change device is consistent as &pdev->dev across all devm API.

Thanks,
Sanjay Chitroda 


>>  	if (ret)
>>  		return ret;
>

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

* Re: [PATCH v2 2/4] iio: hid-sensors: introduce device managed API
  2026-04-29 19:31   ` Andy Shevchenko
@ 2026-04-30 19:30     ` Sanjay Chitroda
  2026-05-01 12:34       ` Andy Shevchenko
  0 siblings, 1 reply; 13+ messages in thread
From: Sanjay Chitroda @ 2026-04-30 19:30 UTC (permalink / raw)
  To: Andy Shevchenko
  Cc: jikos, jic23, srinivas.pandruvada, dlechner, nuno.sa, andy,
	sakari.ailus, linux-input, linux-iio, linux-kernel



On 30 April 2026 1:01:27 am IST, Andy Shevchenko <andriy.shevchenko@intel.com> wrote:
>On Wed, Apr 29, 2026 at 11:29:16PM +0530, Sanjay Chitroda wrote:
>
>> hid_sensor_setup_trigger() is common API used for the HID IIO drivers,
>> prepare devm API devm_hid_sensor_setup_trigger() to acquire resource
>> during setup and release using device managed framework during drivers
>> fail, unbind or remove path.
>> 
>> Register action with devm_add_action_or_reset() to release resource with
>> devres framework.
>
>...
>
>> +static void hid_sensor_remove_trigger_action(void *ptr)
>> +{
>> +	struct hid_sensor_common *attrb = ptr;
>> +
>> +	hid_sensor_remove_trigger(attrb);
>> +}
>
>Casting is not needed here.
>
>static void hid_sensor_remove_trigger_action(void *attrb)
>{
>	hid_sensor_remove_trigger(attrb);
>}
>

True, the cast isn’t required. I kept the typed variable for clarity and type checking on devm_add.. API which pass void * callback and remove trigger API which has struct hid_sensor_common.

Happy to simplify if preferred.

>...
>
>> +int devm_hid_sensor_setup_trigger(struct device *dev, struct iio_dev *indio_dev,
>> +				  const char *name, struct hid_sensor_common *attrb)
>> +{
>> +	int ret;
>> +
>> +	ret = hid_sensor_setup_trigger(indio_dev, name, attrb);
>> +	if (ret)
>> +		return ret;
>
>> +	ret = devm_add_action_or_reset(dev, hid_sensor_remove_trigger_action, attrb);
>> +	if (ret)
>> +		return ret;
>> +
>> +	return 0;
>
>	return devm_add_action_or_reset(dev, hid_sensor_remove_trigger_action, attrb);
>

Agree, will update in next series.
Thanks,
Sanjay Chitroda

>> +}
>

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

* Re: [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup
  2026-04-29 17:59 [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup Sanjay Chitroda
                   ` (4 preceding siblings ...)
  2026-04-29 19:35 ` [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup Andy Shevchenko
@ 2026-05-01 11:53 ` srinivas pandruvada
  5 siblings, 0 replies; 13+ messages in thread
From: srinivas pandruvada @ 2026-05-01 11:53 UTC (permalink / raw)
  To: Sanjay Chitroda, jikos, jic23
  Cc: dlechner, nuno.sa, andy, sakari.ailus, linux-input, linux-iio,
	linux-kernel, Zhang Lixu

+ Lixu

On Wed, 2026-04-29 at 23:29 +0530, Sanjay Chitroda wrote:
> From: Sanjay Chitroda <sanjayembeddedse@gmail.com>
> 
> Key highlights:
> - Prepare change as pre-requisite for devm conversion for HID IIO
>   drivers by removing redundant argument
> - Add devm API to setup trigger and clenaup resource using
>   devm_add_action_or_reset()
> - few sample driver update using devm conversion to auto release
> resource
> 

devm_* calls are fine but needs tests particularly when forces ISH PCI
drivers unbind, while iio-sensor-proxy has open sessions.

Lixu, Please check.

Thanks,
Srinivas



> changes in v2:
> - Following input from Jonathan and Andy, squash initial patch v1
>   series in single change as individual change should not break
> anything
> - Add devm API support and two driver using the same
> - v1 series ->
> https://lore.kernel.org/all/20260428071613.1134053-1-sanjayembedded@gmail.com/
> 
> Testing:
>   - Compiled with W=1
>   - Build-tested on QEMU x86_64
> 
> Based on further feedback and reviews, I would extend this series to
> convert all HID IIO driver to use devm_* API.
> 
> Thanks,
> Sanjay Chitroda
> 
> Sanjay Chitroda (4):
>   iio: hid-sensors: drop redundant iio_dev argument
>   iio: hid-sensors: introduce device managed API
>   iio: gyro: drop hid_sensor_remove_trigger() using devm API
>   iio: humidity: drop hid_sensor_remove_trigger() using devm API
> 
>  drivers/iio/accel/hid-sensor-accel-3d.c       |  4 +--
>  .../common/hid-sensors/hid-sensor-trigger.c   | 27
> +++++++++++++++++--
>  .../common/hid-sensors/hid-sensor-trigger.h   |  5 ++--
>  drivers/iio/gyro/hid-sensor-gyro-3d.c         | 10 +++----
>  drivers/iio/humidity/hid-sensor-humidity.c    | 10 +++----
>  drivers/iio/light/hid-sensor-als.c            |  4 +--
>  drivers/iio/light/hid-sensor-prox.c           |  4 +--
>  drivers/iio/magnetometer/hid-sensor-magn-3d.c |  4 +--
>  drivers/iio/orientation/hid-sensor-incl-3d.c  |  4 +--
>  drivers/iio/orientation/hid-sensor-rotation.c |  4 +--
>  .../position/hid-sensor-custom-intel-hinge.c  |  4 +--
>  drivers/iio/pressure/hid-sensor-press.c       |  4 +--
>  .../iio/temperature/hid-sensor-temperature.c  |  4 +--
>  13 files changed, 52 insertions(+), 36 deletions(-)
> 
> 
> base-commit: eade2b843d9b1f668fc1775f15611bb0a1999cd9

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

* Re: [PATCH v2 2/4] iio: hid-sensors: introduce device managed API
  2026-04-30 19:30     ` Sanjay Chitroda
@ 2026-05-01 12:34       ` Andy Shevchenko
  0 siblings, 0 replies; 13+ messages in thread
From: Andy Shevchenko @ 2026-05-01 12:34 UTC (permalink / raw)
  To: Sanjay Chitroda
  Cc: Andy Shevchenko, jikos, jic23, srinivas.pandruvada, dlechner,
	nuno.sa, andy, sakari.ailus, linux-input, linux-iio, linux-kernel

On Thu, Apr 30, 2026 at 10:30 PM Sanjay Chitroda
<sanjayembeddedse@gmail.com> wrote:
> On 30 April 2026 1:01:27 am IST, Andy Shevchenko <andriy.shevchenko@intel.com> wrote:
> >On Wed, Apr 29, 2026 at 11:29:16PM +0530, Sanjay Chitroda wrote:

...

> >> +static void hid_sensor_remove_trigger_action(void *ptr)
> >> +{
> >> +    struct hid_sensor_common *attrb = ptr;
> >> +
> >> +    hid_sensor_remove_trigger(attrb);
> >> +}
> >
> >Casting is not needed here.
> >
> >static void hid_sensor_remove_trigger_action(void *attrb)
> >{
> >       hid_sensor_remove_trigger(attrb);
> >}
>
> True, the cast isn’t required. I kept the typed variable for clarity and type checking on devm_add.. API which pass void * callback and remove trigger API which has struct hid_sensor_common.
>
> Happy to simplify if preferred.

Please, do.

-- 
With Best Regards,
Andy Shevchenko

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

* Re: [PATCH v2 4/4] iio: humidity: drop hid_sensor_remove_trigger() using devm API
  2026-04-30 19:21     ` Sanjay Chitroda
@ 2026-05-01 18:25       ` Andy Shevchenko
  0 siblings, 0 replies; 13+ messages in thread
From: Andy Shevchenko @ 2026-05-01 18:25 UTC (permalink / raw)
  To: Sanjay Chitroda
  Cc: Andy Shevchenko, jikos, jic23, srinivas.pandruvada, dlechner,
	nuno.sa, andy, sakari.ailus, linux-input, linux-iio, linux-kernel

On Thu, Apr 30, 2026 at 10:21 PM Sanjay Chitroda
<sanjayembeddedse@gmail.com> wrote:
> On 30 April 2026 1:03:56 am IST, Andy Shevchenko <andriy.shevchenko@intel.com> wrote:
> >On Wed, Apr 29, 2026 at 11:29:18PM +0530, Sanjay Chitroda wrote:
> >
> >> Use devm_hid_sensor_setup_trigger() to automatically release resource

resources

> >> during fail, unbind or removal of driver using devres framework.

failure

> >>
> >> This simplify the setup, remove goto, avoid manual resource cleanup in

simplifies
removes
and avoids

OR

"This is done in a way to simplify..."

> >> teardown path.

...

> >> +    ret = devm_hid_sensor_setup_trigger(&indio_dev->dev, indio_dev, name,
> >> +                                        &humid_st->common_attributes);
> >
> >I believe the first parameter is utterly wrong here.
> >Or other way around, same issue but in the previous patch.
> >
> Thank you Andy for the review comment.
>
> It looks in same humidity probe of hid sensor with devm API two device pointer are used &pdev->dev and &indio_dev->dev; ideally all devm should have same parent device for devres resource framework and over here preferable and consistent device should be &pdev->dev;
>
> I would first update existing devm_* API to have consistent device and on top of that will use same device in devm conversation.
>
> While for gyro change device is consistent as &pdev->dev across all devm API.

The idea is that you have to go deeply understanding the object
lifetimes for the cases of different device instances along with
userspace communication channels (all possible ABIs the driver uses).
With only that the proper parameter may be chosen or even confirmed
that device managed resources must not be used. Yeah, this is one of
the downsides of devm_*() APIs.

-- 
With Best Regards,
Andy Shevchenko

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

end of thread, other threads:[~2026-05-01 18:26 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-04-29 17:59 [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup Sanjay Chitroda
2026-04-29 17:59 ` [PATCH v2 1/4] iio: hid-sensors: drop redundant iio_dev argument Sanjay Chitroda
2026-04-29 17:59 ` [PATCH v2 2/4] iio: hid-sensors: introduce device managed API Sanjay Chitroda
2026-04-29 19:31   ` Andy Shevchenko
2026-04-30 19:30     ` Sanjay Chitroda
2026-05-01 12:34       ` Andy Shevchenko
2026-04-29 17:59 ` [PATCH v2 3/4] iio: gyro: drop hid_sensor_remove_trigger() using devm API Sanjay Chitroda
2026-04-29 17:59 ` [PATCH v2 4/4] iio: humidity: " Sanjay Chitroda
2026-04-29 19:33   ` Andy Shevchenko
2026-04-30 19:21     ` Sanjay Chitroda
2026-05-01 18:25       ` Andy Shevchenko
2026-04-29 19:35 ` [PATCH v2 0/4] iio: introduce devm_ API for hid sensro setup and cleanup Andy Shevchenko
2026-05-01 11:53 ` srinivas pandruvada

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