Message ID | 20200628123654.32830-9-jic23@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | iio:adc more of_match_ptr and similar removal | expand |
* Jonathan Cameron <jic23@kernel.org> [200628 12:40]: > From: Jonathan Cameron <Jonathan.Cameron@huawei.com> > > Part of a slow effort to avoid OF specific code in IIO. > > Whilst the main advantages of this are not likely to be seen in this > particular driver (ACPI support via PRP0001) the change proposed > does make things a bit more maintainable and also ensures that > this particular (now) anti-patern is less likely to be cut and > paste into new drivers. Acked-by: Tony Lindgren <tony@atomide.com>
On Mon, 29 Jun 2020 08:21:11 -0700 Tony Lindgren <tony@atomide.com> wrote: > * Jonathan Cameron <jic23@kernel.org> [200628 12:40]: > > From: Jonathan Cameron <Jonathan.Cameron@huawei.com> > > > > Part of a slow effort to avoid OF specific code in IIO. > > > > Whilst the main advantages of this are not likely to be seen in this > > particular driver (ACPI support via PRP0001) the change proposed > > does make things a bit more maintainable and also ensures that > > this particular (now) anti-patern is less likely to be cut and > > paste into new drivers. > > Acked-by: Tony Lindgren <tony@atomide.com> Applied to the togreg branch of iio.git and pushed out as testing for the autobuilders to play with it. Thanks, Jonathan
diff --git a/drivers/iio/adc/cpcap-adc.c b/drivers/iio/adc/cpcap-adc.c index 004e7fee1fb2..cc26cf309638 100644 --- a/drivers/iio/adc/cpcap-adc.c +++ b/drivers/iio/adc/cpcap-adc.c @@ -15,9 +15,9 @@ #include <linux/interrupt.h> #include <linux/kernel.h> #include <linux/module.h> -#include <linux/of.h> -#include <linux/of_platform.h> +#include <linux/mod_devicetable.h> #include <linux/platform_device.h> +#include <linux/property.h> #include <linux/regmap.h> #include <linux/iio/buffer.h> @@ -955,22 +955,10 @@ MODULE_DEVICE_TABLE(of, cpcap_adc_id_table); static int cpcap_adc_probe(struct platform_device *pdev) { - const struct of_device_id *match; struct cpcap_adc *ddata; struct iio_dev *indio_dev; int error; - match = of_match_device(of_match_ptr(cpcap_adc_id_table), - &pdev->dev); - if (!match) - return -EINVAL; - - if (!match->data) { - dev_err(&pdev->dev, "no configuration data found\n"); - - return -ENODEV; - } - indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*ddata)); if (!indio_dev) { dev_err(&pdev->dev, "failed to allocate iio device\n"); @@ -978,7 +966,9 @@ static int cpcap_adc_probe(struct platform_device *pdev) return -ENOMEM; } ddata = iio_priv(indio_dev); - ddata->ato = match->data; + ddata->ato = device_get_match_data(&pdev->dev); + if (!ddata->ato) + return -ENODEV; ddata->dev = &pdev->dev; mutex_init(&ddata->lock); @@ -1027,7 +1017,7 @@ static int cpcap_adc_probe(struct platform_device *pdev) static struct platform_driver cpcap_adc_driver = { .driver = { .name = "cpcap_adc", - .of_match_table = of_match_ptr(cpcap_adc_id_table), + .of_match_table = cpcap_adc_id_table, }, .probe = cpcap_adc_probe, };