lkml.org 
[lkml]   [2014]   [Apr]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCHv2 2/8] extcon: adc-jack: Use devm_extcon_dev_register()
    Date
    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 <sangjung.woo@samsung.com>
    ---
    drivers/extcon/extcon-adc-jack.c | 30 +++++++++---------------------
    1 file changed, 9 insertions(+), 21 deletions(-)

    diff --git a/drivers/extcon/extcon-adc-jack.c b/drivers/extcon/extcon-adc-jack.c
    index e23f1c2..549d820 100644
    --- a/drivers/extcon/extcon-adc-jack.c
    +++ b/drivers/extcon/extcon-adc-jack.c
    @@ -105,9 +105,8 @@ static int adc_jack_probe(struct platform_device *pdev)
    data->edev.name = pdata->name;

    if (!pdata->cable_names) {
    - err = -EINVAL;
    dev_err(&pdev->dev, "error: cable_names not defined.\n");
    - goto out;
    + return -EINVAL;
    }

    data->edev.dev.parent = &pdev->dev;
    @@ -117,18 +116,16 @@ static int adc_jack_probe(struct platform_device *pdev)
    for (i = 0; data->edev.supported_cable[i]; i++)
    ;
    if (i == 0 || i > SUPPORTED_CABLE_MAX) {
    - err = -EINVAL;
    dev_err(&pdev->dev, "error: pdata->cable_names size = %d\n",
    i - 1);
    - goto out;
    + return -EINVAL;
    }
    data->num_cables = i;

    if (!pdata->adc_conditions ||
    !pdata->adc_conditions[0].state) {
    - err = -EINVAL;
    dev_err(&pdev->dev, "error: adc_conditions not defined.\n");
    - goto out;
    + return -EINVAL;
    }
    data->adc_conditions = pdata->adc_conditions;

    @@ -138,10 +135,8 @@ static int adc_jack_probe(struct platform_device *pdev)
    data->num_conditions = i;

    data->chan = iio_channel_get(&pdev->dev, pdata->consumer_channel);
    - if (IS_ERR(data->chan)) {
    - err = PTR_ERR(data->chan);
    - goto out;
    - }
    + if (IS_ERR(data->chan))
    + return PTR_ERR(data->chan);

    data->handling_delay = msecs_to_jiffies(pdata->handling_delay_ms);

    @@ -149,15 +144,14 @@ static int adc_jack_probe(struct platform_device *pdev)

    platform_set_drvdata(pdev, data);

    - err = extcon_dev_register(&data->edev);
    + err = devm_extcon_dev_register(&pdev->dev, &data->edev);
    if (err)
    - goto out;
    + return err;

    data->irq = platform_get_irq(pdev, 0);
    if (!data->irq) {
    dev_err(&pdev->dev, "platform_get_irq failed\n");
    - err = -ENODEV;
    - goto err_irq;
    + return -ENODEV;
    }

    err = request_any_context_irq(data->irq, adc_jack_irq_thread,
    @@ -165,15 +159,10 @@ static int adc_jack_probe(struct platform_device *pdev)

    if (err < 0) {
    dev_err(&pdev->dev, "error: irq %d\n", data->irq);
    - goto err_irq;
    + return err;
    }

    return 0;
    -
    -err_irq:
    - extcon_dev_unregister(&data->edev);
    -out:
    - return err;
    }

    static int adc_jack_remove(struct platform_device *pdev)
    @@ -182,7 +171,6 @@ static int adc_jack_remove(struct platform_device *pdev)

    free_irq(data->irq, data);
    cancel_work_sync(&data->handler.work);
    - extcon_dev_unregister(&data->edev);

    return 0;
    }
    --
    1.7.9.5


    \
     
     \ /
      Last update: 2014-04-17 15:01    [W:4.698 / U:0.204 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site