On 02/03/2013 12:59 AM, Guenter Roeck wrote:
> Signed-off-by: Guenter Roeck <li...@roeck-us.net>
Applied to togreg branch of iio.git.

Note I'll probably rebase the togreg branch if / when Greg has pulled
last pull request (sent a few mins ago) so as to get a directly
applied fix for this driver.

> ---
>  drivers/iio/adc/max1363.c |   29 ++++++++++-------------------
>  1 file changed, 10 insertions(+), 19 deletions(-)
> 
> diff --git a/drivers/iio/adc/max1363.c b/drivers/iio/adc/max1363.c
> index ef868c9..1353fda 100644
> --- a/drivers/iio/adc/max1363.c
> +++ b/drivers/iio/adc/max1363.c
> @@ -1410,8 +1410,9 @@ static int max1363_alloc_scan_masks(struct iio_dev 
> *indio_dev)
>       unsigned long *masks;
>       int i;
>  
> -     masks = kzalloc(BITS_TO_LONGS(MAX1363_MAX_CHANNELS)*sizeof(long)*
> -                       (st->chip_info->num_modes + 1), GFP_KERNEL);
> +     masks = devm_kzalloc(&indio_dev->dev,
> +                     BITS_TO_LONGS(MAX1363_MAX_CHANNELS) * sizeof(long) *
> +                     (st->chip_info->num_modes + 1), GFP_KERNEL);
>       if (!masks)
>               return -ENOMEM;
>  
> @@ -1546,7 +1547,7 @@ static int max1363_probe(struct i2c_client *client,
>  
>       st = iio_priv(indio_dev);
>  
> -     st->reg = regulator_get(&client->dev, "vcc");
> +     st->reg = devm_regulator_get(&client->dev, "vcc");
>       if (IS_ERR(st->reg)) {
>               ret = PTR_ERR(st->reg);
>               goto error_unregister_map;
> @@ -1554,7 +1555,7 @@ static int max1363_probe(struct i2c_client *client,
>  
>       ret = regulator_enable(st->reg);
>       if (ret)
> -             goto error_put_reg;
> +             goto error_unregister_map;
>  
>       /* this is only used for device removal purposes */
>       i2c_set_clientdata(client, indio_dev);
> @@ -1575,15 +1576,15 @@ static int max1363_probe(struct i2c_client *client,
>       indio_dev->modes = INDIO_DIRECT_MODE;
>       ret = max1363_initial_setup(st);
>       if (ret < 0)
> -             goto error_free_available_scan_masks;
> +             goto error_disable_reg;
>  
>       ret = iio_triggered_buffer_setup(indio_dev, NULL,
>               &max1363_trigger_handler, &max1363_buffered_setup_ops);
>       if (ret)
> -             goto error_free_available_scan_masks;
> +             goto error_disable_reg;
>  
>       if (client->irq) {
> -             ret = request_threaded_irq(st->client->irq,
> +             ret = devm_request_threaded_irq(&client->dev, st->client->irq,
>                                          NULL,
>                                          &max1363_event_handler,
>                                          IRQF_TRIGGER_RISING | IRQF_ONESHOT,
> @@ -1596,20 +1597,14 @@ static int max1363_probe(struct i2c_client *client,
>  
>       ret = iio_device_register(indio_dev);
>       if (ret < 0)
> -             goto error_free_irq;
> +             goto error_uninit_buffer;
>  
>       return 0;
> -error_free_irq:
> -     if (client->irq)
> -             free_irq(st->client->irq, indio_dev);
> +
>  error_uninit_buffer:
>       iio_triggered_buffer_cleanup(indio_dev);
> -error_free_available_scan_masks:
> -     kfree(indio_dev->available_scan_masks);
>  error_disable_reg:
>       regulator_disable(st->reg);
> -error_put_reg:
> -     regulator_put(st->reg);
>  error_unregister_map:
>       iio_map_array_unregister(indio_dev);
>  error_free_device:
> @@ -1624,12 +1619,8 @@ static int max1363_remove(struct i2c_client *client)
>       struct max1363_state *st = iio_priv(indio_dev);
>  
>       iio_device_unregister(indio_dev);
> -     if (client->irq)
> -             free_irq(st->client->irq, indio_dev);
>       iio_triggered_buffer_cleanup(indio_dev);
> -     kfree(indio_dev->available_scan_masks);
>       regulator_disable(st->reg);
> -     regulator_put(st->reg);
>       iio_map_array_unregister(indio_dev);
>       iio_device_free(indio_dev);
>  
> 
_______________________________________________
devicetree-discuss mailing list
devicetree-discuss@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to