Change to use devm_hwspin_lock_request_specific() to help to simplify the
cleanup code for drivers requesting one hwlock.

Signed-off-by: Baolin Wang <[email protected]>
---
 drivers/iio/adc/sc27xx_adc.c |   16 +---------------
 1 file changed, 1 insertion(+), 15 deletions(-)

diff --git a/drivers/iio/adc/sc27xx_adc.c b/drivers/iio/adc/sc27xx_adc.c
index a6c0465..66b387f 100644
--- a/drivers/iio/adc/sc27xx_adc.c
+++ b/drivers/iio/adc/sc27xx_adc.c
@@ -477,13 +477,6 @@ static void sc27xx_adc_disable(void *_data)
                           SC27XX_MODULE_ADC_EN, 0);
 }
 
-static void sc27xx_adc_free_hwlock(void *_data)
-{
-       struct hwspinlock *hwlock = _data;
-
-       hwspin_lock_free(hwlock);
-}
-
 static int sc27xx_adc_probe(struct platform_device *pdev)
 {
        struct device *dev = &pdev->dev;
@@ -520,19 +513,12 @@ static int sc27xx_adc_probe(struct platform_device *pdev)
                return ret;
        }
 
-       sc27xx_data->hwlock = hwspin_lock_request_specific(ret);
+       sc27xx_data->hwlock = devm_hwspin_lock_request_specific(dev, ret);
        if (!sc27xx_data->hwlock) {
                dev_err(dev, "failed to request hwspinlock\n");
                return -ENXIO;
        }
 
-       ret = devm_add_action_or_reset(dev, sc27xx_adc_free_hwlock,
-                             sc27xx_data->hwlock);
-       if (ret) {
-               dev_err(dev, "failed to add hwspinlock action\n");
-               return ret;
-       }
-
        sc27xx_data->dev = dev;
 
        ret = sc27xx_adc_enable(sc27xx_data);
-- 
1.7.9.5

Reply via email to