Re: [PATCH v4 35/36] iio: pressure: hid-sensor-press: drop hid_sensor_remove_trigger() using devm API
From: Sanjay Chitroda
Date: Tue May 26 2026 - 14:21:21 EST
On 26 May 2026 9:24:51 pm IST, Jonathan Cameron <jic23@xxxxxxxxxx> wrote:
>On Mon, 25 May 2026 22:35:50 +0530
>Sanjay Chitroda <sanjayembeddedse@xxxxxxxxx> wrote:
>
>> On 25 May 2026 3:39:11 pm IST, Christophe JAILLET <christophe.jaillet@xxxxxxxxxx> wrote:
>> >Le 24/05/2026 à 21:29, Sanjay Chitroda a écrit :
>> >> From: Sanjay Chitroda <sanjayembeddedse@xxxxxxxxx>
>> >>
>> >> 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@xxxxxxxxx>
>> >> ---
>> >> 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.
>
>This is putting a lot of churn and many patches on a critical driver
>(given this device is in a lot of laptops). As such I think it's fine
>to do prep for devm in separate changes, but the final per driver change
>should be one per driver to go fully devm rather than doing it in smaller
>chunks. I obviously want to see this well tested, and don't want to have
>to keep asking people to test 'the next' set of changes.
>
>Jonathan
>
Hi Jonathan,
I understood and agreed with you. To add devm API support we have common separate change and on top of while updating driver instead of updating a single devm, I shall update all possible driver to devm. I think we can keep this series for few time for the review and next series would incorporate fully devm change and also attempted to use b4 to handle long series.
Later in that we can plan to proceed for testing instead of partial devm driver series validation.
Thanks, Sanjay
>>
>> 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[] = {
>> >
>