diff options
author | Andy Shevchenko <andriy.shevchenko@linux.intel.com> | 2019-12-16 20:38:52 +0300 |
---|---|---|
committer | Jonathan Cameron <Jonathan.Cameron@huawei.com> | 2020-01-14 00:51:52 +0300 |
commit | efc78983d21aeaf692006d42b92a006cdce3ed4d (patch) | |
tree | 0513ad8814ab80486cef5f4633999e57ec95ecf4 /drivers/iio/common | |
parent | e825070f697abddf3b9b0a675ed0ff1884114818 (diff) | |
download | linux-efc78983d21aeaf692006d42b92a006cdce3ed4d.tar.xz |
iio: st_sensors: Drop redundant parameter from st_sensors_of_name_probe()
Since we have access to the struct device_driver and thus to the ID table,
there is no need to supply special parameters to st_sensors_of_name_probe().
Besides that we have a common API to get driver match data, there is
no need to do matching separately for OF and ACPI.
Taking into consideration above, simplify the ST sensors code.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Diffstat (limited to 'drivers/iio/common')
-rw-r--r-- | drivers/iio/common/st_sensors/st_sensors_core.c | 38 | ||||
-rw-r--r-- | drivers/iio/common/st_sensors/st_sensors_i2c.c | 21 |
2 files changed, 17 insertions, 42 deletions
diff --git a/drivers/iio/common/st_sensors/st_sensors_core.c b/drivers/iio/common/st_sensors/st_sensors_core.c index 4a3064fb6cd9..42a71a50650f 100644 --- a/drivers/iio/common/st_sensors/st_sensors_core.c +++ b/drivers/iio/common/st_sensors/st_sensors_core.c @@ -12,6 +12,7 @@ #include <linux/slab.h> #include <linux/delay.h> #include <linux/iio/iio.h> +#include <linux/property.h> #include <linux/regulator/consumer.h> #include <linux/of.h> #include <linux/of_device.h> @@ -340,42 +341,37 @@ static struct st_sensors_platform_data *st_sensors_of_probe(struct device *dev, return pdata; } +#else +static struct st_sensors_platform_data *st_sensors_of_probe(struct device *dev, + struct st_sensors_platform_data *defdata) +{ + return NULL; +} +#endif /** - * st_sensors_of_name_probe() - device tree probe for ST sensor name + * st_sensors_dev_name_probe() - device probe for ST sensor name * @dev: driver model representation of the device. - * @match: the OF match table for the device, containing compatible strings - * but also a .data field with the corresponding internal kernel name - * used by this sensor. * @name: device name buffer reference. * @len: device name buffer length. * - * In effect this function matches a compatible string to an internal kernel + * In effect this function matches an ID to an internal kernel * name for a certain sensor device, so that the rest of the autodetection can * rely on that name from this point on. I2C/SPI devices will be renamed * to match the internal kernel convention. */ -void st_sensors_of_name_probe(struct device *dev, - const struct of_device_id *match, - char *name, int len) +void st_sensors_dev_name_probe(struct device *dev, char *name, int len) { - const struct of_device_id *of_id; + const void *match; - of_id = of_match_device(match, dev); - if (!of_id || !of_id->data) + match = device_get_match_data(dev); + if (!match) return; - /* The name from the OF match takes precedence if present */ - strlcpy(name, of_id->data, len); + /* The name from the match takes precedence if present */ + strlcpy(name, match, len); } -EXPORT_SYMBOL(st_sensors_of_name_probe); -#else -static struct st_sensors_platform_data *st_sensors_of_probe(struct device *dev, - struct st_sensors_platform_data *defdata) -{ - return NULL; -} -#endif +EXPORT_SYMBOL(st_sensors_dev_name_probe); int st_sensors_init_sensor(struct iio_dev *indio_dev, struct st_sensors_platform_data *pdata) diff --git a/drivers/iio/common/st_sensors/st_sensors_i2c.c b/drivers/iio/common/st_sensors/st_sensors_i2c.c index aa89d54a7c59..286830fb5d35 100644 --- a/drivers/iio/common/st_sensors/st_sensors_i2c.c +++ b/drivers/iio/common/st_sensors/st_sensors_i2c.c @@ -11,8 +11,6 @@ #include <linux/module.h> #include <linux/slab.h> #include <linux/iio/iio.h> -#include <linux/of_device.h> -#include <linux/acpi.h> #include <linux/regmap.h> #include <linux/iio/common/st_sensors_i2c.h> @@ -68,25 +66,6 @@ int st_sensors_i2c_configure(struct iio_dev *indio_dev, } EXPORT_SYMBOL(st_sensors_i2c_configure); -#ifdef CONFIG_ACPI -int st_sensors_match_acpi_device(struct device *dev) -{ - const struct acpi_device_id *acpi_id; - kernel_ulong_t driver_data = 0; - - if (ACPI_HANDLE(dev)) { - acpi_id = acpi_match_device(dev->driver->acpi_match_table, dev); - if (!acpi_id) { - dev_err(dev, "No driver data\n"); - return -EINVAL; - } - driver_data = acpi_id->driver_data; - } - return driver_data; -} -EXPORT_SYMBOL(st_sensors_match_acpi_device); -#endif - MODULE_AUTHOR("Denis Ciocca <denis.ciocca@st.com>"); MODULE_DESCRIPTION("STMicroelectronics ST-sensors i2c driver"); MODULE_LICENSE("GPL v2"); |