* [PATCH v4 1/8] iio: set default trig->dev.parent
2021-03-09 19:36 [PATCH v4 0/8] iio: Set default trigger device parent Gwendal Grignou
@ 2021-03-09 19:36 ` Gwendal Grignou
2021-03-10 8:05 ` Alexandru Ardelean
2021-03-09 19:36 ` [PATCH v4 2/8] iio: fix devm_iio_trigger_alloc with parent.cocci Gwendal Grignou
` (6 subsequent siblings)
7 siblings, 1 reply; 15+ messages in thread
From: Gwendal Grignou @ 2021-03-09 19:36 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
When allocated with [devm_]iio_trigger_alloc(), set trig device parent to
the device the trigger is allocated for by default.
It can always be reassigned in the probe routine.
Change iio_trigger_alloc() API to add the device pointer to be coherent
with devm_iio_trigger_alloc, using similar interface to
iio_device_alloc().
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
Changes in v4:
- Allow lines to be greater than 80 characters.
- Improve alignment.
Changes in v3:
- xilinx-xadc-core.c is not using iio_trigger_alloc anymore.
- use parent as argumnet to be consistent with iio_device_alloc().
drivers/iio/accel/bma180.c | 3 +-
drivers/iio/adc/ad_sigma_delta.c | 6 ++--
drivers/iio/adc/at91_adc.c | 3 +-
.../common/hid-sensors/hid-sensor-trigger.c | 4 +--
.../common/st_sensors/st_sensors_trigger.c | 4 +--
drivers/iio/gyro/itg3200_buffer.c | 3 +-
drivers/iio/industrialio-trigger.c | 34 +++++++++++--------
drivers/iio/trigger/iio-trig-hrtimer.c | 2 +-
drivers/iio/trigger/iio-trig-interrupt.c | 2 +-
drivers/iio/trigger/iio-trig-loop.c | 2 +-
drivers/iio/trigger/iio-trig-sysfs.c | 3 +-
include/linux/iio/iio.h | 2 +-
include/linux/iio/trigger.h | 3 +-
13 files changed, 37 insertions(+), 34 deletions(-)
diff --git a/drivers/iio/accel/bma180.c b/drivers/iio/accel/bma180.c
index 71f85a3e525b2..b8a7469cdae41 100644
--- a/drivers/iio/accel/bma180.c
+++ b/drivers/iio/accel/bma180.c
@@ -1044,7 +1044,7 @@ static int bma180_probe(struct i2c_client *client,
indio_dev->info = &bma180_info;
if (client->irq > 0) {
- data->trig = iio_trigger_alloc("%s-dev%d", indio_dev->name,
+ data->trig = iio_trigger_alloc(dev, "%s-dev%d", indio_dev->name,
indio_dev->id);
if (!data->trig) {
ret = -ENOMEM;
@@ -1059,7 +1059,6 @@ static int bma180_probe(struct i2c_client *client,
goto err_trigger_free;
}
- data->trig->dev.parent = dev;
data->trig->ops = &bma180_trigger_ops;
iio_trigger_set_drvdata(data->trig, indio_dev);
indio_dev->trig = iio_trigger_get(data->trig);
diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c
index 3a6f239d4acca..9289812c0a946 100644
--- a/drivers/iio/adc/ad_sigma_delta.c
+++ b/drivers/iio/adc/ad_sigma_delta.c
@@ -475,8 +475,9 @@ static int ad_sd_probe_trigger(struct iio_dev *indio_dev)
struct ad_sigma_delta *sigma_delta = iio_device_get_drvdata(indio_dev);
int ret;
- sigma_delta->trig = iio_trigger_alloc("%s-dev%d", indio_dev->name,
- indio_dev->id);
+ sigma_delta->trig = iio_trigger_alloc(&sigma_delta->spi->dev,
+ "%s-dev%d", indio_dev->name,
+ indio_dev->id);
if (sigma_delta->trig == NULL) {
ret = -ENOMEM;
goto error_ret;
@@ -496,7 +497,6 @@ static int ad_sd_probe_trigger(struct iio_dev *indio_dev)
sigma_delta->irq_dis = true;
disable_irq_nosync(sigma_delta->spi->irq);
}
- sigma_delta->trig->dev.parent = &sigma_delta->spi->dev;
iio_trigger_set_drvdata(sigma_delta->trig, sigma_delta);
ret = iio_trigger_register(sigma_delta->trig);
diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
index 70750abb5dead..0b5f0c91d0d73 100644
--- a/drivers/iio/adc/at91_adc.c
+++ b/drivers/iio/adc/at91_adc.c
@@ -625,12 +625,11 @@ static struct iio_trigger *at91_adc_allocate_trigger(struct iio_dev *idev,
struct iio_trigger *trig;
int ret;
- trig = iio_trigger_alloc("%s-dev%d-%s", idev->name,
+ trig = iio_trigger_alloc(idev->dev.parent, "%s-dev%d-%s", idev->name,
idev->id, trigger->name);
if (trig == NULL)
return NULL;
- trig->dev.parent = idev->dev.parent;
iio_trigger_set_drvdata(trig, idev);
trig->ops = &at91_adc_trigger_ops;
diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
index 064c32bec9c7b..95ddccb44f1c8 100644
--- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
+++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
@@ -255,14 +255,14 @@ int hid_sensor_setup_trigger(struct iio_dev *indio_dev, const char *name,
return ret;
}
- trig = iio_trigger_alloc("%s-dev%d", name, indio_dev->id);
+ trig = iio_trigger_alloc(indio_dev->dev.parent,
+ "%s-dev%d", name, indio_dev->id);
if (trig == NULL) {
dev_err(&indio_dev->dev, "Trigger Allocate Failed\n");
ret = -ENOMEM;
goto error_triggered_buffer_cleanup;
}
- trig->dev.parent = indio_dev->dev.parent;
iio_trigger_set_drvdata(trig, attrb);
trig->ops = &hid_sensor_trigger_ops;
ret = iio_trigger_register(trig);
diff --git a/drivers/iio/common/st_sensors/st_sensors_trigger.c b/drivers/iio/common/st_sensors/st_sensors_trigger.c
index 2dbd2646e44e9..0b511665dee5f 100644
--- a/drivers/iio/common/st_sensors/st_sensors_trigger.c
+++ b/drivers/iio/common/st_sensors/st_sensors_trigger.c
@@ -123,7 +123,8 @@ int st_sensors_allocate_trigger(struct iio_dev *indio_dev,
unsigned long irq_trig;
int err;
- sdata->trig = iio_trigger_alloc("%s-trigger", indio_dev->name);
+ sdata->trig = iio_trigger_alloc(sdata->dev, "%s-trigger",
+ indio_dev->name);
if (sdata->trig == NULL) {
dev_err(&indio_dev->dev, "failed to allocate iio trigger.\n");
return -ENOMEM;
@@ -131,7 +132,6 @@ int st_sensors_allocate_trigger(struct iio_dev *indio_dev,
iio_trigger_set_drvdata(sdata->trig, indio_dev);
sdata->trig->ops = trigger_ops;
- sdata->trig->dev.parent = sdata->dev;
irq_trig = irqd_get_trigger_type(irq_get_irq_data(sdata->irq));
/*
diff --git a/drivers/iio/gyro/itg3200_buffer.c b/drivers/iio/gyro/itg3200_buffer.c
index 1c3c1bd53374a..af0aaa146f0ce 100644
--- a/drivers/iio/gyro/itg3200_buffer.c
+++ b/drivers/iio/gyro/itg3200_buffer.c
@@ -113,7 +113,7 @@ int itg3200_probe_trigger(struct iio_dev *indio_dev)
int ret;
struct itg3200 *st = iio_priv(indio_dev);
- st->trig = iio_trigger_alloc("%s-dev%d", indio_dev->name,
+ st->trig = iio_trigger_alloc(&st->i2c->dev, "%s-dev%d", indio_dev->name,
indio_dev->id);
if (!st->trig)
return -ENOMEM;
@@ -127,7 +127,6 @@ int itg3200_probe_trigger(struct iio_dev *indio_dev)
goto error_free_trig;
- st->trig->dev.parent = &st->i2c->dev;
st->trig->ops = &itg3200_trigger_ops;
iio_trigger_set_drvdata(st->trig, indio_dev);
ret = iio_trigger_register(st->trig);
diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
index ea3c9859b2589..0eba9bd9fa360 100644
--- a/drivers/iio/industrialio-trigger.c
+++ b/drivers/iio/industrialio-trigger.c
@@ -514,8 +514,10 @@ static void iio_trig_subirqunmask(struct irq_data *d)
trig->subirqs[d->irq - trig->subirq_base].enabled = true;
}
-static __printf(1, 0)
-struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
+static __printf(2, 0)
+struct iio_trigger *viio_trigger_alloc(struct device *parent,
+ const char *fmt,
+ va_list vargs)
{
struct iio_trigger *trig;
int i;
@@ -524,6 +526,7 @@ struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
if (!trig)
return NULL;
+ trig->dev.parent = parent;
trig->dev.type = &iio_trig_type;
trig->dev.bus = &iio_bus_type;
device_initialize(&trig->dev);
@@ -559,13 +562,23 @@ struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
return NULL;
}
-struct iio_trigger *iio_trigger_alloc(const char *fmt, ...)
+/**
+ * iio_trigger_alloc - Allocate a trigger
+ * @parent: Device to allocate iio_trigger for
+ * @fmt: trigger name format. If it includes format
+ * specifiers, the additional arguments following
+ * format are formatted and inserted in the resulting
+ * string replacing their respective specifiers.
+ * RETURNS:
+ * Pointer to allocated iio_trigger on success, NULL on failure.
+ */
+struct iio_trigger *iio_trigger_alloc(struct device *parent, const char *fmt, ...)
{
struct iio_trigger *trig;
va_list vargs;
va_start(vargs, fmt);
- trig = viio_trigger_alloc(fmt, vargs);
+ trig = viio_trigger_alloc(parent, fmt, vargs);
va_end(vargs);
return trig;
@@ -586,20 +599,13 @@ static void devm_iio_trigger_release(struct device *dev, void *res)
/**
* devm_iio_trigger_alloc - Resource-managed iio_trigger_alloc()
- * @dev: Device to allocate iio_trigger for
- * @fmt: trigger name format. If it includes format
- * specifiers, the additional arguments following
- * format are formatted and inserted in the resulting
- * string replacing their respective specifiers.
- *
* Managed iio_trigger_alloc. iio_trigger allocated with this function is
* automatically freed on driver detach.
*
* RETURNS:
* Pointer to allocated iio_trigger on success, NULL on failure.
*/
-struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
- const char *fmt, ...)
+struct iio_trigger *devm_iio_trigger_alloc(struct device *parent, const char *fmt, ...)
{
struct iio_trigger **ptr, *trig;
va_list vargs;
@@ -611,11 +617,11 @@ struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
/* use raw alloc_dr for kmalloc caller tracing */
va_start(vargs, fmt);
- trig = viio_trigger_alloc(fmt, vargs);
+ trig = viio_trigger_alloc(parent, fmt, vargs);
va_end(vargs);
if (trig) {
*ptr = trig;
- devres_add(dev, ptr);
+ devres_add(parent, ptr);
} else {
devres_free(ptr);
}
diff --git a/drivers/iio/trigger/iio-trig-hrtimer.c b/drivers/iio/trigger/iio-trig-hrtimer.c
index 410de837d0417..22940f86003fc 100644
--- a/drivers/iio/trigger/iio-trig-hrtimer.c
+++ b/drivers/iio/trigger/iio-trig-hrtimer.c
@@ -122,7 +122,7 @@ static struct iio_sw_trigger *iio_trig_hrtimer_probe(const char *name)
if (!trig_info)
return ERR_PTR(-ENOMEM);
- trig_info->swt.trigger = iio_trigger_alloc("%s", name);
+ trig_info->swt.trigger = iio_trigger_alloc(NULL, "%s", name);
if (!trig_info->swt.trigger) {
ret = -ENOMEM;
goto err_free_trig_info;
diff --git a/drivers/iio/trigger/iio-trig-interrupt.c b/drivers/iio/trigger/iio-trig-interrupt.c
index 94a487caf4214..f746c460bf2a5 100644
--- a/drivers/iio/trigger/iio-trig-interrupt.c
+++ b/drivers/iio/trigger/iio-trig-interrupt.c
@@ -45,7 +45,7 @@ static int iio_interrupt_trigger_probe(struct platform_device *pdev)
irq = irq_res->start;
- trig = iio_trigger_alloc("irqtrig%d", irq);
+ trig = iio_trigger_alloc(NULL, "irqtrig%d", irq);
if (!trig) {
ret = -ENOMEM;
goto error_ret;
diff --git a/drivers/iio/trigger/iio-trig-loop.c b/drivers/iio/trigger/iio-trig-loop.c
index 4a00668e32583..96ec06bbe546a 100644
--- a/drivers/iio/trigger/iio-trig-loop.c
+++ b/drivers/iio/trigger/iio-trig-loop.c
@@ -84,7 +84,7 @@ static struct iio_sw_trigger *iio_trig_loop_probe(const char *name)
if (!trig_info)
return ERR_PTR(-ENOMEM);
- trig_info->swt.trigger = iio_trigger_alloc("%s", name);
+ trig_info->swt.trigger = iio_trigger_alloc(NULL, "%s", name);
if (!trig_info->swt.trigger) {
ret = -ENOMEM;
goto err_free_trig_info;
diff --git a/drivers/iio/trigger/iio-trig-sysfs.c b/drivers/iio/trigger/iio-trig-sysfs.c
index 0f6b512a5c37b..e9adfff45b39b 100644
--- a/drivers/iio/trigger/iio-trig-sysfs.c
+++ b/drivers/iio/trigger/iio-trig-sysfs.c
@@ -149,7 +149,7 @@ static int iio_sysfs_trigger_probe(int id)
goto out1;
}
t->id = id;
- t->trig = iio_trigger_alloc("sysfstrig%d", id);
+ t->trig = iio_trigger_alloc(&iio_sysfs_trig_dev, "sysfstrig%d", id);
if (!t->trig) {
ret = -ENOMEM;
goto free_t;
@@ -157,7 +157,6 @@ static int iio_sysfs_trigger_probe(int id)
t->trig->dev.groups = iio_sysfs_trigger_attr_groups;
t->trig->ops = &iio_sysfs_trigger_ops;
- t->trig->dev.parent = &iio_sysfs_trig_dev;
iio_trigger_set_drvdata(t->trig, t);
t->work = IRQ_WORK_INIT_HARD(iio_sysfs_trigger_work);
diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
index e4a9822e64950..5ca4b1d33e153 100644
--- a/include/linux/iio/iio.h
+++ b/include/linux/iio/iio.h
@@ -698,7 +698,7 @@ static inline void *iio_priv(const struct iio_dev *indio_dev)
void iio_device_free(struct iio_dev *indio_dev);
struct iio_dev *devm_iio_device_alloc(struct device *parent, int sizeof_priv);
__printf(2, 3)
-struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
+struct iio_trigger *devm_iio_trigger_alloc(struct device *parent,
const char *fmt, ...);
/**
* iio_buffer_enabled() - helper function to test if the buffer is enabled
diff --git a/include/linux/iio/trigger.h b/include/linux/iio/trigger.h
index 055890b6ffcf0..096f68dd2e0ca 100644
--- a/include/linux/iio/trigger.h
+++ b/include/linux/iio/trigger.h
@@ -161,7 +161,8 @@ void iio_trigger_poll_chained(struct iio_trigger *trig);
irqreturn_t iio_trigger_generic_data_rdy_poll(int irq, void *private);
-__printf(1, 2) struct iio_trigger *iio_trigger_alloc(const char *fmt, ...);
+__printf(2, 3)
+struct iio_trigger *iio_trigger_alloc(struct device *parent, const char *fmt, ...);
void iio_trigger_free(struct iio_trigger *trig);
/**
--
2.30.1.766.gb4fecdf3b7-goog
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v4 1/8] iio: set default trig->dev.parent
2021-03-09 19:36 ` [PATCH v4 1/8] iio: set default trig->dev.parent Gwendal Grignou
@ 2021-03-10 8:05 ` Alexandru Ardelean
2021-03-13 18:13 ` Jonathan Cameron
0 siblings, 1 reply; 15+ messages in thread
From: Alexandru Ardelean @ 2021-03-10 8:05 UTC (permalink / raw)
To: Gwendal Grignou
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Tue, Mar 9, 2021 at 9:36 PM Gwendal Grignou <gwendal@chromium.org> wrote:
>
> When allocated with [devm_]iio_trigger_alloc(), set trig device parent to
> the device the trigger is allocated for by default.
>
> It can always be reassigned in the probe routine.
>
> Change iio_trigger_alloc() API to add the device pointer to be coherent
> with devm_iio_trigger_alloc, using similar interface to
> iio_device_alloc().
Some trigger parents are being removed in this patch, vs being removed
in a separate patch [as done in other drivers].
My only note is that this should be a bit more consistent.
i.e. All parents removed in this patch, or all parents removed in
separate patches; right now, it's a mix of both
Maybe it's a good idea to squash the removal of all parent assignments
in this patch to see easier when they get moved as parameters of
{devm_}iio_trigger_alloc().
There aren't too many assignments of parents to triggers to make a
single patch be difficult to review;
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
> Changes in v4:
> - Allow lines to be greater than 80 characters.
> - Improve alignment.
>
> Changes in v3:
> - xilinx-xadc-core.c is not using iio_trigger_alloc anymore.
> - use parent as argumnet to be consistent with iio_device_alloc().
>
> drivers/iio/accel/bma180.c | 3 +-
> drivers/iio/adc/ad_sigma_delta.c | 6 ++--
> drivers/iio/adc/at91_adc.c | 3 +-
> .../common/hid-sensors/hid-sensor-trigger.c | 4 +--
> .../common/st_sensors/st_sensors_trigger.c | 4 +--
> drivers/iio/gyro/itg3200_buffer.c | 3 +-
> drivers/iio/industrialio-trigger.c | 34 +++++++++++--------
> drivers/iio/trigger/iio-trig-hrtimer.c | 2 +-
> drivers/iio/trigger/iio-trig-interrupt.c | 2 +-
> drivers/iio/trigger/iio-trig-loop.c | 2 +-
> drivers/iio/trigger/iio-trig-sysfs.c | 3 +-
> include/linux/iio/iio.h | 2 +-
> include/linux/iio/trigger.h | 3 +-
> 13 files changed, 37 insertions(+), 34 deletions(-)
>
> diff --git a/drivers/iio/accel/bma180.c b/drivers/iio/accel/bma180.c
> index 71f85a3e525b2..b8a7469cdae41 100644
> --- a/drivers/iio/accel/bma180.c
> +++ b/drivers/iio/accel/bma180.c
> @@ -1044,7 +1044,7 @@ static int bma180_probe(struct i2c_client *client,
> indio_dev->info = &bma180_info;
>
> if (client->irq > 0) {
> - data->trig = iio_trigger_alloc("%s-dev%d", indio_dev->name,
> + data->trig = iio_trigger_alloc(dev, "%s-dev%d", indio_dev->name,
> indio_dev->id);
> if (!data->trig) {
> ret = -ENOMEM;
> @@ -1059,7 +1059,6 @@ static int bma180_probe(struct i2c_client *client,
> goto err_trigger_free;
> }
>
> - data->trig->dev.parent = dev;
> data->trig->ops = &bma180_trigger_ops;
> iio_trigger_set_drvdata(data->trig, indio_dev);
> indio_dev->trig = iio_trigger_get(data->trig);
> diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c
> index 3a6f239d4acca..9289812c0a946 100644
> --- a/drivers/iio/adc/ad_sigma_delta.c
> +++ b/drivers/iio/adc/ad_sigma_delta.c
> @@ -475,8 +475,9 @@ static int ad_sd_probe_trigger(struct iio_dev *indio_dev)
> struct ad_sigma_delta *sigma_delta = iio_device_get_drvdata(indio_dev);
> int ret;
>
> - sigma_delta->trig = iio_trigger_alloc("%s-dev%d", indio_dev->name,
> - indio_dev->id);
> + sigma_delta->trig = iio_trigger_alloc(&sigma_delta->spi->dev,
> + "%s-dev%d", indio_dev->name,
> + indio_dev->id);
> if (sigma_delta->trig == NULL) {
> ret = -ENOMEM;
> goto error_ret;
> @@ -496,7 +497,6 @@ static int ad_sd_probe_trigger(struct iio_dev *indio_dev)
> sigma_delta->irq_dis = true;
> disable_irq_nosync(sigma_delta->spi->irq);
> }
> - sigma_delta->trig->dev.parent = &sigma_delta->spi->dev;
> iio_trigger_set_drvdata(sigma_delta->trig, sigma_delta);
>
> ret = iio_trigger_register(sigma_delta->trig);
> diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
> index 70750abb5dead..0b5f0c91d0d73 100644
> --- a/drivers/iio/adc/at91_adc.c
> +++ b/drivers/iio/adc/at91_adc.c
> @@ -625,12 +625,11 @@ static struct iio_trigger *at91_adc_allocate_trigger(struct iio_dev *idev,
> struct iio_trigger *trig;
> int ret;
>
> - trig = iio_trigger_alloc("%s-dev%d-%s", idev->name,
> + trig = iio_trigger_alloc(idev->dev.parent, "%s-dev%d-%s", idev->name,
> idev->id, trigger->name);
> if (trig == NULL)
> return NULL;
>
> - trig->dev.parent = idev->dev.parent;
> iio_trigger_set_drvdata(trig, idev);
> trig->ops = &at91_adc_trigger_ops;
>
> diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> index 064c32bec9c7b..95ddccb44f1c8 100644
> --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> @@ -255,14 +255,14 @@ int hid_sensor_setup_trigger(struct iio_dev *indio_dev, const char *name,
> return ret;
> }
>
> - trig = iio_trigger_alloc("%s-dev%d", name, indio_dev->id);
> + trig = iio_trigger_alloc(indio_dev->dev.parent,
> + "%s-dev%d", name, indio_dev->id);
> if (trig == NULL) {
> dev_err(&indio_dev->dev, "Trigger Allocate Failed\n");
> ret = -ENOMEM;
> goto error_triggered_buffer_cleanup;
> }
>
> - trig->dev.parent = indio_dev->dev.parent;
> iio_trigger_set_drvdata(trig, attrb);
> trig->ops = &hid_sensor_trigger_ops;
> ret = iio_trigger_register(trig);
> diff --git a/drivers/iio/common/st_sensors/st_sensors_trigger.c b/drivers/iio/common/st_sensors/st_sensors_trigger.c
> index 2dbd2646e44e9..0b511665dee5f 100644
> --- a/drivers/iio/common/st_sensors/st_sensors_trigger.c
> +++ b/drivers/iio/common/st_sensors/st_sensors_trigger.c
> @@ -123,7 +123,8 @@ int st_sensors_allocate_trigger(struct iio_dev *indio_dev,
> unsigned long irq_trig;
> int err;
>
> - sdata->trig = iio_trigger_alloc("%s-trigger", indio_dev->name);
> + sdata->trig = iio_trigger_alloc(sdata->dev, "%s-trigger",
> + indio_dev->name);
> if (sdata->trig == NULL) {
> dev_err(&indio_dev->dev, "failed to allocate iio trigger.\n");
> return -ENOMEM;
> @@ -131,7 +132,6 @@ int st_sensors_allocate_trigger(struct iio_dev *indio_dev,
>
> iio_trigger_set_drvdata(sdata->trig, indio_dev);
> sdata->trig->ops = trigger_ops;
> - sdata->trig->dev.parent = sdata->dev;
>
> irq_trig = irqd_get_trigger_type(irq_get_irq_data(sdata->irq));
> /*
> diff --git a/drivers/iio/gyro/itg3200_buffer.c b/drivers/iio/gyro/itg3200_buffer.c
> index 1c3c1bd53374a..af0aaa146f0ce 100644
> --- a/drivers/iio/gyro/itg3200_buffer.c
> +++ b/drivers/iio/gyro/itg3200_buffer.c
> @@ -113,7 +113,7 @@ int itg3200_probe_trigger(struct iio_dev *indio_dev)
> int ret;
> struct itg3200 *st = iio_priv(indio_dev);
>
> - st->trig = iio_trigger_alloc("%s-dev%d", indio_dev->name,
> + st->trig = iio_trigger_alloc(&st->i2c->dev, "%s-dev%d", indio_dev->name,
> indio_dev->id);
> if (!st->trig)
> return -ENOMEM;
> @@ -127,7 +127,6 @@ int itg3200_probe_trigger(struct iio_dev *indio_dev)
> goto error_free_trig;
>
>
> - st->trig->dev.parent = &st->i2c->dev;
> st->trig->ops = &itg3200_trigger_ops;
> iio_trigger_set_drvdata(st->trig, indio_dev);
> ret = iio_trigger_register(st->trig);
> diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
> index ea3c9859b2589..0eba9bd9fa360 100644
> --- a/drivers/iio/industrialio-trigger.c
> +++ b/drivers/iio/industrialio-trigger.c
> @@ -514,8 +514,10 @@ static void iio_trig_subirqunmask(struct irq_data *d)
> trig->subirqs[d->irq - trig->subirq_base].enabled = true;
> }
>
> -static __printf(1, 0)
> -struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
> +static __printf(2, 0)
> +struct iio_trigger *viio_trigger_alloc(struct device *parent,
> + const char *fmt,
> + va_list vargs)
> {
> struct iio_trigger *trig;
> int i;
> @@ -524,6 +526,7 @@ struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
> if (!trig)
> return NULL;
>
> + trig->dev.parent = parent;
> trig->dev.type = &iio_trig_type;
> trig->dev.bus = &iio_bus_type;
> device_initialize(&trig->dev);
> @@ -559,13 +562,23 @@ struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
> return NULL;
> }
>
> -struct iio_trigger *iio_trigger_alloc(const char *fmt, ...)
> +/**
> + * iio_trigger_alloc - Allocate a trigger
> + * @parent: Device to allocate iio_trigger for
> + * @fmt: trigger name format. If it includes format
> + * specifiers, the additional arguments following
> + * format are formatted and inserted in the resulting
> + * string replacing their respective specifiers.
> + * RETURNS:
> + * Pointer to allocated iio_trigger on success, NULL on failure.
> + */
> +struct iio_trigger *iio_trigger_alloc(struct device *parent, const char *fmt, ...)
> {
> struct iio_trigger *trig;
> va_list vargs;
>
> va_start(vargs, fmt);
> - trig = viio_trigger_alloc(fmt, vargs);
> + trig = viio_trigger_alloc(parent, fmt, vargs);
> va_end(vargs);
>
> return trig;
> @@ -586,20 +599,13 @@ static void devm_iio_trigger_release(struct device *dev, void *res)
>
> /**
> * devm_iio_trigger_alloc - Resource-managed iio_trigger_alloc()
> - * @dev: Device to allocate iio_trigger for
> - * @fmt: trigger name format. If it includes format
> - * specifiers, the additional arguments following
> - * format are formatted and inserted in the resulting
> - * string replacing their respective specifiers.
> - *
> * Managed iio_trigger_alloc. iio_trigger allocated with this function is
> * automatically freed on driver detach.
> *
> * RETURNS:
> * Pointer to allocated iio_trigger on success, NULL on failure.
> */
> -struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
> - const char *fmt, ...)
> +struct iio_trigger *devm_iio_trigger_alloc(struct device *parent, const char *fmt, ...)
> {
> struct iio_trigger **ptr, *trig;
> va_list vargs;
> @@ -611,11 +617,11 @@ struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
>
> /* use raw alloc_dr for kmalloc caller tracing */
> va_start(vargs, fmt);
> - trig = viio_trigger_alloc(fmt, vargs);
> + trig = viio_trigger_alloc(parent, fmt, vargs);
> va_end(vargs);
> if (trig) {
> *ptr = trig;
> - devres_add(dev, ptr);
> + devres_add(parent, ptr);
> } else {
> devres_free(ptr);
> }
> diff --git a/drivers/iio/trigger/iio-trig-hrtimer.c b/drivers/iio/trigger/iio-trig-hrtimer.c
> index 410de837d0417..22940f86003fc 100644
> --- a/drivers/iio/trigger/iio-trig-hrtimer.c
> +++ b/drivers/iio/trigger/iio-trig-hrtimer.c
> @@ -122,7 +122,7 @@ static struct iio_sw_trigger *iio_trig_hrtimer_probe(const char *name)
> if (!trig_info)
> return ERR_PTR(-ENOMEM);
>
> - trig_info->swt.trigger = iio_trigger_alloc("%s", name);
> + trig_info->swt.trigger = iio_trigger_alloc(NULL, "%s", name);
> if (!trig_info->swt.trigger) {
> ret = -ENOMEM;
> goto err_free_trig_info;
> diff --git a/drivers/iio/trigger/iio-trig-interrupt.c b/drivers/iio/trigger/iio-trig-interrupt.c
> index 94a487caf4214..f746c460bf2a5 100644
> --- a/drivers/iio/trigger/iio-trig-interrupt.c
> +++ b/drivers/iio/trigger/iio-trig-interrupt.c
> @@ -45,7 +45,7 @@ static int iio_interrupt_trigger_probe(struct platform_device *pdev)
>
> irq = irq_res->start;
>
> - trig = iio_trigger_alloc("irqtrig%d", irq);
> + trig = iio_trigger_alloc(NULL, "irqtrig%d", irq);
> if (!trig) {
> ret = -ENOMEM;
> goto error_ret;
> diff --git a/drivers/iio/trigger/iio-trig-loop.c b/drivers/iio/trigger/iio-trig-loop.c
> index 4a00668e32583..96ec06bbe546a 100644
> --- a/drivers/iio/trigger/iio-trig-loop.c
> +++ b/drivers/iio/trigger/iio-trig-loop.c
> @@ -84,7 +84,7 @@ static struct iio_sw_trigger *iio_trig_loop_probe(const char *name)
> if (!trig_info)
> return ERR_PTR(-ENOMEM);
>
> - trig_info->swt.trigger = iio_trigger_alloc("%s", name);
> + trig_info->swt.trigger = iio_trigger_alloc(NULL, "%s", name);
> if (!trig_info->swt.trigger) {
> ret = -ENOMEM;
> goto err_free_trig_info;
> diff --git a/drivers/iio/trigger/iio-trig-sysfs.c b/drivers/iio/trigger/iio-trig-sysfs.c
> index 0f6b512a5c37b..e9adfff45b39b 100644
> --- a/drivers/iio/trigger/iio-trig-sysfs.c
> +++ b/drivers/iio/trigger/iio-trig-sysfs.c
> @@ -149,7 +149,7 @@ static int iio_sysfs_trigger_probe(int id)
> goto out1;
> }
> t->id = id;
> - t->trig = iio_trigger_alloc("sysfstrig%d", id);
> + t->trig = iio_trigger_alloc(&iio_sysfs_trig_dev, "sysfstrig%d", id);
> if (!t->trig) {
> ret = -ENOMEM;
> goto free_t;
> @@ -157,7 +157,6 @@ static int iio_sysfs_trigger_probe(int id)
>
> t->trig->dev.groups = iio_sysfs_trigger_attr_groups;
> t->trig->ops = &iio_sysfs_trigger_ops;
> - t->trig->dev.parent = &iio_sysfs_trig_dev;
> iio_trigger_set_drvdata(t->trig, t);
>
> t->work = IRQ_WORK_INIT_HARD(iio_sysfs_trigger_work);
> diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
> index e4a9822e64950..5ca4b1d33e153 100644
> --- a/include/linux/iio/iio.h
> +++ b/include/linux/iio/iio.h
> @@ -698,7 +698,7 @@ static inline void *iio_priv(const struct iio_dev *indio_dev)
> void iio_device_free(struct iio_dev *indio_dev);
> struct iio_dev *devm_iio_device_alloc(struct device *parent, int sizeof_priv);
> __printf(2, 3)
> -struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
> +struct iio_trigger *devm_iio_trigger_alloc(struct device *parent,
> const char *fmt, ...);
> /**
> * iio_buffer_enabled() - helper function to test if the buffer is enabled
> diff --git a/include/linux/iio/trigger.h b/include/linux/iio/trigger.h
> index 055890b6ffcf0..096f68dd2e0ca 100644
> --- a/include/linux/iio/trigger.h
> +++ b/include/linux/iio/trigger.h
> @@ -161,7 +161,8 @@ void iio_trigger_poll_chained(struct iio_trigger *trig);
>
> irqreturn_t iio_trigger_generic_data_rdy_poll(int irq, void *private);
>
> -__printf(1, 2) struct iio_trigger *iio_trigger_alloc(const char *fmt, ...);
> +__printf(2, 3)
> +struct iio_trigger *iio_trigger_alloc(struct device *parent, const char *fmt, ...);
> void iio_trigger_free(struct iio_trigger *trig);
>
> /**
> --
> 2.30.1.766.gb4fecdf3b7-goog
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: [PATCH v4 1/8] iio: set default trig->dev.parent
2021-03-10 8:05 ` Alexandru Ardelean
@ 2021-03-13 18:13 ` Jonathan Cameron
0 siblings, 0 replies; 15+ messages in thread
From: Jonathan Cameron @ 2021-03-13 18:13 UTC (permalink / raw)
To: Alexandru Ardelean
Cc: Gwendal Grignou, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Wed, 10 Mar 2021 10:05:58 +0200
Alexandru Ardelean <ardeleanalex@gmail.com> wrote:
> On Tue, Mar 9, 2021 at 9:36 PM Gwendal Grignou <gwendal@chromium.org> wrote:
> >
> > When allocated with [devm_]iio_trigger_alloc(), set trig device parent to
> > the device the trigger is allocated for by default.
> >
> > It can always be reassigned in the probe routine.
> >
> > Change iio_trigger_alloc() API to add the device pointer to be coherent
> > with devm_iio_trigger_alloc, using similar interface to
> > iio_device_alloc().
>
> Some trigger parents are being removed in this patch, vs being removed
> in a separate patch [as done in other drivers].
> My only note is that this should be a bit more consistent.
> i.e. All parents removed in this patch, or all parents removed in
> separate patches; right now, it's a mix of both
>
> Maybe it's a good idea to squash the removal of all parent assignments
> in this patch to see easier when they get moved as parameters of
> {devm_}iio_trigger_alloc().
> There aren't too many assignments of parents to triggers to make a
> single patch be difficult to review;
Agreed, though it's not something I feel that strongly about given
we are already in this state.
As such, I'm going to take these as they are in the interests
of saving review / editing time.
Applied to the togreg branch of iio.git and pushed out as testing
for the autobuilders to see if we missed anything.
Thanks,
Jonathan
>
One comment inline.
> >
> > Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> > ---
> > Changes in v4:
> > - Allow lines to be greater than 80 characters.
> > - Improve alignment.
> >
> > Changes in v3:
> > - xilinx-xadc-core.c is not using iio_trigger_alloc anymore.
> > - use parent as argumnet to be consistent with iio_device_alloc().
> >
> > drivers/iio/accel/bma180.c | 3 +-
> > drivers/iio/adc/ad_sigma_delta.c | 6 ++--
> > drivers/iio/adc/at91_adc.c | 3 +-
> > .../common/hid-sensors/hid-sensor-trigger.c | 4 +--
> > .../common/st_sensors/st_sensors_trigger.c | 4 +--
> > drivers/iio/gyro/itg3200_buffer.c | 3 +-
> > drivers/iio/industrialio-trigger.c | 34 +++++++++++--------
> > drivers/iio/trigger/iio-trig-hrtimer.c | 2 +-
> > drivers/iio/trigger/iio-trig-interrupt.c | 2 +-
> > drivers/iio/trigger/iio-trig-loop.c | 2 +-
> > drivers/iio/trigger/iio-trig-sysfs.c | 3 +-
> > include/linux/iio/iio.h | 2 +-
> > include/linux/iio/trigger.h | 3 +-
> > 13 files changed, 37 insertions(+), 34 deletions(-)
> >
> > diff --git a/drivers/iio/accel/bma180.c b/drivers/iio/accel/bma180.c
> > index 71f85a3e525b2..b8a7469cdae41 100644
> > --- a/drivers/iio/accel/bma180.c
> > +++ b/drivers/iio/accel/bma180.c
> > @@ -1044,7 +1044,7 @@ static int bma180_probe(struct i2c_client *client,
> > indio_dev->info = &bma180_info;
> >
> > if (client->irq > 0) {
> > - data->trig = iio_trigger_alloc("%s-dev%d", indio_dev->name,
> > + data->trig = iio_trigger_alloc(dev, "%s-dev%d", indio_dev->name,
> > indio_dev->id);
> > if (!data->trig) {
> > ret = -ENOMEM;
> > @@ -1059,7 +1059,6 @@ static int bma180_probe(struct i2c_client *client,
> > goto err_trigger_free;
> > }
> >
> > - data->trig->dev.parent = dev;
> > data->trig->ops = &bma180_trigger_ops;
> > iio_trigger_set_drvdata(data->trig, indio_dev);
> > indio_dev->trig = iio_trigger_get(data->trig);
> > diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c
> > index 3a6f239d4acca..9289812c0a946 100644
> > --- a/drivers/iio/adc/ad_sigma_delta.c
> > +++ b/drivers/iio/adc/ad_sigma_delta.c
> > @@ -475,8 +475,9 @@ static int ad_sd_probe_trigger(struct iio_dev *indio_dev)
> > struct ad_sigma_delta *sigma_delta = iio_device_get_drvdata(indio_dev);
> > int ret;
> >
> > - sigma_delta->trig = iio_trigger_alloc("%s-dev%d", indio_dev->name,
> > - indio_dev->id);
> > + sigma_delta->trig = iio_trigger_alloc(&sigma_delta->spi->dev,
> > + "%s-dev%d", indio_dev->name,
> > + indio_dev->id);
> > if (sigma_delta->trig == NULL) {
> > ret = -ENOMEM;
> > goto error_ret;
> > @@ -496,7 +497,6 @@ static int ad_sd_probe_trigger(struct iio_dev *indio_dev)
> > sigma_delta->irq_dis = true;
> > disable_irq_nosync(sigma_delta->spi->irq);
> > }
> > - sigma_delta->trig->dev.parent = &sigma_delta->spi->dev;
> > iio_trigger_set_drvdata(sigma_delta->trig, sigma_delta);
> >
> > ret = iio_trigger_register(sigma_delta->trig);
> > diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
> > index 70750abb5dead..0b5f0c91d0d73 100644
> > --- a/drivers/iio/adc/at91_adc.c
> > +++ b/drivers/iio/adc/at91_adc.c
> > @@ -625,12 +625,11 @@ static struct iio_trigger *at91_adc_allocate_trigger(struct iio_dev *idev,
> > struct iio_trigger *trig;
> > int ret;
> >
> > - trig = iio_trigger_alloc("%s-dev%d-%s", idev->name,
> > + trig = iio_trigger_alloc(idev->dev.parent, "%s-dev%d-%s", idev->name,
> > idev->id, trigger->name);
> > if (trig == NULL)
> > return NULL;
> >
> > - trig->dev.parent = idev->dev.parent;
> > iio_trigger_set_drvdata(trig, idev);
> > trig->ops = &at91_adc_trigger_ops;
> >
> > diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > index 064c32bec9c7b..95ddccb44f1c8 100644
> > --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > @@ -255,14 +255,14 @@ int hid_sensor_setup_trigger(struct iio_dev *indio_dev, const char *name,
> > return ret;
> > }
> >
> > - trig = iio_trigger_alloc("%s-dev%d", name, indio_dev->id);
> > + trig = iio_trigger_alloc(indio_dev->dev.parent,
> > + "%s-dev%d", name, indio_dev->id);
> > if (trig == NULL) {
> > dev_err(&indio_dev->dev, "Trigger Allocate Failed\n");
> > ret = -ENOMEM;
> > goto error_triggered_buffer_cleanup;
> > }
> >
> > - trig->dev.parent = indio_dev->dev.parent;
> > iio_trigger_set_drvdata(trig, attrb);
> > trig->ops = &hid_sensor_trigger_ops;
> > ret = iio_trigger_register(trig);
> > diff --git a/drivers/iio/common/st_sensors/st_sensors_trigger.c b/drivers/iio/common/st_sensors/st_sensors_trigger.c
> > index 2dbd2646e44e9..0b511665dee5f 100644
> > --- a/drivers/iio/common/st_sensors/st_sensors_trigger.c
> > +++ b/drivers/iio/common/st_sensors/st_sensors_trigger.c
> > @@ -123,7 +123,8 @@ int st_sensors_allocate_trigger(struct iio_dev *indio_dev,
> > unsigned long irq_trig;
> > int err;
> >
> > - sdata->trig = iio_trigger_alloc("%s-trigger", indio_dev->name);
> > + sdata->trig = iio_trigger_alloc(sdata->dev, "%s-trigger",
> > + indio_dev->name);
> > if (sdata->trig == NULL) {
> > dev_err(&indio_dev->dev, "failed to allocate iio trigger.\n");
> > return -ENOMEM;
> > @@ -131,7 +132,6 @@ int st_sensors_allocate_trigger(struct iio_dev *indio_dev,
> >
> > iio_trigger_set_drvdata(sdata->trig, indio_dev);
> > sdata->trig->ops = trigger_ops;
> > - sdata->trig->dev.parent = sdata->dev;
> >
> > irq_trig = irqd_get_trigger_type(irq_get_irq_data(sdata->irq));
> > /*
> > diff --git a/drivers/iio/gyro/itg3200_buffer.c b/drivers/iio/gyro/itg3200_buffer.c
> > index 1c3c1bd53374a..af0aaa146f0ce 100644
> > --- a/drivers/iio/gyro/itg3200_buffer.c
> > +++ b/drivers/iio/gyro/itg3200_buffer.c
> > @@ -113,7 +113,7 @@ int itg3200_probe_trigger(struct iio_dev *indio_dev)
> > int ret;
> > struct itg3200 *st = iio_priv(indio_dev);
> >
> > - st->trig = iio_trigger_alloc("%s-dev%d", indio_dev->name,
> > + st->trig = iio_trigger_alloc(&st->i2c->dev, "%s-dev%d", indio_dev->name,
> > indio_dev->id);
> > if (!st->trig)
> > return -ENOMEM;
> > @@ -127,7 +127,6 @@ int itg3200_probe_trigger(struct iio_dev *indio_dev)
> > goto error_free_trig;
> >
> >
> > - st->trig->dev.parent = &st->i2c->dev;
> > st->trig->ops = &itg3200_trigger_ops;
> > iio_trigger_set_drvdata(st->trig, indio_dev);
> > ret = iio_trigger_register(st->trig);
> > diff --git a/drivers/iio/industrialio-trigger.c b/drivers/iio/industrialio-trigger.c
> > index ea3c9859b2589..0eba9bd9fa360 100644
> > --- a/drivers/iio/industrialio-trigger.c
> > +++ b/drivers/iio/industrialio-trigger.c
> > @@ -514,8 +514,10 @@ static void iio_trig_subirqunmask(struct irq_data *d)
> > trig->subirqs[d->irq - trig->subirq_base].enabled = true;
> > }
> >
> > -static __printf(1, 0)
> > -struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
> > +static __printf(2, 0)
> > +struct iio_trigger *viio_trigger_alloc(struct device *parent,
> > + const char *fmt,
> > + va_list vargs)
> > {
> > struct iio_trigger *trig;
> > int i;
> > @@ -524,6 +526,7 @@ struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
> > if (!trig)
> > return NULL;
> >
> > + trig->dev.parent = parent;
> > trig->dev.type = &iio_trig_type;
> > trig->dev.bus = &iio_bus_type;
> > device_initialize(&trig->dev);
> > @@ -559,13 +562,23 @@ struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
> > return NULL;
> > }
> >
> > -struct iio_trigger *iio_trigger_alloc(const char *fmt, ...)
> > +/**
> > + * iio_trigger_alloc - Allocate a trigger
> > + * @parent: Device to allocate iio_trigger for
> > + * @fmt: trigger name format. If it includes format
> > + * specifiers, the additional arguments following
> > + * format are formatted and inserted in the resulting
> > + * string replacing their respective specifiers.
Technically this should have been a separate patch, but not important,
however....
> > + * RETURNS:
> > + * Pointer to allocated iio_trigger on success, NULL on failure.
> > + */
> > +struct iio_trigger *iio_trigger_alloc(struct device *parent, const char *fmt, ...)
> > {
> > struct iio_trigger *trig;
> > va_list vargs;
> >
> > va_start(vargs, fmt);
> > - trig = viio_trigger_alloc(fmt, vargs);
> > + trig = viio_trigger_alloc(parent, fmt, vargs);
> > va_end(vargs);
> >
> > return trig;
> > @@ -586,20 +599,13 @@ static void devm_iio_trigger_release(struct device *dev, void *res)
> >
> > /**
> > * devm_iio_trigger_alloc - Resource-managed iio_trigger_alloc()
> > - * @dev: Device to allocate iio_trigger for
> > - * @fmt: trigger name format. If it includes format
> > - * specifiers, the additional arguments following
> > - * format are formatted and inserted in the resulting
> > - * string replacing their respective specifiers.
> > - *
kernel-doc should be complete, however much it is clearly repeating other
documentation nearby and is obvious.
CHECK drivers/iio/industrialio-trigger.c
drivers/iio/industrialio-trigger.c:609: warning: Function parameter or member 'parent' not described in 'devm_iio_trigger_alloc'
drivers/iio/industrialio-trigger.c:609: warning: Function parameter or member 'fmt' not described in 'devm_iio_trigger_alloc'
If fixed up by grabbing parent description from iio_trigger_alloc() and
putting the fmt one back.
> > * Managed iio_trigger_alloc. iio_trigger allocated with this function is
> > * automatically freed on driver detach.
> > *
> > * RETURNS:
> > * Pointer to allocated iio_trigger on success, NULL on failure.
> > */
> > -struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
> > - const char *fmt, ...)
> > +struct iio_trigger *devm_iio_trigger_alloc(struct device *parent, const char *fmt, ...)
> > {
> > struct iio_trigger **ptr, *trig;
> > va_list vargs;
> > @@ -611,11 +617,11 @@ struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
> >
> > /* use raw alloc_dr for kmalloc caller tracing */
> > va_start(vargs, fmt);
> > - trig = viio_trigger_alloc(fmt, vargs);
> > + trig = viio_trigger_alloc(parent, fmt, vargs);
> > va_end(vargs);
> > if (trig) {
> > *ptr = trig;
> > - devres_add(dev, ptr);
> > + devres_add(parent, ptr);
> > } else {
> > devres_free(ptr);
> > }
> > diff --git a/drivers/iio/trigger/iio-trig-hrtimer.c b/drivers/iio/trigger/iio-trig-hrtimer.c
> > index 410de837d0417..22940f86003fc 100644
> > --- a/drivers/iio/trigger/iio-trig-hrtimer.c
> > +++ b/drivers/iio/trigger/iio-trig-hrtimer.c
> > @@ -122,7 +122,7 @@ static struct iio_sw_trigger *iio_trig_hrtimer_probe(const char *name)
> > if (!trig_info)
> > return ERR_PTR(-ENOMEM);
> >
> > - trig_info->swt.trigger = iio_trigger_alloc("%s", name);
> > + trig_info->swt.trigger = iio_trigger_alloc(NULL, "%s", name);
> > if (!trig_info->swt.trigger) {
> > ret = -ENOMEM;
> > goto err_free_trig_info;
> > diff --git a/drivers/iio/trigger/iio-trig-interrupt.c b/drivers/iio/trigger/iio-trig-interrupt.c
> > index 94a487caf4214..f746c460bf2a5 100644
> > --- a/drivers/iio/trigger/iio-trig-interrupt.c
> > +++ b/drivers/iio/trigger/iio-trig-interrupt.c
> > @@ -45,7 +45,7 @@ static int iio_interrupt_trigger_probe(struct platform_device *pdev)
> >
> > irq = irq_res->start;
> >
> > - trig = iio_trigger_alloc("irqtrig%d", irq);
> > + trig = iio_trigger_alloc(NULL, "irqtrig%d", irq);
> > if (!trig) {
> > ret = -ENOMEM;
> > goto error_ret;
> > diff --git a/drivers/iio/trigger/iio-trig-loop.c b/drivers/iio/trigger/iio-trig-loop.c
> > index 4a00668e32583..96ec06bbe546a 100644
> > --- a/drivers/iio/trigger/iio-trig-loop.c
> > +++ b/drivers/iio/trigger/iio-trig-loop.c
> > @@ -84,7 +84,7 @@ static struct iio_sw_trigger *iio_trig_loop_probe(const char *name)
> > if (!trig_info)
> > return ERR_PTR(-ENOMEM);
> >
> > - trig_info->swt.trigger = iio_trigger_alloc("%s", name);
> > + trig_info->swt.trigger = iio_trigger_alloc(NULL, "%s", name);
> > if (!trig_info->swt.trigger) {
> > ret = -ENOMEM;
> > goto err_free_trig_info;
> > diff --git a/drivers/iio/trigger/iio-trig-sysfs.c b/drivers/iio/trigger/iio-trig-sysfs.c
> > index 0f6b512a5c37b..e9adfff45b39b 100644
> > --- a/drivers/iio/trigger/iio-trig-sysfs.c
> > +++ b/drivers/iio/trigger/iio-trig-sysfs.c
> > @@ -149,7 +149,7 @@ static int iio_sysfs_trigger_probe(int id)
> > goto out1;
> > }
> > t->id = id;
> > - t->trig = iio_trigger_alloc("sysfstrig%d", id);
> > + t->trig = iio_trigger_alloc(&iio_sysfs_trig_dev, "sysfstrig%d", id);
> > if (!t->trig) {
> > ret = -ENOMEM;
> > goto free_t;
> > @@ -157,7 +157,6 @@ static int iio_sysfs_trigger_probe(int id)
> >
> > t->trig->dev.groups = iio_sysfs_trigger_attr_groups;
> > t->trig->ops = &iio_sysfs_trigger_ops;
> > - t->trig->dev.parent = &iio_sysfs_trig_dev;
> > iio_trigger_set_drvdata(t->trig, t);
> >
> > t->work = IRQ_WORK_INIT_HARD(iio_sysfs_trigger_work);
> > diff --git a/include/linux/iio/iio.h b/include/linux/iio/iio.h
> > index e4a9822e64950..5ca4b1d33e153 100644
> > --- a/include/linux/iio/iio.h
> > +++ b/include/linux/iio/iio.h
> > @@ -698,7 +698,7 @@ static inline void *iio_priv(const struct iio_dev *indio_dev)
> > void iio_device_free(struct iio_dev *indio_dev);
> > struct iio_dev *devm_iio_device_alloc(struct device *parent, int sizeof_priv);
> > __printf(2, 3)
> > -struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
> > +struct iio_trigger *devm_iio_trigger_alloc(struct device *parent,
> > const char *fmt, ...);
> > /**
> > * iio_buffer_enabled() - helper function to test if the buffer is enabled
> > diff --git a/include/linux/iio/trigger.h b/include/linux/iio/trigger.h
> > index 055890b6ffcf0..096f68dd2e0ca 100644
> > --- a/include/linux/iio/trigger.h
> > +++ b/include/linux/iio/trigger.h
> > @@ -161,7 +161,8 @@ void iio_trigger_poll_chained(struct iio_trigger *trig);
> >
> > irqreturn_t iio_trigger_generic_data_rdy_poll(int irq, void *private);
> >
> > -__printf(1, 2) struct iio_trigger *iio_trigger_alloc(const char *fmt, ...);
> > +__printf(2, 3)
> > +struct iio_trigger *iio_trigger_alloc(struct device *parent, const char *fmt, ...);
> > void iio_trigger_free(struct iio_trigger *trig);
> >
> > /**
> > --
> > 2.30.1.766.gb4fecdf3b7-goog
> >
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 2/8] iio: fix devm_iio_trigger_alloc with parent.cocci
2021-03-09 19:36 [PATCH v4 0/8] iio: Set default trigger device parent Gwendal Grignou
2021-03-09 19:36 ` [PATCH v4 1/8] iio: set default trig->dev.parent Gwendal Grignou
@ 2021-03-09 19:36 ` Gwendal Grignou
2021-03-09 19:36 ` [PATCH v4 3/8] iio: adis_trigger: Remove code to set trigger parent Gwendal Grignou
` (5 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Gwendal Grignou @ 2021-03-09 19:36 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
Use cocci semantic patch:
@@
expression trigger, P;
@@
trigger = devm_iio_trigger_alloc(P, ...);
...
- trigger->dev.parent = P;
To remove trigger->dev.parent, since it is set by default.
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
No changes in v4.
Changes in v3:
Added a private driver (sx932x) by mistake, removed.
drivers/iio/accel/adxl372.c | 2 --
drivers/iio/accel/bmc150-accel-core.c | 1 -
drivers/iio/accel/kxcjk-1013.c | 2 --
drivers/iio/accel/mma8452.c | 1 -
drivers/iio/accel/mxc4005.c | 1 -
drivers/iio/accel/stk8312.c | 1 -
drivers/iio/accel/stk8ba50.c | 1 -
drivers/iio/adc/ad7606.c | 1 -
drivers/iio/adc/ad7766.c | 1 -
drivers/iio/adc/ad7768-1.c | 1 -
drivers/iio/adc/max1027.c | 1 -
drivers/iio/chemical/ccs811.c | 1 -
drivers/iio/chemical/scd30_core.c | 1 -
drivers/iio/gyro/adxrs290.c | 1 -
drivers/iio/gyro/bmg160_core.c | 2 --
drivers/iio/gyro/fxas21002c_core.c | 1 -
drivers/iio/health/afe4403.c | 1 -
drivers/iio/health/afe4404.c | 1 -
drivers/iio/humidity/hts221_buffer.c | 1 -
drivers/iio/imu/kmx61.c | 1 -
drivers/iio/light/rpr0521.c | 1 -
drivers/iio/light/si1145.c | 1 -
drivers/iio/light/st_uvis25_core.c | 1 -
drivers/iio/light/vcnl4000.c | 1 -
drivers/iio/light/vcnl4035.c | 1 -
drivers/iio/magnetometer/bmc150_magn.c | 1 -
drivers/iio/magnetometer/rm3100-core.c | 1 -
drivers/iio/pressure/zpa2326.c | 1 -
drivers/iio/proximity/sx9310.c | 1 -
drivers/iio/proximity/sx9500.c | 1 -
30 files changed, 33 deletions(-)
diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
index 8ba1453b8dbf4..9c9a896a872a0 100644
--- a/drivers/iio/accel/adxl372.c
+++ b/drivers/iio/accel/adxl372.c
@@ -1236,8 +1236,6 @@ int adxl372_probe(struct device *dev, struct regmap *regmap,
st->dready_trig->ops = &adxl372_trigger_ops;
st->peak_datardy_trig->ops = &adxl372_peak_data_trigger_ops;
- st->dready_trig->dev.parent = dev;
- st->peak_datardy_trig->dev.parent = dev;
iio_trigger_set_drvdata(st->dready_trig, indio_dev);
iio_trigger_set_drvdata(st->peak_datardy_trig, indio_dev);
ret = devm_iio_trigger_register(dev, st->dready_trig);
diff --git a/drivers/iio/accel/bmc150-accel-core.c b/drivers/iio/accel/bmc150-accel-core.c
index 7e425ebcd7ea8..2d1b46746db77 100644
--- a/drivers/iio/accel/bmc150-accel-core.c
+++ b/drivers/iio/accel/bmc150-accel-core.c
@@ -1472,7 +1472,6 @@ static int bmc150_accel_triggers_setup(struct iio_dev *indio_dev,
break;
}
- t->indio_trig->dev.parent = dev;
t->indio_trig->ops = &bmc150_accel_trigger_ops;
t->intr = bmc150_accel_triggers[i].intr;
t->data = data;
diff --git a/drivers/iio/accel/kxcjk-1013.c b/drivers/iio/accel/kxcjk-1013.c
index 2fadafc860fd6..45c1faa6ea9d4 100644
--- a/drivers/iio/accel/kxcjk-1013.c
+++ b/drivers/iio/accel/kxcjk-1013.c
@@ -1413,7 +1413,6 @@ static int kxcjk1013_probe(struct i2c_client *client,
goto err_poweroff;
}
- data->dready_trig->dev.parent = &client->dev;
data->dready_trig->ops = &kxcjk1013_trigger_ops;
iio_trigger_set_drvdata(data->dready_trig, indio_dev);
indio_dev->trig = data->dready_trig;
@@ -1422,7 +1421,6 @@ static int kxcjk1013_probe(struct i2c_client *client,
if (ret)
goto err_poweroff;
- data->motion_trig->dev.parent = &client->dev;
data->motion_trig->ops = &kxcjk1013_trigger_ops;
iio_trigger_set_drvdata(data->motion_trig, indio_dev);
ret = iio_trigger_register(data->motion_trig);
diff --git a/drivers/iio/accel/mma8452.c b/drivers/iio/accel/mma8452.c
index b0176d936423d..12dd7c292504a 100644
--- a/drivers/iio/accel/mma8452.c
+++ b/drivers/iio/accel/mma8452.c
@@ -1465,7 +1465,6 @@ static int mma8452_trigger_setup(struct iio_dev *indio_dev)
if (!trig)
return -ENOMEM;
- trig->dev.parent = &data->client->dev;
trig->ops = &mma8452_trigger_ops;
iio_trigger_set_drvdata(trig, indio_dev);
diff --git a/drivers/iio/accel/mxc4005.c b/drivers/iio/accel/mxc4005.c
index 0f8fd687866d4..fb3cbaa62bd87 100644
--- a/drivers/iio/accel/mxc4005.c
+++ b/drivers/iio/accel/mxc4005.c
@@ -450,7 +450,6 @@ static int mxc4005_probe(struct i2c_client *client,
return ret;
}
- data->dready_trig->dev.parent = &client->dev;
data->dready_trig->ops = &mxc4005_trigger_ops;
iio_trigger_set_drvdata(data->dready_trig, indio_dev);
indio_dev->trig = data->dready_trig;
diff --git a/drivers/iio/accel/stk8312.c b/drivers/iio/accel/stk8312.c
index 3b59887a8581b..7c3b70eb3f2db 100644
--- a/drivers/iio/accel/stk8312.c
+++ b/drivers/iio/accel/stk8312.c
@@ -558,7 +558,6 @@ static int stk8312_probe(struct i2c_client *client,
goto err_power_off;
}
- data->dready_trig->dev.parent = &client->dev;
data->dready_trig->ops = &stk8312_trigger_ops;
iio_trigger_set_drvdata(data->dready_trig, indio_dev);
ret = iio_trigger_register(data->dready_trig);
diff --git a/drivers/iio/accel/stk8ba50.c b/drivers/iio/accel/stk8ba50.c
index 3ead378b02c9b..bf0368ce46e18 100644
--- a/drivers/iio/accel/stk8ba50.c
+++ b/drivers/iio/accel/stk8ba50.c
@@ -454,7 +454,6 @@ static int stk8ba50_probe(struct i2c_client *client,
goto err_power_off;
}
- data->dready_trig->dev.parent = &client->dev;
data->dready_trig->ops = &stk8ba50_trigger_ops;
iio_trigger_set_drvdata(data->dready_trig, indio_dev);
ret = iio_trigger_register(data->dready_trig);
diff --git a/drivers/iio/adc/ad7606.c b/drivers/iio/adc/ad7606.c
index ee7b108688b33..0af0bb4d5a7fe 100644
--- a/drivers/iio/adc/ad7606.c
+++ b/drivers/iio/adc/ad7606.c
@@ -668,7 +668,6 @@ int ad7606_probe(struct device *dev, int irq, void __iomem *base_address,
return -ENOMEM;
st->trig->ops = &ad7606_trigger_ops;
- st->trig->dev.parent = dev;
iio_trigger_set_drvdata(st->trig, indio_dev);
ret = devm_iio_trigger_register(dev, st->trig);
if (ret)
diff --git a/drivers/iio/adc/ad7766.c b/drivers/iio/adc/ad7766.c
index b6b6765be7b49..829a3426f2351 100644
--- a/drivers/iio/adc/ad7766.c
+++ b/drivers/iio/adc/ad7766.c
@@ -253,7 +253,6 @@ static int ad7766_probe(struct spi_device *spi)
return -ENOMEM;
ad7766->trig->ops = &ad7766_trigger_ops;
- ad7766->trig->dev.parent = &spi->dev;
iio_trigger_set_drvdata(ad7766->trig, ad7766);
ret = devm_request_irq(&spi->dev, spi->irq, ad7766_irq,
diff --git a/drivers/iio/adc/ad7768-1.c b/drivers/iio/adc/ad7768-1.c
index 5c0cbee032308..c945f1349623f 100644
--- a/drivers/iio/adc/ad7768-1.c
+++ b/drivers/iio/adc/ad7768-1.c
@@ -631,7 +631,6 @@ static int ad7768_probe(struct spi_device *spi)
return -ENOMEM;
st->trig->ops = &ad7768_trigger_ops;
- st->trig->dev.parent = &spi->dev;
iio_trigger_set_drvdata(st->trig, indio_dev);
ret = devm_iio_trigger_register(&spi->dev, st->trig);
if (ret)
diff --git a/drivers/iio/adc/max1027.c b/drivers/iio/adc/max1027.c
index ca1dff3924ff9..e3c8ec107722d 100644
--- a/drivers/iio/adc/max1027.c
+++ b/drivers/iio/adc/max1027.c
@@ -473,7 +473,6 @@ static int max1027_probe(struct spi_device *spi)
}
st->trig->ops = &max1027_trigger_ops;
- st->trig->dev.parent = &spi->dev;
iio_trigger_set_drvdata(st->trig, indio_dev);
ret = devm_iio_trigger_register(&indio_dev->dev,
st->trig);
diff --git a/drivers/iio/chemical/ccs811.c b/drivers/iio/chemical/ccs811.c
index 60dd87e96f5f8..886e96496dbf7 100644
--- a/drivers/iio/chemical/ccs811.c
+++ b/drivers/iio/chemical/ccs811.c
@@ -497,7 +497,6 @@ static int ccs811_probe(struct i2c_client *client,
goto err_poweroff;
}
- data->drdy_trig->dev.parent = &client->dev;
data->drdy_trig->ops = &ccs811_trigger_ops;
iio_trigger_set_drvdata(data->drdy_trig, indio_dev);
indio_dev->trig = data->drdy_trig;
diff --git a/drivers/iio/chemical/scd30_core.c b/drivers/iio/chemical/scd30_core.c
index 4d0d798c7cd34..261c277ac4a59 100644
--- a/drivers/iio/chemical/scd30_core.c
+++ b/drivers/iio/chemical/scd30_core.c
@@ -646,7 +646,6 @@ static int scd30_setup_trigger(struct iio_dev *indio_dev)
return -ENOMEM;
}
- trig->dev.parent = dev;
trig->ops = &scd30_trigger_ops;
iio_trigger_set_drvdata(trig, indio_dev);
diff --git a/drivers/iio/gyro/adxrs290.c b/drivers/iio/gyro/adxrs290.c
index c45d8226cc2b1..cec5e1f17c22a 100644
--- a/drivers/iio/gyro/adxrs290.c
+++ b/drivers/iio/gyro/adxrs290.c
@@ -593,7 +593,6 @@ static int adxrs290_probe_trigger(struct iio_dev *indio_dev)
if (!st->dready_trig)
return -ENOMEM;
- st->dready_trig->dev.parent = &st->spi->dev;
st->dready_trig->ops = &adxrs290_trigger_ops;
iio_trigger_set_drvdata(st->dready_trig, indio_dev);
diff --git a/drivers/iio/gyro/bmg160_core.c b/drivers/iio/gyro/bmg160_core.c
index 029ef4c346046..b11ebd9bb7a41 100644
--- a/drivers/iio/gyro/bmg160_core.c
+++ b/drivers/iio/gyro/bmg160_core.c
@@ -1148,14 +1148,12 @@ int bmg160_core_probe(struct device *dev, struct regmap *regmap, int irq,
if (!data->motion_trig)
return -ENOMEM;
- data->dready_trig->dev.parent = dev;
data->dready_trig->ops = &bmg160_trigger_ops;
iio_trigger_set_drvdata(data->dready_trig, indio_dev);
ret = iio_trigger_register(data->dready_trig);
if (ret)
return ret;
- data->motion_trig->dev.parent = dev;
data->motion_trig->ops = &bmg160_trigger_ops;
iio_trigger_set_drvdata(data->motion_trig, indio_dev);
ret = iio_trigger_register(data->motion_trig);
diff --git a/drivers/iio/gyro/fxas21002c_core.c b/drivers/iio/gyro/fxas21002c_core.c
index 129eead8febc0..1a20c6b88e7db 100644
--- a/drivers/iio/gyro/fxas21002c_core.c
+++ b/drivers/iio/gyro/fxas21002c_core.c
@@ -875,7 +875,6 @@ static int fxas21002c_trigger_probe(struct fxas21002c_data *data)
if (ret < 0)
return ret;
- data->dready_trig->dev.parent = dev;
data->dready_trig->ops = &fxas21002c_trigger_ops;
iio_trigger_set_drvdata(data->dready_trig, indio_dev);
diff --git a/drivers/iio/health/afe4403.c b/drivers/iio/health/afe4403.c
index 38734e4ce3605..1fa8d51d50806 100644
--- a/drivers/iio/health/afe4403.c
+++ b/drivers/iio/health/afe4403.c
@@ -531,7 +531,6 @@ static int afe4403_probe(struct spi_device *spi)
iio_trigger_set_drvdata(afe->trig, indio_dev);
afe->trig->ops = &afe4403_trigger_ops;
- afe->trig->dev.parent = afe->dev;
ret = iio_trigger_register(afe->trig);
if (ret) {
diff --git a/drivers/iio/health/afe4404.c b/drivers/iio/health/afe4404.c
index 61fe4932d81d0..e1476bf79fe2a 100644
--- a/drivers/iio/health/afe4404.c
+++ b/drivers/iio/health/afe4404.c
@@ -538,7 +538,6 @@ static int afe4404_probe(struct i2c_client *client,
iio_trigger_set_drvdata(afe->trig, indio_dev);
afe->trig->ops = &afe4404_trigger_ops;
- afe->trig->dev.parent = afe->dev;
ret = iio_trigger_register(afe->trig);
if (ret) {
diff --git a/drivers/iio/humidity/hts221_buffer.c b/drivers/iio/humidity/hts221_buffer.c
index 95e56917677fa..f29692b9d2db0 100644
--- a/drivers/iio/humidity/hts221_buffer.c
+++ b/drivers/iio/humidity/hts221_buffer.c
@@ -135,7 +135,6 @@ int hts221_allocate_trigger(struct iio_dev *iio_dev)
iio_trigger_set_drvdata(hw->trig, iio_dev);
hw->trig->ops = &hts221_trigger_ops;
- hw->trig->dev.parent = hw->dev;
iio_dev->trig = iio_trigger_get(hw->trig);
return devm_iio_trigger_register(hw->dev, hw->trig);
diff --git a/drivers/iio/imu/kmx61.c b/drivers/iio/imu/kmx61.c
index 4377047d503ab..fc5a60fcfec05 100644
--- a/drivers/iio/imu/kmx61.c
+++ b/drivers/iio/imu/kmx61.c
@@ -1268,7 +1268,6 @@ static struct iio_trigger *kmx61_trigger_setup(struct kmx61_data *data,
if (!trig)
return ERR_PTR(-ENOMEM);
- trig->dev.parent = &data->client->dev;
trig->ops = &kmx61_trigger_ops;
iio_trigger_set_drvdata(trig, indio_dev);
diff --git a/drivers/iio/light/rpr0521.c b/drivers/iio/light/rpr0521.c
index 31224a33bade3..033578f444e4a 100644
--- a/drivers/iio/light/rpr0521.c
+++ b/drivers/iio/light/rpr0521.c
@@ -990,7 +990,6 @@ static int rpr0521_probe(struct i2c_client *client,
ret = -ENOMEM;
goto err_pm_disable;
}
- data->drdy_trigger0->dev.parent = indio_dev->dev.parent;
data->drdy_trigger0->ops = &rpr0521_trigger_ops;
indio_dev->available_scan_masks = rpr0521_available_scan_masks;
iio_trigger_set_drvdata(data->drdy_trigger0, indio_dev);
diff --git a/drivers/iio/light/si1145.c b/drivers/iio/light/si1145.c
index b304801c79163..9b5c99823943a 100644
--- a/drivers/iio/light/si1145.c
+++ b/drivers/iio/light/si1145.c
@@ -1247,7 +1247,6 @@ static int si1145_probe_trigger(struct iio_dev *indio_dev)
if (!trig)
return -ENOMEM;
- trig->dev.parent = &client->dev;
trig->ops = &si1145_trigger_ops;
iio_trigger_set_drvdata(trig, indio_dev);
diff --git a/drivers/iio/light/st_uvis25_core.c b/drivers/iio/light/st_uvis25_core.c
index 1055594b22764..41a2ce5a2d538 100644
--- a/drivers/iio/light/st_uvis25_core.c
+++ b/drivers/iio/light/st_uvis25_core.c
@@ -210,7 +210,6 @@ static int st_uvis25_allocate_trigger(struct iio_dev *iio_dev)
return -ENOMEM;
iio_trigger_set_drvdata(hw->trig, iio_dev);
- hw->trig->dev.parent = dev;
return devm_iio_trigger_register(dev, hw->trig);
}
diff --git a/drivers/iio/light/vcnl4000.c b/drivers/iio/light/vcnl4000.c
index fff4b36b8b58d..2f7916f95689e 100644
--- a/drivers/iio/light/vcnl4000.c
+++ b/drivers/iio/light/vcnl4000.c
@@ -1002,7 +1002,6 @@ static int vcnl4010_probe_trigger(struct iio_dev *indio_dev)
if (!trigger)
return -ENOMEM;
- trigger->dev.parent = &client->dev;
trigger->ops = &vcnl4010_trigger_ops;
iio_trigger_set_drvdata(trigger, indio_dev);
diff --git a/drivers/iio/light/vcnl4035.c b/drivers/iio/light/vcnl4035.c
index 73a28e30dddcc..ae87740d9cef2 100644
--- a/drivers/iio/light/vcnl4035.c
+++ b/drivers/iio/light/vcnl4035.c
@@ -511,7 +511,6 @@ static int vcnl4035_probe_trigger(struct iio_dev *indio_dev)
if (!data->drdy_trigger0)
return -ENOMEM;
- data->drdy_trigger0->dev.parent = indio_dev->dev.parent;
data->drdy_trigger0->ops = &vcnl4035_trigger_ops;
iio_trigger_set_drvdata(data->drdy_trigger0, indio_dev);
ret = devm_iio_trigger_register(indio_dev->dev.parent,
diff --git a/drivers/iio/magnetometer/bmc150_magn.c b/drivers/iio/magnetometer/bmc150_magn.c
index b2f3129e1b4f3..00f9766bad5c5 100644
--- a/drivers/iio/magnetometer/bmc150_magn.c
+++ b/drivers/iio/magnetometer/bmc150_magn.c
@@ -922,7 +922,6 @@ int bmc150_magn_probe(struct device *dev, struct regmap *regmap,
goto err_poweroff;
}
- data->dready_trig->dev.parent = dev;
data->dready_trig->ops = &bmc150_magn_trigger_ops;
iio_trigger_set_drvdata(data->dready_trig, indio_dev);
ret = iio_trigger_register(data->dready_trig);
diff --git a/drivers/iio/magnetometer/rm3100-core.c b/drivers/iio/magnetometer/rm3100-core.c
index 7242897a05e95..dd811da9cb6db 100644
--- a/drivers/iio/magnetometer/rm3100-core.c
+++ b/drivers/iio/magnetometer/rm3100-core.c
@@ -579,7 +579,6 @@ int rm3100_common_probe(struct device *dev, struct regmap *regmap, int irq)
if (!data->drdy_trig)
return -ENOMEM;
- data->drdy_trig->dev.parent = dev;
ret = devm_iio_trigger_register(dev, data->drdy_trig);
if (ret < 0)
return ret;
diff --git a/drivers/iio/pressure/zpa2326.c b/drivers/iio/pressure/zpa2326.c
index 2cecbe0adb3f3..70adff62cd209 100644
--- a/drivers/iio/pressure/zpa2326.c
+++ b/drivers/iio/pressure/zpa2326.c
@@ -1413,7 +1413,6 @@ static int zpa2326_init_managed_trigger(struct device *parent,
return -ENOMEM;
/* Basic setup. */
- trigger->dev.parent = parent;
trigger->ops = &zpa2326_trigger_ops;
private->trigger = trigger;
diff --git a/drivers/iio/proximity/sx9310.c b/drivers/iio/proximity/sx9310.c
index 37fd0b65a0140..394c2afe0f233 100644
--- a/drivers/iio/proximity/sx9310.c
+++ b/drivers/iio/proximity/sx9310.c
@@ -1453,7 +1453,6 @@ static int sx9310_probe(struct i2c_client *client)
if (!data->trig)
return -ENOMEM;
- data->trig->dev.parent = dev;
data->trig->ops = &sx9310_trigger_ops;
iio_trigger_set_drvdata(data->trig, indio_dev);
diff --git a/drivers/iio/proximity/sx9500.c b/drivers/iio/proximity/sx9500.c
index acb821cbad46f..bb42aa5d596ef 100644
--- a/drivers/iio/proximity/sx9500.c
+++ b/drivers/iio/proximity/sx9500.c
@@ -950,7 +950,6 @@ static int sx9500_probe(struct i2c_client *client,
if (!data->trig)
return -ENOMEM;
- data->trig->dev.parent = &client->dev;
data->trig->ops = &sx9500_trigger_ops;
iio_trigger_set_drvdata(data->trig, indio_dev);
--
2.30.1.766.gb4fecdf3b7-goog
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 3/8] iio: adis_trigger: Remove code to set trigger parent
2021-03-09 19:36 [PATCH v4 0/8] iio: Set default trigger device parent Gwendal Grignou
2021-03-09 19:36 ` [PATCH v4 1/8] iio: set default trig->dev.parent Gwendal Grignou
2021-03-09 19:36 ` [PATCH v4 2/8] iio: fix devm_iio_trigger_alloc with parent.cocci Gwendal Grignou
@ 2021-03-09 19:36 ` Gwendal Grignou
2021-03-10 7:55 ` Sa, Nuno
2021-03-09 19:36 ` [PATCH v4 4/8] iio: gp2ap020a00f: " Gwendal Grignou
` (4 subsequent siblings)
7 siblings, 1 reply; 15+ messages in thread
From: Gwendal Grignou @ 2021-03-09 19:36 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
iio_trigger_set_drvdata() sets the trigger device parent to first
argument of viio_trigger_alloc(), no need to do it again in the driver
code.
Remove adis_trigger_setup() to match other drivers where setting the
trigger is usually done in the probe() routine.
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
Changes in v4:
Improve commit message.
No changes in v3.
drivers/iio/imu/adis_trigger.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)
diff --git a/drivers/iio/imu/adis_trigger.c b/drivers/iio/imu/adis_trigger.c
index 64e0ba51cb18e..0f29e56200af3 100644
--- a/drivers/iio/imu/adis_trigger.c
+++ b/drivers/iio/imu/adis_trigger.c
@@ -27,13 +27,6 @@ static const struct iio_trigger_ops adis_trigger_ops = {
.set_trigger_state = &adis_data_rdy_trigger_set_state,
};
-static void adis_trigger_setup(struct adis *adis)
-{
- adis->trig->dev.parent = &adis->spi->dev;
- adis->trig->ops = &adis_trigger_ops;
- iio_trigger_set_drvdata(adis->trig, adis);
-}
-
static int adis_validate_irq_flag(struct adis *adis)
{
/*
@@ -72,7 +65,8 @@ int devm_adis_probe_trigger(struct adis *adis, struct iio_dev *indio_dev)
if (!adis->trig)
return -ENOMEM;
- adis_trigger_setup(adis);
+ adis->trig->ops = &adis_trigger_ops;
+ iio_trigger_set_drvdata(adis->trig, adis);
ret = adis_validate_irq_flag(adis);
if (ret)
--
2.30.1.766.gb4fecdf3b7-goog
^ permalink raw reply related [flat|nested] 15+ messages in thread
* RE: [PATCH v4 3/8] iio: adis_trigger: Remove code to set trigger parent
2021-03-09 19:36 ` [PATCH v4 3/8] iio: adis_trigger: Remove code to set trigger parent Gwendal Grignou
@ 2021-03-10 7:55 ` Sa, Nuno
0 siblings, 0 replies; 15+ messages in thread
From: Sa, Nuno @ 2021-03-10 7:55 UTC (permalink / raw)
To: Gwendal Grignou, jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio
> -----Original Message-----
> From: Gwendal Grignou <gwendal@chromium.org>
> Sent: Tuesday, March 9, 2021 8:36 PM
> To: jic23@kernel.org; lars@metafoo.de;
> andy.shevchenko@gmail.com; ardeleanalex@gmail.com
> Cc: linux-iio@vger.kernel.org; Gwendal Grignou
> <gwendal@chromium.org>
> Subject: [PATCH v4 3/8] iio: adis_trigger: Remove code to set trigger
> parent
>
>
> iio_trigger_set_drvdata() sets the trigger device parent to first
> argument of viio_trigger_alloc(), no need to do it again in the driver
> code.
> Remove adis_trigger_setup() to match other drivers where setting the
> trigger is usually done in the probe() routine.
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
Reviewed-by: Nuno Sa <nuno.sa@analog.com>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 4/8] iio: gp2ap020a00f: Remove code to set trigger parent
2021-03-09 19:36 [PATCH v4 0/8] iio: Set default trigger device parent Gwendal Grignou
` (2 preceding siblings ...)
2021-03-09 19:36 ` [PATCH v4 3/8] iio: adis_trigger: Remove code to set trigger parent Gwendal Grignou
@ 2021-03-09 19:36 ` Gwendal Grignou
2021-03-09 19:36 ` [PATCH v4 5/8] iio: lmp91000: " Gwendal Grignou
` (3 subsequent siblings)
7 siblings, 0 replies; 15+ messages in thread
From: Gwendal Grignou @ 2021-03-09 19:36 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
iio_trigger_set_drvdata() sets the trigger device parent to first
argument of viio_trigger_alloc(), no need to do it again in the driver
code.
Given data->client is client, and we call devm_iio_trigger_alloc() with
&client->dev, we do not have to set data->trig->dev.parent to
&data->client->dev anymore.
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
Changes in v4:
Improve commit message.
No changes in v3.
drivers/iio/light/gp2ap020a00f.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/iio/light/gp2ap020a00f.c b/drivers/iio/light/gp2ap020a00f.c
index e2850c1a73533..d1d9f2d319e45 100644
--- a/drivers/iio/light/gp2ap020a00f.c
+++ b/drivers/iio/light/gp2ap020a00f.c
@@ -1551,7 +1551,6 @@ static int gp2ap020a00f_probe(struct i2c_client *client,
}
data->trig->ops = &gp2ap020a00f_trigger_ops;
- data->trig->dev.parent = &data->client->dev;
init_irq_work(&data->work, gp2ap020a00f_iio_trigger_work);
--
2.30.1.766.gb4fecdf3b7-goog
^ permalink raw reply related [flat|nested] 15+ messages in thread
* [PATCH v4 5/8] iio: lmp91000: Remove code to set trigger parent
2021-03-09 19:36 [PATCH v4 0/8] iio: Set default trigger device parent Gwendal Grignou
` (3 preceding siblings ...)
2021-03-09 19:36 ` [PATCH v4 4/8] iio: gp2ap020a00f: " Gwendal Grignou
@ 2021-03-09 19:36 ` Gwendal Grignou
2021-03-09 21:50 ` Matt Ranostay
2021-03-09 19:36 ` [PATCH v4 6/8] iio: chemical: atlas: " Gwendal Grignou
` (2 subsequent siblings)
7 siblings, 1 reply; 15+ messages in thread
From: Gwendal Grignou @ 2021-03-09 19:36 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
iio_trigger_set_drvdata() sets the trigger device parent to first
argument of viio_trigger_alloc(), no need to do it again in the driver
code.
Given data->dev is dev, and we call devm_iio_trigger_alloc with
dev instead of data->dev, we do not have to set data->trig->dev.parent to
dev anymore.
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
Changes in v4:
Improve commit message.
No changes in v3.
drivers/iio/potentiostat/lmp91000.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/iio/potentiostat/lmp91000.c b/drivers/iio/potentiostat/lmp91000.c
index f34ca769dc20d..8a9c576616ee5 100644
--- a/drivers/iio/potentiostat/lmp91000.c
+++ b/drivers/iio/potentiostat/lmp91000.c
@@ -322,7 +322,7 @@ static int lmp91000_probe(struct i2c_client *client,
return PTR_ERR(data->regmap);
}
- data->trig = devm_iio_trigger_alloc(data->dev, "%s-mux%d",
+ data->trig = devm_iio_trigger_alloc(dev, "%s-mux%d",
indio_dev->name, indio_dev->id);
if (!data->trig) {
dev_err(dev, "cannot allocate iio trigger.\n");
@@ -330,7 +330,6 @@ static int lmp91000_probe(struct i2c_client *client,
}
data->trig->ops = &lmp91000_trigger_ops;
- data->trig->dev.parent = dev;
init_completion(&data->completion);
ret = lmp91000_read_config(data);
--
2.30.1.766.gb4fecdf3b7-goog
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v4 5/8] iio: lmp91000: Remove code to set trigger parent
2021-03-09 19:36 ` [PATCH v4 5/8] iio: lmp91000: " Gwendal Grignou
@ 2021-03-09 21:50 ` Matt Ranostay
0 siblings, 0 replies; 15+ messages in thread
From: Matt Ranostay @ 2021-03-09 21:50 UTC (permalink / raw)
To: Gwendal Grignou
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko,
ardeleanalex, open list:IIO SUBSYSTEM AND DRIVERS
On Tue, Mar 9, 2021 at 11:37 AM Gwendal Grignou <gwendal@chromium.org> wrote:
>
> iio_trigger_set_drvdata() sets the trigger device parent to first
> argument of viio_trigger_alloc(), no need to do it again in the driver
> code.
>
> Given data->dev is dev, and we call devm_iio_trigger_alloc with
> dev instead of data->dev, we do not have to set data->trig->dev.parent to
> dev anymore.
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Matt Ranostay <matt.ranostay@konsulko.com>
> ---
> Changes in v4:
> Improve commit message.
>
> No changes in v3.
>
> drivers/iio/potentiostat/lmp91000.c | 3 +--
> 1 file changed, 1 insertion(+), 2 deletions(-)
>
> diff --git a/drivers/iio/potentiostat/lmp91000.c b/drivers/iio/potentiostat/lmp91000.c
> index f34ca769dc20d..8a9c576616ee5 100644
> --- a/drivers/iio/potentiostat/lmp91000.c
> +++ b/drivers/iio/potentiostat/lmp91000.c
> @@ -322,7 +322,7 @@ static int lmp91000_probe(struct i2c_client *client,
> return PTR_ERR(data->regmap);
> }
>
> - data->trig = devm_iio_trigger_alloc(data->dev, "%s-mux%d",
> + data->trig = devm_iio_trigger_alloc(dev, "%s-mux%d",
> indio_dev->name, indio_dev->id);
> if (!data->trig) {
> dev_err(dev, "cannot allocate iio trigger.\n");
> @@ -330,7 +330,6 @@ static int lmp91000_probe(struct i2c_client *client,
> }
>
> data->trig->ops = &lmp91000_trigger_ops;
> - data->trig->dev.parent = dev;
> init_completion(&data->completion);
>
> ret = lmp91000_read_config(data);
> --
> 2.30.1.766.gb4fecdf3b7-goog
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 6/8] iio: chemical: atlas: Remove code to set trigger parent
2021-03-09 19:36 [PATCH v4 0/8] iio: Set default trigger device parent Gwendal Grignou
` (4 preceding siblings ...)
2021-03-09 19:36 ` [PATCH v4 5/8] iio: lmp91000: " Gwendal Grignou
@ 2021-03-09 19:36 ` Gwendal Grignou
2021-03-09 21:50 ` Matt Ranostay
2021-03-09 19:36 ` [PATCH v4 7/8] iio: as3935: " Gwendal Grignou
2021-03-09 19:36 ` [PATCH v4 8/8] iio: xilinx-xadc: " Gwendal Grignou
7 siblings, 1 reply; 15+ messages in thread
From: Gwendal Grignou @ 2021-03-09 19:36 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
iio_trigger_set_drvdata() sets the trigger device parent to first
argument of viio_trigger_alloc(), no need to do it again in the driver
code.
Given we call devm_iio_trigger_alloc() and devm_iio_device_alloc() with
&client->dev as parent, we do not have to set data->trig->dev.parent to
indio_dev->dev.parent anymore.
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
Changes in v4:
Improve commit message.
No changes in v3.
drivers/iio/chemical/atlas-sensor.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/iio/chemical/atlas-sensor.c b/drivers/iio/chemical/atlas-sensor.c
index cdab9d04dedd0..56ba6c82b501f 100644
--- a/drivers/iio/chemical/atlas-sensor.c
+++ b/drivers/iio/chemical/atlas-sensor.c
@@ -649,7 +649,6 @@ static int atlas_probe(struct i2c_client *client,
data->client = client;
data->trig = trig;
data->chip = chip;
- trig->dev.parent = indio_dev->dev.parent;
trig->ops = &atlas_interrupt_trigger_ops;
iio_trigger_set_drvdata(trig, indio_dev);
--
2.30.1.766.gb4fecdf3b7-goog
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v4 6/8] iio: chemical: atlas: Remove code to set trigger parent
2021-03-09 19:36 ` [PATCH v4 6/8] iio: chemical: atlas: " Gwendal Grignou
@ 2021-03-09 21:50 ` Matt Ranostay
0 siblings, 0 replies; 15+ messages in thread
From: Matt Ranostay @ 2021-03-09 21:50 UTC (permalink / raw)
To: Gwendal Grignou
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko,
ardeleanalex, open list:IIO SUBSYSTEM AND DRIVERS
On Tue, Mar 9, 2021 at 11:37 AM Gwendal Grignou <gwendal@chromium.org> wrote:
>
> iio_trigger_set_drvdata() sets the trigger device parent to first
> argument of viio_trigger_alloc(), no need to do it again in the driver
> code.
>
> Given we call devm_iio_trigger_alloc() and devm_iio_device_alloc() with
> &client->dev as parent, we do not have to set data->trig->dev.parent to
> indio_dev->dev.parent anymore.
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Matt Ranostay <matt.ranostay@konsulko.com>
> ---
> Changes in v4:
> Improve commit message.
>
> No changes in v3.
>
> drivers/iio/chemical/atlas-sensor.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/iio/chemical/atlas-sensor.c b/drivers/iio/chemical/atlas-sensor.c
> index cdab9d04dedd0..56ba6c82b501f 100644
> --- a/drivers/iio/chemical/atlas-sensor.c
> +++ b/drivers/iio/chemical/atlas-sensor.c
> @@ -649,7 +649,6 @@ static int atlas_probe(struct i2c_client *client,
> data->client = client;
> data->trig = trig;
> data->chip = chip;
> - trig->dev.parent = indio_dev->dev.parent;
> trig->ops = &atlas_interrupt_trigger_ops;
> iio_trigger_set_drvdata(trig, indio_dev);
>
> --
> 2.30.1.766.gb4fecdf3b7-goog
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 7/8] iio: as3935: Remove code to set trigger parent
2021-03-09 19:36 [PATCH v4 0/8] iio: Set default trigger device parent Gwendal Grignou
` (5 preceding siblings ...)
2021-03-09 19:36 ` [PATCH v4 6/8] iio: chemical: atlas: " Gwendal Grignou
@ 2021-03-09 19:36 ` Gwendal Grignou
2021-03-09 21:50 ` Matt Ranostay
2021-03-09 19:36 ` [PATCH v4 8/8] iio: xilinx-xadc: " Gwendal Grignou
7 siblings, 1 reply; 15+ messages in thread
From: Gwendal Grignou @ 2021-03-09 19:36 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
iio_trigger_set_drvdata() sets the trigger device parent to first
argument of viio_trigger_alloc(), no need to do it again in the driver
code.
Given we call devm_iio_trigger_alloc() and devm_iio_device_alloc() with
dev as parent, we do not have to set data->trig->dev.parent to
indio_dev->dev.parent anymore.
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
Changes in v4:
Improve commit message.
No changes in v3.
drivers/iio/proximity/as3935.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/iio/proximity/as3935.c b/drivers/iio/proximity/as3935.c
index b79ada839e012..edc4a35ae66d1 100644
--- a/drivers/iio/proximity/as3935.c
+++ b/drivers/iio/proximity/as3935.c
@@ -411,7 +411,6 @@ static int as3935_probe(struct spi_device *spi)
st->trig = trig;
st->noise_tripped = jiffies - HZ;
- trig->dev.parent = indio_dev->dev.parent;
iio_trigger_set_drvdata(trig, indio_dev);
trig->ops = &iio_interrupt_trigger_ops;
--
2.30.1.766.gb4fecdf3b7-goog
^ permalink raw reply related [flat|nested] 15+ messages in thread
* Re: [PATCH v4 7/8] iio: as3935: Remove code to set trigger parent
2021-03-09 19:36 ` [PATCH v4 7/8] iio: as3935: " Gwendal Grignou
@ 2021-03-09 21:50 ` Matt Ranostay
0 siblings, 0 replies; 15+ messages in thread
From: Matt Ranostay @ 2021-03-09 21:50 UTC (permalink / raw)
To: Gwendal Grignou
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko,
ardeleanalex, open list:IIO SUBSYSTEM AND DRIVERS
On Tue, Mar 9, 2021 at 11:37 AM Gwendal Grignou <gwendal@chromium.org> wrote:
>
> iio_trigger_set_drvdata() sets the trigger device parent to first
> argument of viio_trigger_alloc(), no need to do it again in the driver
> code.
>
> Given we call devm_iio_trigger_alloc() and devm_iio_device_alloc() with
> dev as parent, we do not have to set data->trig->dev.parent to
> indio_dev->dev.parent anymore.
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
Reviewed-by: Matt Ranostay <matt.ranostay@konsulko.com>
> ---
> Changes in v4:
> Improve commit message.
>
> No changes in v3.
>
> drivers/iio/proximity/as3935.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/iio/proximity/as3935.c b/drivers/iio/proximity/as3935.c
> index b79ada839e012..edc4a35ae66d1 100644
> --- a/drivers/iio/proximity/as3935.c
> +++ b/drivers/iio/proximity/as3935.c
> @@ -411,7 +411,6 @@ static int as3935_probe(struct spi_device *spi)
>
> st->trig = trig;
> st->noise_tripped = jiffies - HZ;
> - trig->dev.parent = indio_dev->dev.parent;
> iio_trigger_set_drvdata(trig, indio_dev);
> trig->ops = &iio_interrupt_trigger_ops;
>
> --
> 2.30.1.766.gb4fecdf3b7-goog
>
^ permalink raw reply [flat|nested] 15+ messages in thread
* [PATCH v4 8/8] iio: xilinx-xadc: Remove code to set trigger parent
2021-03-09 19:36 [PATCH v4 0/8] iio: Set default trigger device parent Gwendal Grignou
` (6 preceding siblings ...)
2021-03-09 19:36 ` [PATCH v4 7/8] iio: as3935: " Gwendal Grignou
@ 2021-03-09 19:36 ` Gwendal Grignou
7 siblings, 0 replies; 15+ messages in thread
From: Gwendal Grignou @ 2021-03-09 19:36 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
iio_trigger_set_drvdata() sets the trigger device parent to first
argument of viio_trigger_alloc(), no need to do it again in the driver
code.
In xadc_alloc_trigger, given dev is indio_dev->dev.parent, and we call
devm_iio_trigger_alloc wit dev as argument, we do not have to set
data->trig->dev.parent to indio_dev->dev.parent anymore.
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
Changes in v4:
Improve commit message.
No changes in v3.
drivers/iio/adc/xilinx-xadc-core.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/iio/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c
index 34800dccbf698..6914c1900ed0b 100644
--- a/drivers/iio/adc/xilinx-xadc-core.c
+++ b/drivers/iio/adc/xilinx-xadc-core.c
@@ -747,7 +747,6 @@ static struct iio_trigger *xadc_alloc_trigger(struct iio_dev *indio_dev,
if (trig == NULL)
return ERR_PTR(-ENOMEM);
- trig->dev.parent = indio_dev->dev.parent;
trig->ops = &xadc_trigger_ops;
iio_trigger_set_drvdata(trig, iio_priv(indio_dev));
--
2.30.1.766.gb4fecdf3b7-goog
^ permalink raw reply related [flat|nested] 15+ messages in thread