Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ebeb021a authored by Sachin Kamat's avatar Sachin Kamat Committed by Jonathan Cameron
Browse files

iio: exynos_adc: Use devm_iio_device_alloc



Using devm_iio_device_alloc makes code simpler.

Signed-off-by: default avatarSachin Kamat <sachin.kamat@linaro.org>
Cc: Naveen Krishna Chatradhi <ch.naveen@samsung.com>
Signed-off-by: default avatarJonathan Cameron <jic23@kernel.org>
parent f8837532
Loading
Loading
Loading
Loading
+8 −15
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@
#include <linux/of_irq.h>
#include <linux/regulator/consumer.h>
#include <linux/of_platform.h>
#include <linux/err.h>

#include <linux/iio/iio.h>
#include <linux/iio/machine.h>
@@ -261,7 +262,7 @@ static int exynos_adc_probe(struct platform_device *pdev)
	if (!np)
		return ret;

	indio_dev = iio_device_alloc(sizeof(struct exynos_adc));
	indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(struct exynos_adc));
	if (!indio_dev) {
		dev_err(&pdev->dev, "failed allocating iio device\n");
		return -ENOMEM;
@@ -271,23 +272,18 @@ static int exynos_adc_probe(struct platform_device *pdev)

	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	info->regs = devm_ioremap_resource(&pdev->dev, mem);
	if (IS_ERR(info->regs)) {
		ret = PTR_ERR(info->regs);
		goto err_iio;
	}
	if (IS_ERR(info->regs))
		return PTR_ERR(info->regs);

	mem = platform_get_resource(pdev, IORESOURCE_MEM, 1);
	info->enable_reg = devm_ioremap_resource(&pdev->dev, mem);
	if (IS_ERR(info->enable_reg)) {
		ret = PTR_ERR(info->enable_reg);
		goto err_iio;
	}
	if (IS_ERR(info->enable_reg))
		return PTR_ERR(info->enable_reg);

	irq = platform_get_irq(pdev, 0);
	if (irq < 0) {
		dev_err(&pdev->dev, "no irq resource?\n");
		ret = irq;
		goto err_iio;
		return irq;
	}

	info->irq = irq;
@@ -299,7 +295,7 @@ static int exynos_adc_probe(struct platform_device *pdev)
	if (ret < 0) {
		dev_err(&pdev->dev, "failed requesting irq, irq = %d\n",
							info->irq);
		goto err_iio;
		return ret;
	}

	writel(1, info->enable_reg);
@@ -365,8 +361,6 @@ static int exynos_adc_probe(struct platform_device *pdev)
	iio_device_unregister(indio_dev);
err_irq:
	free_irq(info->irq, info);
err_iio:
	iio_device_free(indio_dev);
	return ret;
}

@@ -382,7 +376,6 @@ static int exynos_adc_remove(struct platform_device *pdev)
	writel(0, info->enable_reg);
	iio_device_unregister(indio_dev);
	free_irq(info->irq, info);
	iio_device_free(indio_dev);

	return 0;
}