Linux Input/HID development
 help / color / mirror / Atom feed
* [PATCH v4 30/36] iio: light: hid-sensor-als: drop hid_sensor_remove_trigger() using devm API
@ 2026-05-24 19:29 Sanjay Chitroda
  2026-05-24 19:29 ` [PATCH v4 31/36] iio: magnetometer: hid-sensor-magn-3d: " Sanjay Chitroda
                   ` (5 more replies)
  0 siblings, 6 replies; 9+ messages in thread
From: Sanjay Chitroda @ 2026-05-24 19:29 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/light/hid-sensor-als.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/iio/light/hid-sensor-als.c b/drivers/iio/light/hid-sensor-als.c
index 0af235d30800..2e9ed860c556 100644
--- a/drivers/iio/light/hid-sensor-als.c
+++ b/drivers/iio/light/hid-sensor-als.c
@@ -406,8 +406,8 @@ static int hid_als_probe(struct platform_device *pdev)
 
 	atomic_set(&als_state->common_attributes.data_ready, 0);
 
-	ret = hid_sensor_setup_trigger(indio_dev, name,
-				&als_state->common_attributes);
+	ret = devm_hid_sensor_setup_trigger(dev, indio_dev, name,
+					    &als_state->common_attributes);
 	if (ret < 0) {
 		dev_err(dev, "trigger setup failed\n");
 		return ret;
@@ -416,7 +416,7 @@ static int hid_als_probe(struct platform_device *pdev)
 	ret = iio_device_register(indio_dev);
 	if (ret) {
 		dev_err(dev, "device register failed\n");
-		goto error_remove_trigger;
+		return ret;
 	}
 
 	als_state->callbacks.send_event = als_proc_event;
@@ -432,8 +432,6 @@ static int hid_als_probe(struct platform_device *pdev)
 
 error_iio_unreg:
 	iio_device_unregister(indio_dev);
-error_remove_trigger:
-	hid_sensor_remove_trigger(&als_state->common_attributes);
 	return ret;
 }
 
@@ -442,11 +440,9 @@ static void hid_als_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 als_state *als_state = iio_priv(indio_dev);
 
 	sensor_hub_remove_callback(hsdev, hsdev->usage);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(&als_state->common_attributes);
 }
 
 static const struct platform_device_id hid_als_ids[] = {
-- 
2.34.1


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

* [PATCH v4 31/36] iio: magnetometer: hid-sensor-magn-3d: drop hid_sensor_remove_trigger() using devm API
  2026-05-24 19:29 [PATCH v4 30/36] iio: light: hid-sensor-als: drop hid_sensor_remove_trigger() using devm API Sanjay Chitroda
@ 2026-05-24 19:29 ` Sanjay Chitroda
  2026-05-24 19:29 ` [PATCH v4 32/36] iio: orientation: hid-sensor-incl-3d: " Sanjay Chitroda
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Sanjay Chitroda @ 2026-05-24 19:29 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/magnetometer/hid-sensor-magn-3d.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/iio/magnetometer/hid-sensor-magn-3d.c b/drivers/iio/magnetometer/hid-sensor-magn-3d.c
index 22c7b24e2e3a..3019de46731a 100644
--- a/drivers/iio/magnetometer/hid-sensor-magn-3d.c
+++ b/drivers/iio/magnetometer/hid-sensor-magn-3d.c
@@ -516,8 +516,8 @@ static int hid_magn_3d_probe(struct platform_device *pdev)
 
 	atomic_set(&magn_state->magn_flux_attributes.data_ready, 0);
 
-	ret = hid_sensor_setup_trigger(indio_dev, name,
-				       &magn_state->magn_flux_attributes);
+	ret = devm_hid_sensor_setup_trigger(dev, indio_dev, name,
+					    &magn_state->magn_flux_attributes);
 	if (ret < 0) {
 		dev_err(dev, "trigger setup failed\n");
 		return ret;
@@ -526,7 +526,7 @@ static int hid_magn_3d_probe(struct platform_device *pdev)
 	ret = iio_device_register(indio_dev);
 	if (ret) {
 		dev_err(dev, "device register failed\n");
-		goto error_remove_trigger;
+		return ret;
 	}
 
 	magn_state->callbacks.send_event = magn_3d_proc_event;
@@ -543,8 +543,6 @@ 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(&magn_state->magn_flux_attributes);
 	return ret;
 }
 
@@ -553,11 +551,9 @@ static void hid_magn_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 magn_3d_state *magn_state = iio_priv(indio_dev);
 
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_COMPASS_3D);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(&magn_state->magn_flux_attributes);
 }
 
 static const struct platform_device_id hid_magn_3d_ids[] = {
-- 
2.34.1


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

* [PATCH v4 32/36] iio: orientation: hid-sensor-incl-3d: drop hid_sensor_remove_trigger() using devm API
  2026-05-24 19:29 [PATCH v4 30/36] iio: light: hid-sensor-als: drop hid_sensor_remove_trigger() using devm API Sanjay Chitroda
  2026-05-24 19:29 ` [PATCH v4 31/36] iio: magnetometer: hid-sensor-magn-3d: " Sanjay Chitroda
@ 2026-05-24 19:29 ` Sanjay Chitroda
  2026-05-24 19:29 ` [PATCH v4 33/36] iio: orientation: hid-sensor-rotation: " Sanjay Chitroda
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Sanjay Chitroda @ 2026-05-24 19:29 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/orientation/hid-sensor-incl-3d.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/iio/orientation/hid-sensor-incl-3d.c b/drivers/iio/orientation/hid-sensor-incl-3d.c
index 21a32f506046..55d3e8d83f6b 100644
--- a/drivers/iio/orientation/hid-sensor-incl-3d.c
+++ b/drivers/iio/orientation/hid-sensor-incl-3d.c
@@ -349,8 +349,8 @@ static int hid_incl_3d_probe(struct platform_device *pdev)
 
 	atomic_set(&incl_state->common_attributes.data_ready, 0);
 
-	ret = hid_sensor_setup_trigger(indio_dev, name,
-					&incl_state->common_attributes);
+	ret = devm_hid_sensor_setup_trigger(dev, indio_dev, name,
+					    &incl_state->common_attributes);
 	if (ret) {
 		dev_err(dev, "trigger setup failed\n");
 		return ret;
@@ -359,7 +359,7 @@ static int hid_incl_3d_probe(struct platform_device *pdev)
 	ret = iio_device_register(indio_dev);
 	if (ret) {
 		dev_err(dev, "device register failed\n");
-		goto error_remove_trigger;
+		return ret;
 	}
 
 	incl_state->callbacks.send_event = incl_3d_proc_event;
@@ -377,8 +377,6 @@ 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(&incl_state->common_attributes);
 	return ret;
 }
 
@@ -387,11 +385,9 @@ static void hid_incl_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 incl_3d_state *incl_state = iio_priv(indio_dev);
 
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_INCLINOMETER_3D);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(&incl_state->common_attributes);
 }
 
 static const struct platform_device_id hid_incl_3d_ids[] = {
-- 
2.34.1


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

* [PATCH v4 33/36] iio: orientation: hid-sensor-rotation: drop hid_sensor_remove_trigger() using devm API
  2026-05-24 19:29 [PATCH v4 30/36] iio: light: hid-sensor-als: drop hid_sensor_remove_trigger() using devm API Sanjay Chitroda
  2026-05-24 19:29 ` [PATCH v4 31/36] iio: magnetometer: hid-sensor-magn-3d: " Sanjay Chitroda
  2026-05-24 19:29 ` [PATCH v4 32/36] iio: orientation: hid-sensor-incl-3d: " Sanjay Chitroda
@ 2026-05-24 19:29 ` Sanjay Chitroda
  2026-05-24 19:29 ` [PATCH v4 34/36] iio: position: hid-sensor-custom-intel-hinge: " Sanjay Chitroda
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 9+ messages in thread
From: Sanjay Chitroda @ 2026-05-24 19:29 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/orientation/hid-sensor-rotation.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/iio/orientation/hid-sensor-rotation.c b/drivers/iio/orientation/hid-sensor-rotation.c
index cd9fe74b5b30..28336c40403b 100644
--- a/drivers/iio/orientation/hid-sensor-rotation.c
+++ b/drivers/iio/orientation/hid-sensor-rotation.c
@@ -325,8 +325,8 @@ static int hid_dev_rot_probe(struct platform_device *pdev)
 
 	atomic_set(&rot_state->common_attributes.data_ready, 0);
 
-	ret = hid_sensor_setup_trigger(indio_dev, name,
-					&rot_state->common_attributes);
+	ret = devm_hid_sensor_setup_trigger(dev, indio_dev, name,
+					    &rot_state->common_attributes);
 	if (ret) {
 		dev_err(dev, "trigger setup failed\n");
 		return ret;
@@ -335,7 +335,7 @@ static int hid_dev_rot_probe(struct platform_device *pdev)
 	ret = iio_device_register(indio_dev);
 	if (ret) {
 		dev_err(dev, "device register failed\n");
-		goto error_remove_trigger;
+		return ret;
 	}
 
 	rot_state->callbacks.send_event = dev_rot_proc_event;
@@ -352,8 +352,6 @@ 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(&rot_state->common_attributes);
 	return ret;
 }
 
@@ -362,11 +360,9 @@ static void hid_dev_rot_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 dev_rot_state *rot_state = iio_priv(indio_dev);
 
 	sensor_hub_remove_callback(hsdev, hsdev->usage);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(&rot_state->common_attributes);
 }
 
 static const struct platform_device_id hid_dev_rot_ids[] = {
-- 
2.34.1


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

* [PATCH v4 34/36] iio: position: hid-sensor-custom-intel-hinge: drop hid_sensor_remove_trigger() using devm API
  2026-05-24 19:29 [PATCH v4 30/36] iio: light: hid-sensor-als: drop hid_sensor_remove_trigger() using devm API Sanjay Chitroda
                   ` (2 preceding siblings ...)
  2026-05-24 19:29 ` [PATCH v4 33/36] iio: orientation: hid-sensor-rotation: " Sanjay Chitroda
@ 2026-05-24 19:29 ` Sanjay Chitroda
  2026-05-24 19:29 ` [PATCH v4 35/36] iio: pressure: hid-sensor-press: " Sanjay Chitroda
  2026-05-24 19:29 ` [PATCH v4 36/36] iio: temperature: hid-sensor-temperature: " Sanjay Chitroda
  5 siblings, 0 replies; 9+ messages in thread
From: Sanjay Chitroda @ 2026-05-24 19:29 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/position/hid-sensor-custom-intel-hinge.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/iio/position/hid-sensor-custom-intel-hinge.c b/drivers/iio/position/hid-sensor-custom-intel-hinge.c
index e616988fe9f4..7844ed12c030 100644
--- a/drivers/iio/position/hid-sensor-custom-intel-hinge.c
+++ b/drivers/iio/position/hid-sensor-custom-intel-hinge.c
@@ -311,8 +311,8 @@ static int hid_hinge_probe(struct platform_device *pdev)
 	indio_dev->modes = INDIO_DIRECT_MODE;
 
 	atomic_set(&st->common_attributes.data_ready, 0);
-	ret = hid_sensor_setup_trigger(indio_dev, indio_dev->name,
-				       &st->common_attributes);
+	ret = devm_hid_sensor_setup_trigger(dev, indio_dev, indio_dev->name,
+					    &st->common_attributes);
 	if (ret < 0) {
 		dev_err(dev, "trigger setup failed\n");
 		return ret;
@@ -324,7 +324,7 @@ static int hid_hinge_probe(struct platform_device *pdev)
 	ret = sensor_hub_register_callback(hsdev, hsdev->usage, &st->callbacks);
 	if (ret < 0) {
 		dev_err(dev, "callback reg failed\n");
-		goto error_remove_trigger;
+		return ret;
 	}
 
 	ret = iio_device_register(indio_dev);
@@ -337,8 +337,6 @@ 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(&st->common_attributes);
 	return ret;
 }
 
@@ -347,11 +345,9 @@ static void hid_hinge_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 hinge_state *st = iio_priv(indio_dev);
 
 	iio_device_unregister(indio_dev);
 	sensor_hub_remove_callback(hsdev, hsdev->usage);
-	hid_sensor_remove_trigger(&st->common_attributes);
 }
 
 static const struct platform_device_id hid_hinge_ids[] = {
-- 
2.34.1


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

* [PATCH v4 35/36] iio: pressure: hid-sensor-press: drop hid_sensor_remove_trigger() using devm API
  2026-05-24 19:29 [PATCH v4 30/36] iio: light: hid-sensor-als: drop hid_sensor_remove_trigger() using devm API Sanjay Chitroda
                   ` (3 preceding siblings ...)
  2026-05-24 19:29 ` [PATCH v4 34/36] iio: position: hid-sensor-custom-intel-hinge: " Sanjay Chitroda
@ 2026-05-24 19:29 ` Sanjay Chitroda
  2026-05-25 10:09   ` Christophe JAILLET
  2026-05-24 19:29 ` [PATCH v4 36/36] iio: temperature: hid-sensor-temperature: " Sanjay Chitroda
  5 siblings, 1 reply; 9+ messages in thread
From: Sanjay Chitroda @ 2026-05-24 19:29 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/pressure/hid-sensor-press.c | 10 +++-------
 1 file changed, 3 insertions(+), 7 deletions(-)

diff --git a/drivers/iio/pressure/hid-sensor-press.c b/drivers/iio/pressure/hid-sensor-press.c
index fee7dcb86801..8438498c9aeb 100644
--- a/drivers/iio/pressure/hid-sensor-press.c
+++ b/drivers/iio/pressure/hid-sensor-press.c
@@ -291,8 +291,8 @@ static int hid_press_probe(struct platform_device *pdev)
 
 	atomic_set(&press_state->common_attributes.data_ready, 0);
 
-	ret = hid_sensor_setup_trigger(indio_dev, name,
-				&press_state->common_attributes);
+	ret = devm_hid_sensor_setup_trigger(dev, indio_dev, name,
+					    &press_state->common_attributes);
 	if (ret) {
 		dev_err(dev, "trigger setup failed\n");
 		return ret;
@@ -301,7 +301,7 @@ static int hid_press_probe(struct platform_device *pdev)
 	ret = iio_device_register(indio_dev);
 	if (ret) {
 		dev_err(dev, "device register failed\n");
-		goto error_remove_trigger;
+		return ret;
 	}
 
 	press_state->callbacks.send_event = press_proc_event;
@@ -318,8 +318,6 @@ static int hid_press_probe(struct platform_device *pdev)
 
 error_iio_unreg:
 	iio_device_unregister(indio_dev);
-error_remove_trigger:
-	hid_sensor_remove_trigger(&press_state->common_attributes);
 	return ret;
 }
 
@@ -328,11 +326,9 @@ static void hid_press_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 press_state *press_state = iio_priv(indio_dev);
 
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_PRESSURE);
 	iio_device_unregister(indio_dev);
-	hid_sensor_remove_trigger(&press_state->common_attributes);
 }
 
 static const struct platform_device_id hid_press_ids[] = {
-- 
2.34.1


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

* [PATCH v4 36/36] iio: temperature: hid-sensor-temperature: drop hid_sensor_remove_trigger() using devm API
  2026-05-24 19:29 [PATCH v4 30/36] iio: light: hid-sensor-als: drop hid_sensor_remove_trigger() using devm API Sanjay Chitroda
                   ` (4 preceding siblings ...)
  2026-05-24 19:29 ` [PATCH v4 35/36] iio: pressure: hid-sensor-press: " Sanjay Chitroda
@ 2026-05-24 19:29 ` Sanjay Chitroda
  5 siblings, 0 replies; 9+ messages in thread
From: Sanjay Chitroda @ 2026-05-24 19:29 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/temperature/hid-sensor-temperature.c | 11 +++--------
 1 file changed, 3 insertions(+), 8 deletions(-)

diff --git a/drivers/iio/temperature/hid-sensor-temperature.c b/drivers/iio/temperature/hid-sensor-temperature.c
index 1ff0233d7ab0..ba68fb8bbbaa 100644
--- a/drivers/iio/temperature/hid-sensor-temperature.c
+++ b/drivers/iio/temperature/hid-sensor-temperature.c
@@ -231,8 +231,8 @@ static int hid_temperature_probe(struct platform_device *pdev)
 
 	atomic_set(&temp_st->common_attributes.data_ready, 0);
 
-	ret = hid_sensor_setup_trigger(indio_dev, name,
-				&temp_st->common_attributes);
+	ret = devm_hid_sensor_setup_trigger(&pdev->dev, indio_dev, name,
+					    &temp_st->common_attributes);
 	if (ret)
 		return ret;
 
@@ -242,7 +242,7 @@ static int hid_temperature_probe(struct platform_device *pdev)
 	ret = sensor_hub_register_callback(hsdev, HID_USAGE_SENSOR_TEMPERATURE,
 					&temperature_callbacks);
 	if (ret)
-		goto error_remove_trigger;
+		return ret;
 
 	ret = devm_iio_device_register(indio_dev->dev.parent, indio_dev);
 	if (ret)
@@ -252,8 +252,6 @@ 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(&temp_st->common_attributes);
 	return ret;
 }
 
@@ -261,11 +259,8 @@ static int hid_temperature_probe(struct platform_device *pdev)
 static void hid_temperature_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 temperature_state *temp_st = iio_priv(indio_dev);
 
 	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_TEMPERATURE);
-	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] 9+ messages in thread

* Re: [PATCH v4 35/36] iio: pressure: hid-sensor-press: drop hid_sensor_remove_trigger() using devm API
  2026-05-24 19:29 ` [PATCH v4 35/36] iio: pressure: hid-sensor-press: " Sanjay Chitroda
@ 2026-05-25 10:09   ` Christophe JAILLET
  2026-05-25 17:05     ` Sanjay Chitroda
  0 siblings, 1 reply; 9+ messages in thread
From: Christophe JAILLET @ 2026-05-25 10:09 UTC (permalink / raw)
  To: Sanjay Chitroda, jikos, jic23, srinivas.pandruvada
  Cc: dlechner, nuno.sa, andy, sakari.ailus, linux-input, linux-iio,
	linux-kernel

Le 24/05/2026 à 21:29, Sanjay Chitroda a écrit :
> 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/pressure/hid-sensor-press.c | 10 +++-------
>   1 file changed, 3 insertions(+), 7 deletions(-)
> 
> diff --git a/drivers/iio/pressure/hid-sensor-press.c b/drivers/iio/pressure/hid-sensor-press.c
> index fee7dcb86801..8438498c9aeb 100644
> --- a/drivers/iio/pressure/hid-sensor-press.c
> +++ b/drivers/iio/pressure/hid-sensor-press.c
> @@ -291,8 +291,8 @@ static int hid_press_probe(struct platform_device *pdev)
>   
>   	atomic_set(&press_state->common_attributes.data_ready, 0);
>   
> -	ret = hid_sensor_setup_trigger(indio_dev, name,
> -				&press_state->common_attributes);
> +	ret = devm_hid_sensor_setup_trigger(dev, indio_dev, name,
> +					    &press_state->common_attributes);
>   	if (ret) {
>   		dev_err(dev, "trigger setup failed\n");
>   		return ret;
> @@ -301,7 +301,7 @@ static int hid_press_probe(struct platform_device *pdev)
>   	ret = iio_device_register(indio_dev);

Hi,

Looks like devm_iio_device_register() would now make sense and simplify 
things even further.

CJ


>   	if (ret) {
>   		dev_err(dev, "device register failed\n");
> -		goto error_remove_trigger;
> +		return ret;
>   	}
>   
>   	press_state->callbacks.send_event = press_proc_event;
> @@ -318,8 +318,6 @@ static int hid_press_probe(struct platform_device *pdev)
>   
>   error_iio_unreg:
>   	iio_device_unregister(indio_dev);
> -error_remove_trigger:
> -	hid_sensor_remove_trigger(&press_state->common_attributes);
>   	return ret;
>   }
>   
> @@ -328,11 +326,9 @@ static void hid_press_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 press_state *press_state = iio_priv(indio_dev);
>   
>   	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_PRESSURE);
>   	iio_device_unregister(indio_dev);
> -	hid_sensor_remove_trigger(&press_state->common_attributes);
>   }
>   
>   static const struct platform_device_id hid_press_ids[] = {


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

* Re: [PATCH v4 35/36] iio: pressure: hid-sensor-press: drop hid_sensor_remove_trigger() using devm API
  2026-05-25 10:09   ` Christophe JAILLET
@ 2026-05-25 17:05     ` Sanjay Chitroda
  0 siblings, 0 replies; 9+ messages in thread
From: Sanjay Chitroda @ 2026-05-25 17:05 UTC (permalink / raw)
  To: Christophe JAILLET, jikos, jic23, srinivas.pandruvada
  Cc: dlechner, nuno.sa, andy, sakari.ailus, linux-input, linux-iio,
	linux-kernel



On 25 May 2026 3:39:11 pm IST, Christophe JAILLET <christophe.jaillet@wanadoo.fr> wrote:
>Le 24/05/2026 à 21:29, Sanjay Chitroda a écrit :
>> 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/pressure/hid-sensor-press.c | 10 +++-------
>>   1 file changed, 3 insertions(+), 7 deletions(-)
>> 
>> diff --git a/drivers/iio/pressure/hid-sensor-press.c b/drivers/iio/pressure/hid-sensor-press.c
>> index fee7dcb86801..8438498c9aeb 100644
>> --- a/drivers/iio/pressure/hid-sensor-press.c
>> +++ b/drivers/iio/pressure/hid-sensor-press.c
>> @@ -291,8 +291,8 @@ static int hid_press_probe(struct platform_device *pdev)
>>     	atomic_set(&press_state->common_attributes.data_ready, 0);
>>   -	ret = hid_sensor_setup_trigger(indio_dev, name,
>> -				&press_state->common_attributes);
>> +	ret = devm_hid_sensor_setup_trigger(dev, indio_dev, name,
>> +					    &press_state->common_attributes);
>>   	if (ret) {
>>   		dev_err(dev, "trigger setup failed\n");
>>   		return ret;
>> @@ -301,7 +301,7 @@ static int hid_press_probe(struct platform_device *pdev)
>>   	ret = iio_device_register(indio_dev);
>
>Hi,
>
>Looks like devm_iio_device_register() would now make sense and simplify things even further.
>
>CJ

Hi CJ,

Yes, as mentioned in cover letter most of HID IIO drivers have potential and will converted to devm based driver gradually.

Welcoming all suggestions and especially if someone can validate and have Tested-by tag.

Thank, Sanjay

>
>>   	if (ret) {
>>   		dev_err(dev, "device register failed\n");
>> -		goto error_remove_trigger;
>> +		return ret;
>>   	}
>>     	press_state->callbacks.send_event = press_proc_event;
>> @@ -318,8 +318,6 @@ static int hid_press_probe(struct platform_device *pdev)
>>     error_iio_unreg:
>>   	iio_device_unregister(indio_dev);
>> -error_remove_trigger:
>> -	hid_sensor_remove_trigger(&press_state->common_attributes);
>>   	return ret;
>>   }
>>   @@ -328,11 +326,9 @@ static void hid_press_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 press_state *press_state = iio_priv(indio_dev);
>>     	sensor_hub_remove_callback(hsdev, HID_USAGE_SENSOR_PRESSURE);
>>   	iio_device_unregister(indio_dev);
>> -	hid_sensor_remove_trigger(&press_state->common_attributes);
>>   }
>>     static const struct platform_device_id hid_press_ids[] = {
>

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

end of thread, other threads:[~2026-05-25 17:05 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-05-24 19:29 [PATCH v4 30/36] iio: light: hid-sensor-als: drop hid_sensor_remove_trigger() using devm API Sanjay Chitroda
2026-05-24 19:29 ` [PATCH v4 31/36] iio: magnetometer: hid-sensor-magn-3d: " Sanjay Chitroda
2026-05-24 19:29 ` [PATCH v4 32/36] iio: orientation: hid-sensor-incl-3d: " Sanjay Chitroda
2026-05-24 19:29 ` [PATCH v4 33/36] iio: orientation: hid-sensor-rotation: " Sanjay Chitroda
2026-05-24 19:29 ` [PATCH v4 34/36] iio: position: hid-sensor-custom-intel-hinge: " Sanjay Chitroda
2026-05-24 19:29 ` [PATCH v4 35/36] iio: pressure: hid-sensor-press: " Sanjay Chitroda
2026-05-25 10:09   ` Christophe JAILLET
2026-05-25 17:05     ` Sanjay Chitroda
2026-05-24 19:29 ` [PATCH v4 36/36] iio: temperature: hid-sensor-temperature: " Sanjay Chitroda

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