Re: [PATCH v4 35/36] iio: pressure: hid-sensor-press: drop hid_sensor_remove_trigger() using devm API
From: Sanjay Chitroda
Date: Mon May 25 2026 - 13:06:07 EST
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.
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[] = {
>