Hi,

On 2014년 04월 16일 19:27, Sangjung Woo wrote:
> Use the resource-managed extcon device register function (i.e.
> devm_extcon_dev_register()) instead of extcon_dev_register(). If extcon device
> is attached with this function, that extcon device is automatically 
> unregistered
> on driver detach. That reduces tiresome managing code.
> 
> Signed-off-by: Sangjung Woo <[email protected]>
> ---
>  drivers/extcon/extcon-arizona.c |   13 ++++---------
>  1 file changed, 4 insertions(+), 9 deletions(-)
> 
> diff --git a/drivers/extcon/extcon-arizona.c b/drivers/extcon/extcon-arizona.c
> index 98a14f6..40e6c0b 100644
> --- a/drivers/extcon/extcon-arizona.c
> +++ b/drivers/extcon/extcon-arizona.c
> @@ -1105,15 +1105,13 @@ static int arizona_extcon_probe(struct 
> platform_device *pdev)
>       info = devm_kzalloc(&pdev->dev, sizeof(*info), GFP_KERNEL);
>       if (!info) {
>               dev_err(&pdev->dev, "Failed to allocate memory\n");
> -             ret = -ENOMEM;
> -             goto err;
> +             return -ENOMEM;
>       }
>  
>       info->micvdd = devm_regulator_get(arizona->dev, "MICVDD");
>       if (IS_ERR(info->micvdd)) {
> -             ret = PTR_ERR(info->micvdd);
>               dev_err(arizona->dev, "Failed to get MICVDD: %d\n", ret);

Assignment to ret is removed but it is still used here.

> -             goto err;
> +             return PTR_ERR(info->micvdd);
>       }
>  
>       mutex_init(&info->lock);
> @@ -1155,11 +1153,11 @@ static int arizona_extcon_probe(struct 
> platform_device *pdev)
>       info->edev.dev.parent = arizona->dev;
>       info->edev.supported_cable = arizona_cable;
>  
> -     ret = extcon_dev_register(&info->edev);
> +     ret = devm_extcon_dev_register(&pdev->dev, &info->edev);
>       if (ret < 0) {
>               dev_err(arizona->dev, "extcon_dev_register() failed: %d\n",
>                       ret);
> -             goto err;
> +             return ret;
>       }
>  
>       info->input = devm_input_allocate_device(&pdev->dev);
> @@ -1410,8 +1408,6 @@ err_rise:
>  err_input:
>  err_register:
>       pm_runtime_disable(&pdev->dev);
> -     extcon_dev_unregister(&info->edev);
> -err:
>       return ret;
>  }
>  
> @@ -1445,7 +1441,6 @@ static int arizona_extcon_remove(struct platform_device 
> *pdev)
>       regmap_update_bits(arizona->regmap, ARIZONA_JACK_DETECT_ANALOGUE,
>                          ARIZONA_JD1_ENA, 0);
>       arizona_clk32k_disable(arizona);
> -     extcon_dev_unregister(&info->edev);
>  
>       return 0;
>  }
> 

-- 
Seung-Woo Kim
Samsung Software R&D Center
--

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to