* [PATCH v2 1/7] iio: set default trig->dev.parent
2020-12-10 20:42 [PATCH v2 0/7] iio: Set default trigger device parent Gwendal Grignou
@ 2020-12-10 20:42 ` Gwendal Grignou
2020-12-11 7:45 ` Alexandru Ardelean
2020-12-29 17:38 ` Jonathan Cameron
2020-12-10 20:42 ` [PATCH v2 2/7] iio: fix devm_iio_trigger_alloc with parent.cocci Gwendal Grignou
` (5 subsequent siblings)
6 siblings, 2 replies; 19+ messages in thread
From: Gwendal Grignou @ 2020-12-10 20:42 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>
---
drivers/iio/accel/bma180.c | 3 +-
drivers/iio/adc/ad_sigma_delta.c | 4 +--
drivers/iio/adc/at91_adc.c | 3 +-
drivers/iio/adc/xilinx-xadc-core.c | 4 +--
.../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 | 31 ++++++++++++-------
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/trigger.h | 3 +-
13 files changed, 36 insertions(+), 32 deletions(-)
diff --git a/drivers/iio/accel/bma180.c b/drivers/iio/accel/bma180.c
index 6b74c2b04c15..0526021a1aed 100644
--- a/drivers/iio/accel/bma180.c
+++ b/drivers/iio/accel/bma180.c
@@ -1041,7 +1041,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;
@@ -1056,7 +1056,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 86039e9ecaca..c0ec61592283 100644
--- a/drivers/iio/adc/ad_sigma_delta.c
+++ b/drivers/iio/adc/ad_sigma_delta.c
@@ -477,7 +477,8 @@ 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,
+ 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;
@@ -498,7 +499,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 9b2c548fae95..d4f5358bf22b 100644
--- a/drivers/iio/adc/at91_adc.c
+++ b/drivers/iio/adc/at91_adc.c
@@ -606,12 +606,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/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c
index f93c34fe5873..8d2f7dfbc069 100644
--- a/drivers/iio/adc/xilinx-xadc-core.c
+++ b/drivers/iio/adc/xilinx-xadc-core.c
@@ -708,12 +708,12 @@ static struct iio_trigger *xadc_alloc_trigger(struct iio_dev *indio_dev,
struct iio_trigger *trig;
int ret;
- trig = iio_trigger_alloc("%s%d-%s", indio_dev->name,
+ trig = iio_trigger_alloc(indio_dev->dev.parent,
+ "%s%d-%s", indio_dev->name,
indio_dev->id, name);
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));
diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
index ff375790b7e8..7988e59b2f70 100644
--- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
+++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
@@ -257,14 +257,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 0507283bd4c1..23d8ec7160fc 100644
--- a/drivers/iio/common/st_sensors/st_sensors_trigger.c
+++ b/drivers/iio/common/st_sensors/st_sensors_trigger.c
@@ -127,7 +127,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;
@@ -135,7 +136,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 1c3c1bd53374..af0aaa146f0c 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 583bb51f65a7..83006d1f7eea 100644
--- a/drivers/iio/industrialio-trigger.c
+++ b/drivers/iio/industrialio-trigger.c
@@ -516,8 +516,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 *dev,
+ const char *fmt,
+ va_list vargs)
{
struct iio_trigger *trig;
int i;
@@ -526,6 +528,7 @@ struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
if (!trig)
return NULL;
+ trig->dev.parent = dev;
trig->dev.type = &iio_trig_type;
trig->dev.bus = &iio_bus_type;
device_initialize(&trig->dev);
@@ -561,13 +564,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
+ * @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.
+ * RETURNS:
+ * Pointer to allocated iio_trigger on success, NULL on failure.
+ */
+struct iio_trigger *iio_trigger_alloc(struct device *dev, const char *fmt, ...)
{
struct iio_trigger *trig;
va_list vargs;
va_start(vargs, fmt);
- trig = viio_trigger_alloc(fmt, vargs);
+ trig = viio_trigger_alloc(dev, fmt, vargs);
va_end(vargs);
return trig;
@@ -588,12 +601,6 @@ 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.
*
@@ -601,7 +608,7 @@ static void devm_iio_trigger_release(struct device *dev, void *res)
* Pointer to allocated iio_trigger on success, NULL on failure.
*/
struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
- const char *fmt, ...)
+ const char *fmt, ...)
{
struct iio_trigger **ptr, *trig;
va_list vargs;
@@ -613,7 +620,7 @@ 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(dev, fmt, vargs);
va_end(vargs);
if (trig) {
*ptr = trig;
diff --git a/drivers/iio/trigger/iio-trig-hrtimer.c b/drivers/iio/trigger/iio-trig-hrtimer.c
index f59bf8d58586..3591bbbedf0c 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 94a487caf421..f746c460bf2a 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 4a00668e3258..96ec06bbe546 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 e09e58072872..b861ee1bc79a 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);
init_irq_work(&t->work, iio_sysfs_trigger_work);
diff --git a/include/linux/iio/trigger.h b/include/linux/iio/trigger.h
index cad8325903f9..089e1961810c 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 *dev,
+ const char *fmt, ...);
void iio_trigger_free(struct iio_trigger *trig);
/**
--
2.29.2.576.ga3fc446d84-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v2 1/7] iio: set default trig->dev.parent
2020-12-10 20:42 ` [PATCH v2 1/7] iio: set default trig->dev.parent Gwendal Grignou
@ 2020-12-11 7:45 ` Alexandru Ardelean
2020-12-13 17:46 ` Jonathan Cameron
2020-12-29 17:38 ` Jonathan Cameron
1 sibling, 1 reply; 19+ messages in thread
From: Alexandru Ardelean @ 2020-12-11 7:45 UTC (permalink / raw)
To: Gwendal Grignou
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Thu, Dec 10, 2020 at 10:42 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().
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
> drivers/iio/accel/bma180.c | 3 +-
> drivers/iio/adc/ad_sigma_delta.c | 4 +--
> drivers/iio/adc/at91_adc.c | 3 +-
> drivers/iio/adc/xilinx-xadc-core.c | 4 +--
> .../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 | 31 ++++++++++++-------
> 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/trigger.h | 3 +-
> 13 files changed, 36 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/iio/accel/bma180.c b/drivers/iio/accel/bma180.c
> index 6b74c2b04c15..0526021a1aed 100644
> --- a/drivers/iio/accel/bma180.c
> +++ b/drivers/iio/accel/bma180.c
> @@ -1041,7 +1041,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;
> @@ -1056,7 +1056,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 86039e9ecaca..c0ec61592283 100644
> --- a/drivers/iio/adc/ad_sigma_delta.c
> +++ b/drivers/iio/adc/ad_sigma_delta.c
> @@ -477,7 +477,8 @@ 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,
> + 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;
> @@ -498,7 +499,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 9b2c548fae95..d4f5358bf22b 100644
> --- a/drivers/iio/adc/at91_adc.c
> +++ b/drivers/iio/adc/at91_adc.c
> @@ -606,12 +606,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/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c
> index f93c34fe5873..8d2f7dfbc069 100644
> --- a/drivers/iio/adc/xilinx-xadc-core.c
> +++ b/drivers/iio/adc/xilinx-xadc-core.c
> @@ -708,12 +708,12 @@ static struct iio_trigger *xadc_alloc_trigger(struct iio_dev *indio_dev,
> struct iio_trigger *trig;
> int ret;
>
> - trig = iio_trigger_alloc("%s%d-%s", indio_dev->name,
> + trig = iio_trigger_alloc(indio_dev->dev.parent,
> + "%s%d-%s", indio_dev->name,
> indio_dev->id, name);
> 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));
>
> diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> index ff375790b7e8..7988e59b2f70 100644
> --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> @@ -257,14 +257,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 0507283bd4c1..23d8ec7160fc 100644
> --- a/drivers/iio/common/st_sensors/st_sensors_trigger.c
> +++ b/drivers/iio/common/st_sensors/st_sensors_trigger.c
> @@ -127,7 +127,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;
> @@ -135,7 +136,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 1c3c1bd53374..af0aaa146f0c 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 583bb51f65a7..83006d1f7eea 100644
> --- a/drivers/iio/industrialio-trigger.c
> +++ b/drivers/iio/industrialio-trigger.c
> @@ -516,8 +516,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 *dev,
> + const char *fmt,
> + va_list vargs)
> {
> struct iio_trigger *trig;
> int i;
> @@ -526,6 +528,7 @@ struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
> if (!trig)
> return NULL;
>
> + trig->dev.parent = dev;
> trig->dev.type = &iio_trig_type;
> trig->dev.bus = &iio_bus_type;
> device_initialize(&trig->dev);
> @@ -561,13 +564,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
> + * @dev: Device to allocate iio_trigger for
I think 'parent' would be a better variable name for this.
And the description could be something like 'Parent device for this trigger'
I'd also propagate the name change in the entire 'industrialio-trigger.c' file.
> + * @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 *dev, const char *fmt, ...)
> {
> struct iio_trigger *trig;
> va_list vargs;
>
> va_start(vargs, fmt);
> - trig = viio_trigger_alloc(fmt, vargs);
> + trig = viio_trigger_alloc(dev, fmt, vargs);
> va_end(vargs);
>
> return trig;
> @@ -588,12 +601,6 @@ 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.
> *
> @@ -601,7 +608,7 @@ static void devm_iio_trigger_release(struct device *dev, void *res)
> * Pointer to allocated iio_trigger on success, NULL on failure.
> */
> struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
> - const char *fmt, ...)
> + const char *fmt, ...)
> {
> struct iio_trigger **ptr, *trig;
> va_list vargs;
> @@ -613,7 +620,7 @@ 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(dev, fmt, vargs);
> va_end(vargs);
> if (trig) {
> *ptr = trig;
> diff --git a/drivers/iio/trigger/iio-trig-hrtimer.c b/drivers/iio/trigger/iio-trig-hrtimer.c
> index f59bf8d58586..3591bbbedf0c 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 94a487caf421..f746c460bf2a 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 4a00668e3258..96ec06bbe546 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 e09e58072872..b861ee1bc79a 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);
>
> init_irq_work(&t->work, iio_sysfs_trigger_work);
> diff --git a/include/linux/iio/trigger.h b/include/linux/iio/trigger.h
> index cad8325903f9..089e1961810c 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 *dev,
> + const char *fmt, ...);
> void iio_trigger_free(struct iio_trigger *trig);
>
> /**
> --
> 2.29.2.576.ga3fc446d84-goog
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v2 1/7] iio: set default trig->dev.parent
2020-12-11 7:45 ` Alexandru Ardelean
@ 2020-12-13 17:46 ` Jonathan Cameron
0 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2020-12-13 17:46 UTC (permalink / raw)
To: Alexandru Ardelean
Cc: Gwendal Grignou, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Fri, 11 Dec 2020 09:45:58 +0200
Alexandru Ardelean <ardeleanalex@gmail.com> wrote:
> On Thu, Dec 10, 2020 at 10:42 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().
Agreed. Might be quicker to do the name change at the end of this
patch series though as far fewer reference to deal with.
Thanks,
Jonathan
> >
> > Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> > ---
> > drivers/iio/accel/bma180.c | 3 +-
> > drivers/iio/adc/ad_sigma_delta.c | 4 +--
> > drivers/iio/adc/at91_adc.c | 3 +-
> > drivers/iio/adc/xilinx-xadc-core.c | 4 +--
> > .../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 | 31 ++++++++++++-------
> > 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/trigger.h | 3 +-
> > 13 files changed, 36 insertions(+), 32 deletions(-)
> >
> > diff --git a/drivers/iio/accel/bma180.c b/drivers/iio/accel/bma180.c
> > index 6b74c2b04c15..0526021a1aed 100644
> > --- a/drivers/iio/accel/bma180.c
> > +++ b/drivers/iio/accel/bma180.c
> > @@ -1041,7 +1041,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;
> > @@ -1056,7 +1056,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 86039e9ecaca..c0ec61592283 100644
> > --- a/drivers/iio/adc/ad_sigma_delta.c
> > +++ b/drivers/iio/adc/ad_sigma_delta.c
> > @@ -477,7 +477,8 @@ 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,
> > + 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;
> > @@ -498,7 +499,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 9b2c548fae95..d4f5358bf22b 100644
> > --- a/drivers/iio/adc/at91_adc.c
> > +++ b/drivers/iio/adc/at91_adc.c
> > @@ -606,12 +606,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/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c
> > index f93c34fe5873..8d2f7dfbc069 100644
> > --- a/drivers/iio/adc/xilinx-xadc-core.c
> > +++ b/drivers/iio/adc/xilinx-xadc-core.c
> > @@ -708,12 +708,12 @@ static struct iio_trigger *xadc_alloc_trigger(struct iio_dev *indio_dev,
> > struct iio_trigger *trig;
> > int ret;
> >
> > - trig = iio_trigger_alloc("%s%d-%s", indio_dev->name,
> > + trig = iio_trigger_alloc(indio_dev->dev.parent,
> > + "%s%d-%s", indio_dev->name,
> > indio_dev->id, name);
> > 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));
> >
> > diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > index ff375790b7e8..7988e59b2f70 100644
> > --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> > @@ -257,14 +257,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 0507283bd4c1..23d8ec7160fc 100644
> > --- a/drivers/iio/common/st_sensors/st_sensors_trigger.c
> > +++ b/drivers/iio/common/st_sensors/st_sensors_trigger.c
> > @@ -127,7 +127,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;
> > @@ -135,7 +136,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 1c3c1bd53374..af0aaa146f0c 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 583bb51f65a7..83006d1f7eea 100644
> > --- a/drivers/iio/industrialio-trigger.c
> > +++ b/drivers/iio/industrialio-trigger.c
> > @@ -516,8 +516,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 *dev,
> > + const char *fmt,
> > + va_list vargs)
> > {
> > struct iio_trigger *trig;
> > int i;
> > @@ -526,6 +528,7 @@ struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
> > if (!trig)
> > return NULL;
> >
> > + trig->dev.parent = dev;
> > trig->dev.type = &iio_trig_type;
> > trig->dev.bus = &iio_bus_type;
> > device_initialize(&trig->dev);
> > @@ -561,13 +564,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
> > + * @dev: Device to allocate iio_trigger for
>
> I think 'parent' would be a better variable name for this.
> And the description could be something like 'Parent device for this trigger'
> I'd also propagate the name change in the entire 'industrialio-trigger.c' file.
>
> > + * @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 *dev, const char *fmt, ...)
> > {
> > struct iio_trigger *trig;
> > va_list vargs;
> >
> > va_start(vargs, fmt);
> > - trig = viio_trigger_alloc(fmt, vargs);
> > + trig = viio_trigger_alloc(dev, fmt, vargs);
> > va_end(vargs);
> >
> > return trig;
> > @@ -588,12 +601,6 @@ 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.
> > *
> > @@ -601,7 +608,7 @@ static void devm_iio_trigger_release(struct device *dev, void *res)
> > * Pointer to allocated iio_trigger on success, NULL on failure.
> > */
> > struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
> > - const char *fmt, ...)
> > + const char *fmt, ...)
> > {
> > struct iio_trigger **ptr, *trig;
> > va_list vargs;
> > @@ -613,7 +620,7 @@ 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(dev, fmt, vargs);
> > va_end(vargs);
> > if (trig) {
> > *ptr = trig;
> > diff --git a/drivers/iio/trigger/iio-trig-hrtimer.c b/drivers/iio/trigger/iio-trig-hrtimer.c
> > index f59bf8d58586..3591bbbedf0c 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 94a487caf421..f746c460bf2a 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 4a00668e3258..96ec06bbe546 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 e09e58072872..b861ee1bc79a 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);
> >
> > init_irq_work(&t->work, iio_sysfs_trigger_work);
> > diff --git a/include/linux/iio/trigger.h b/include/linux/iio/trigger.h
> > index cad8325903f9..089e1961810c 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 *dev,
> > + const char *fmt, ...);
> > void iio_trigger_free(struct iio_trigger *trig);
> >
> > /**
> > --
> > 2.29.2.576.ga3fc446d84-goog
> >
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v2 1/7] iio: set default trig->dev.parent
2020-12-10 20:42 ` [PATCH v2 1/7] iio: set default trig->dev.parent Gwendal Grignou
2020-12-11 7:45 ` Alexandru Ardelean
@ 2020-12-29 17:38 ` Jonathan Cameron
1 sibling, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2020-12-29 17:38 UTC (permalink / raw)
To: Gwendal Grignou; +Cc: lars, andy.shevchenko, ardeleanalex, linux-iio
On Thu, 10 Dec 2020 12:42:05 -0800
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().
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
I tried to pick this up with a few fixups to apply as part of v8, but
found another issue inline.
Please resend the whole series rebased on the testing branch of iio.git.
Thanks,
Jonathan
> ---
> drivers/iio/accel/bma180.c | 3 +-
> drivers/iio/adc/ad_sigma_delta.c | 4 +--
> drivers/iio/adc/at91_adc.c | 3 +-
> drivers/iio/adc/xilinx-xadc-core.c | 4 +--
> .../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 | 31 ++++++++++++-------
> 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/trigger.h | 3 +-
> 13 files changed, 36 insertions(+), 32 deletions(-)
>
> diff --git a/drivers/iio/accel/bma180.c b/drivers/iio/accel/bma180.c
> index 6b74c2b04c15..0526021a1aed 100644
> --- a/drivers/iio/accel/bma180.c
> +++ b/drivers/iio/accel/bma180.c
> @@ -1041,7 +1041,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;
> @@ -1056,7 +1056,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 86039e9ecaca..c0ec61592283 100644
> --- a/drivers/iio/adc/ad_sigma_delta.c
> +++ b/drivers/iio/adc/ad_sigma_delta.c
> @@ -477,7 +477,8 @@ 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,
> + 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;
> @@ -498,7 +499,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 9b2c548fae95..d4f5358bf22b 100644
> --- a/drivers/iio/adc/at91_adc.c
> +++ b/drivers/iio/adc/at91_adc.c
> @@ -606,12 +606,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/adc/xilinx-xadc-core.c b/drivers/iio/adc/xilinx-xadc-core.c
> index f93c34fe5873..8d2f7dfbc069 100644
> --- a/drivers/iio/adc/xilinx-xadc-core.c
> +++ b/drivers/iio/adc/xilinx-xadc-core.c
> @@ -708,12 +708,12 @@ static struct iio_trigger *xadc_alloc_trigger(struct iio_dev *indio_dev,
> struct iio_trigger *trig;
> int ret;
>
> - trig = iio_trigger_alloc("%s%d-%s", indio_dev->name,
> + trig = iio_trigger_alloc(indio_dev->dev.parent,
> + "%s%d-%s", indio_dev->name,
> indio_dev->id, name);
> 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));
>
> diff --git a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> index ff375790b7e8..7988e59b2f70 100644
> --- a/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> +++ b/drivers/iio/common/hid-sensors/hid-sensor-trigger.c
> @@ -257,14 +257,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 0507283bd4c1..23d8ec7160fc 100644
> --- a/drivers/iio/common/st_sensors/st_sensors_trigger.c
> +++ b/drivers/iio/common/st_sensors/st_sensors_trigger.c
> @@ -127,7 +127,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;
> @@ -135,7 +136,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 1c3c1bd53374..af0aaa146f0c 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 583bb51f65a7..83006d1f7eea 100644
> --- a/drivers/iio/industrialio-trigger.c
> +++ b/drivers/iio/industrialio-trigger.c
> @@ -516,8 +516,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 *dev,
> + const char *fmt,
> + va_list vargs)
> {
> struct iio_trigger *trig;
> int i;
> @@ -526,6 +528,7 @@ struct iio_trigger *viio_trigger_alloc(const char *fmt, va_list vargs)
> if (!trig)
> return NULL;
>
> + trig->dev.parent = dev;
> trig->dev.type = &iio_trig_type;
> trig->dev.bus = &iio_bus_type;
> device_initialize(&trig->dev);
> @@ -561,13 +564,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
> + * @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.
> + * RETURNS:
> + * Pointer to allocated iio_trigger on success, NULL on failure.
> + */
> +struct iio_trigger *iio_trigger_alloc(struct device *dev, const char *fmt, ...)
> {
> struct iio_trigger *trig;
> va_list vargs;
>
> va_start(vargs, fmt);
> - trig = viio_trigger_alloc(fmt, vargs);
> + trig = viio_trigger_alloc(dev, fmt, vargs);
> va_end(vargs);
>
> return trig;
> @@ -588,12 +601,6 @@ 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.
Please don't remove docs from here. They may seem obvious, given above, but
that breaks kernel-doc build as parameters must be fully defined.
> - *
> * Managed iio_trigger_alloc. iio_trigger allocated with this function is
> * automatically freed on driver detach.
> *
> @@ -601,7 +608,7 @@ static void devm_iio_trigger_release(struct device *dev, void *res)
> * Pointer to allocated iio_trigger on success, NULL on failure.
> */
> struct iio_trigger *devm_iio_trigger_alloc(struct device *dev,
> - const char *fmt, ...)
> + const char *fmt, ...)
> {
> struct iio_trigger **ptr, *trig;
> va_list vargs;
> @@ -613,7 +620,7 @@ 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(dev, fmt, vargs);
> va_end(vargs);
> if (trig) {
> *ptr = trig;
> diff --git a/drivers/iio/trigger/iio-trig-hrtimer.c b/drivers/iio/trigger/iio-trig-hrtimer.c
> index f59bf8d58586..3591bbbedf0c 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 94a487caf421..f746c460bf2a 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 4a00668e3258..96ec06bbe546 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 e09e58072872..b861ee1bc79a 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);
>
> init_irq_work(&t->work, iio_sysfs_trigger_work);
> diff --git a/include/linux/iio/trigger.h b/include/linux/iio/trigger.h
> index cad8325903f9..089e1961810c 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 *dev,
> + const char *fmt, ...);
> void iio_trigger_free(struct iio_trigger *trig);
>
> /**
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 2/7] iio: fix devm_iio_trigger_alloc with parent.cocci
2020-12-10 20:42 [PATCH v2 0/7] iio: Set default trigger device parent Gwendal Grignou
2020-12-10 20:42 ` [PATCH v2 1/7] iio: set default trig->dev.parent Gwendal Grignou
@ 2020-12-10 20:42 ` Gwendal Grignou
2020-12-11 7:47 ` Alexandru Ardelean
2020-12-10 20:42 ` [PATCH v2 3/7] iio: adis_trigger: Remove code to set trigger parent Gwendal Grignou
` (4 subsequent siblings)
6 siblings, 1 reply; 19+ messages in thread
From: Gwendal Grignou @ 2020-12-10 20:42 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
Use cocci semantic patch:
@@
expression trigger, P, name;
@@
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>
---
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/sx932x.c | 1 -
drivers/iio/proximity/sx9500.c | 1 -
31 files changed, 34 deletions(-)
diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
index aed2a4930fb0..f21b1f414271 100644
--- a/drivers/iio/accel/adxl372.c
+++ b/drivers/iio/accel/adxl372.c
@@ -1237,8 +1237,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 48435865fdaf..5c97232051df 100644
--- a/drivers/iio/accel/bmc150-accel-core.c
+++ b/drivers/iio/accel/bmc150-accel-core.c
@@ -1362,7 +1362,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 560a3373ff20..bb21488febe0 100644
--- a/drivers/iio/accel/kxcjk-1013.c
+++ b/drivers/iio/accel/kxcjk-1013.c
@@ -1385,7 +1385,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;
@@ -1394,7 +1393,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 bf1d2c8afdbd..2cced843c9e2 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 f877263dc6ef..0f037403181f 100644
--- a/drivers/iio/accel/mxc4005.c
+++ b/drivers/iio/accel/mxc4005.c
@@ -454,7 +454,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 3b59887a8581..7c3b70eb3f2d 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 3ead378b02c9..bf0368ce46e1 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 ee7b108688b3..0af0bb4d5a7f 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 b6b6765be7b4..829a3426f235 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 0e93b0766eb4..241c1e0f0cec 100644
--- a/drivers/iio/adc/ad7768-1.c
+++ b/drivers/iio/adc/ad7768-1.c
@@ -594,7 +594,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 ca1dff3924ff..e3c8ec107722 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 60dd87e96f5f..886e96496dbf 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 4d0d798c7cd3..261c277ac4a5 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 ca6fc234076e..15223fc09a46 100644
--- a/drivers/iio/gyro/adxrs290.c
+++ b/drivers/iio/gyro/adxrs290.c
@@ -595,7 +595,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 8ddda96455fc..c964355e355b 100644
--- a/drivers/iio/gyro/bmg160_core.c
+++ b/drivers/iio/gyro/bmg160_core.c
@@ -1127,14 +1127,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 129eead8febc..1a20c6b88e7d 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 38734e4ce360..1fa8d51d5080 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 61fe4932d81d..e1476bf79fe2 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 95e56917677f..f29692b9d2db 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 61885e99d3fc..b804a58fe8fb 100644
--- a/drivers/iio/imu/kmx61.c
+++ b/drivers/iio/imu/kmx61.c
@@ -1272,7 +1272,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 aa2972b04833..7fe14214bb69 100644
--- a/drivers/iio/light/rpr0521.c
+++ b/drivers/iio/light/rpr0521.c
@@ -981,7 +981,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 b304801c7916..9b5c99823943 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 a18a82e6bbf5..10fc5aa8675b 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 fff4b36b8b58..2f7916f95689 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 765c44adac57..e732d308ac4e 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 fc6840f9c1fa..ebe13a5043d4 100644
--- a/drivers/iio/magnetometer/bmc150_magn.c
+++ b/drivers/iio/magnetometer/bmc150_magn.c
@@ -899,7 +899,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 7242897a05e9..dd811da9cb6d 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 2cecbe0adb3f..70adff62cd20 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 ee1b4ff05a37..46947776da09 100644
--- a/drivers/iio/proximity/sx9310.c
+++ b/drivers/iio/proximity/sx9310.c
@@ -1452,7 +1452,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/sx932x.c b/drivers/iio/proximity/sx932x.c
index 26503348ce85..95ad49e627c6 100644
--- a/drivers/iio/proximity/sx932x.c
+++ b/drivers/iio/proximity/sx932x.c
@@ -1336,7 +1336,6 @@ static int sx932x_probe(struct i2c_client *client,
if (!data->trig)
return -ENOMEM;
- data->trig->dev.parent = &client->dev;
data->trig->ops = &sx932x_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 acb821cbad46..bb42aa5d596e 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.29.2.576.ga3fc446d84-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v2 2/7] iio: fix devm_iio_trigger_alloc with parent.cocci
2020-12-10 20:42 ` [PATCH v2 2/7] iio: fix devm_iio_trigger_alloc with parent.cocci Gwendal Grignou
@ 2020-12-11 7:47 ` Alexandru Ardelean
2020-12-13 17:45 ` Jonathan Cameron
0 siblings, 1 reply; 19+ messages in thread
From: Alexandru Ardelean @ 2020-12-11 7:47 UTC (permalink / raw)
To: Gwendal Grignou
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Thu, Dec 10, 2020 at 10:42 PM Gwendal Grignou <gwendal@chromium.org> wrote:
>
> Use cocci semantic patch:
> @@
> expression trigger, P, name;
> @@
> trigger = devm_iio_trigger_alloc(P, ...);
> ...
> - trigger->dev.parent = P;
>
> To remove trigger->dev.parent, since it is set by default.
>
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
> 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/sx932x.c | 1 -
> drivers/iio/proximity/sx9500.c | 1 -
> 31 files changed, 34 deletions(-)
>
> diff --git a/drivers/iio/accel/adxl372.c b/drivers/iio/accel/adxl372.c
> index aed2a4930fb0..f21b1f414271 100644
> --- a/drivers/iio/accel/adxl372.c
> +++ b/drivers/iio/accel/adxl372.c
> @@ -1237,8 +1237,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 48435865fdaf..5c97232051df 100644
> --- a/drivers/iio/accel/bmc150-accel-core.c
> +++ b/drivers/iio/accel/bmc150-accel-core.c
> @@ -1362,7 +1362,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 560a3373ff20..bb21488febe0 100644
> --- a/drivers/iio/accel/kxcjk-1013.c
> +++ b/drivers/iio/accel/kxcjk-1013.c
> @@ -1385,7 +1385,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;
> @@ -1394,7 +1393,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 bf1d2c8afdbd..2cced843c9e2 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 f877263dc6ef..0f037403181f 100644
> --- a/drivers/iio/accel/mxc4005.c
> +++ b/drivers/iio/accel/mxc4005.c
> @@ -454,7 +454,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 3b59887a8581..7c3b70eb3f2d 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 3ead378b02c9..bf0368ce46e1 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 ee7b108688b3..0af0bb4d5a7f 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 b6b6765be7b4..829a3426f235 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 0e93b0766eb4..241c1e0f0cec 100644
> --- a/drivers/iio/adc/ad7768-1.c
> +++ b/drivers/iio/adc/ad7768-1.c
> @@ -594,7 +594,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 ca1dff3924ff..e3c8ec107722 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 60dd87e96f5f..886e96496dbf 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 4d0d798c7cd3..261c277ac4a5 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 ca6fc234076e..15223fc09a46 100644
> --- a/drivers/iio/gyro/adxrs290.c
> +++ b/drivers/iio/gyro/adxrs290.c
> @@ -595,7 +595,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 8ddda96455fc..c964355e355b 100644
> --- a/drivers/iio/gyro/bmg160_core.c
> +++ b/drivers/iio/gyro/bmg160_core.c
> @@ -1127,14 +1127,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 129eead8febc..1a20c6b88e7d 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 38734e4ce360..1fa8d51d5080 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 61fe4932d81d..e1476bf79fe2 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 95e56917677f..f29692b9d2db 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 61885e99d3fc..b804a58fe8fb 100644
> --- a/drivers/iio/imu/kmx61.c
> +++ b/drivers/iio/imu/kmx61.c
> @@ -1272,7 +1272,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 aa2972b04833..7fe14214bb69 100644
> --- a/drivers/iio/light/rpr0521.c
> +++ b/drivers/iio/light/rpr0521.c
> @@ -981,7 +981,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 b304801c7916..9b5c99823943 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 a18a82e6bbf5..10fc5aa8675b 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 fff4b36b8b58..2f7916f95689 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 765c44adac57..e732d308ac4e 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 fc6840f9c1fa..ebe13a5043d4 100644
> --- a/drivers/iio/magnetometer/bmc150_magn.c
> +++ b/drivers/iio/magnetometer/bmc150_magn.c
> @@ -899,7 +899,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 7242897a05e9..dd811da9cb6d 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 2cecbe0adb3f..70adff62cd20 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 ee1b4ff05a37..46947776da09 100644
> --- a/drivers/iio/proximity/sx9310.c
> +++ b/drivers/iio/proximity/sx9310.c
> @@ -1452,7 +1452,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/sx932x.c b/drivers/iio/proximity/sx932x.c
> index 26503348ce85..95ad49e627c6 100644
> --- a/drivers/iio/proximity/sx932x.c
> +++ b/drivers/iio/proximity/sx932x.c
> @@ -1336,7 +1336,6 @@ static int sx932x_probe(struct i2c_client *client,
> if (!data->trig)
> return -ENOMEM;
>
> - data->trig->dev.parent = &client->dev;
> data->trig->ops = &sx932x_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 acb821cbad46..bb42aa5d596e 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.29.2.576.ga3fc446d84-goog
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v2 2/7] iio: fix devm_iio_trigger_alloc with parent.cocci
2020-12-11 7:47 ` Alexandru Ardelean
@ 2020-12-13 17:45 ` Jonathan Cameron
0 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2020-12-13 17:45 UTC (permalink / raw)
To: Alexandru Ardelean
Cc: Gwendal Grignou, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Fri, 11 Dec 2020 09:47:58 +0200
Alexandru Ardelean <ardeleanalex@gmail.com> wrote:
> On Thu, Dec 10, 2020 at 10:42 PM Gwendal Grignou <gwendal@chromium.org> wrote:
> >
> > Use cocci semantic patch:
> > @@
> > expression trigger, P, name;
> > @@
> > trigger = devm_iio_trigger_alloc(P, ...);
> > ...
> > - trigger->dev.parent = P;
> >
> > To remove trigger->dev.parent, since it is set by default.
> >
>
> Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
>
> > Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
There's a bonus one in here :)
Otherwise looks good.
Jonathan
> > diff --git a/drivers/iio/light/vcnl4035.c b/drivers/iio/light/vcnl4035.c
> > index 765c44adac57..e732d308ac4e 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,
This one is a bit obscured by the code. I wonder it it would be sensible to
just pass the client->dev directly into vcnl4035_probe_trigger rather than
somewhat making us guess where it goes. Unrelated to your patch though.
> > diff --git a/drivers/iio/proximity/sx932x.c b/drivers/iio/proximity/sx932x.c
> > index 26503348ce85..95ad49e627c6 100644
> > --- a/drivers/iio/proximity/sx932x.c
> > +++ b/drivers/iio/proximity/sx932x.c
> > @@ -1336,7 +1336,6 @@ static int sx932x_probe(struct i2c_client *client,
> > if (!data->trig)
> > return -ENOMEM;
> >
> > - data->trig->dev.parent = &client->dev;
> > data->trig->ops = &sx932x_trigger_ops;
> > iio_trigger_set_drvdata(data->trig, indio_dev);
There is no such driver in mainline yet.
I had the sudden horror that I'd let another wild card name in without
noticing and checked :) We had a v1 of the patch, but currently
waiting for v2.
Jonathan
> >
> > --
> > 2.29.2.576.ga3fc446d84-goog
> >
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 3/7] iio: adis_trigger: Remove code to set trigger parent
2020-12-10 20:42 [PATCH v2 0/7] iio: Set default trigger device parent Gwendal Grignou
2020-12-10 20:42 ` [PATCH v2 1/7] iio: set default trig->dev.parent Gwendal Grignou
2020-12-10 20:42 ` [PATCH v2 2/7] iio: fix devm_iio_trigger_alloc with parent.cocci Gwendal Grignou
@ 2020-12-10 20:42 ` Gwendal Grignou
2020-12-11 7:48 ` Alexandru Ardelean
2020-12-10 20:42 ` [PATCH v2 4/7] iio: gp2ap020a00f: " Gwendal Grignou
` (3 subsequent siblings)
6 siblings, 1 reply; 19+ messages in thread
From: Gwendal Grignou @ 2020-12-10 20:42 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
Already done in boiler plate code.
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
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 64e0ba51cb18..0f29e56200af 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.29.2.576.ga3fc446d84-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v2 3/7] iio: adis_trigger: Remove code to set trigger parent
2020-12-10 20:42 ` [PATCH v2 3/7] iio: adis_trigger: Remove code to set trigger parent Gwendal Grignou
@ 2020-12-11 7:48 ` Alexandru Ardelean
0 siblings, 0 replies; 19+ messages in thread
From: Alexandru Ardelean @ 2020-12-11 7:48 UTC (permalink / raw)
To: Gwendal Grignou
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Thu, Dec 10, 2020 at 10:42 PM Gwendal Grignou <gwendal@chromium.org> wrote:
>
> Already done in boiler plate code.
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
> 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 64e0ba51cb18..0f29e56200af 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.29.2.576.ga3fc446d84-goog
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 4/7] iio: gp2ap020a00f: Remove code to set trigger parent
2020-12-10 20:42 [PATCH v2 0/7] iio: Set default trigger device parent Gwendal Grignou
` (2 preceding siblings ...)
2020-12-10 20:42 ` [PATCH v2 3/7] iio: adis_trigger: Remove code to set trigger parent Gwendal Grignou
@ 2020-12-10 20:42 ` Gwendal Grignou
2020-12-11 7:49 ` Alexandru Ardelean
2020-12-10 20:42 ` [PATCH v2 5/7] iio: lmp91000: " Gwendal Grignou
` (2 subsequent siblings)
6 siblings, 1 reply; 19+ messages in thread
From: Gwendal Grignou @ 2020-12-10 20:42 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
Already done in boiler plate code
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
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 e2850c1a7353..d1d9f2d319e4 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.29.2.576.ga3fc446d84-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v2 4/7] iio: gp2ap020a00f: Remove code to set trigger parent
2020-12-10 20:42 ` [PATCH v2 4/7] iio: gp2ap020a00f: " Gwendal Grignou
@ 2020-12-11 7:49 ` Alexandru Ardelean
0 siblings, 0 replies; 19+ messages in thread
From: Alexandru Ardelean @ 2020-12-11 7:49 UTC (permalink / raw)
To: Gwendal Grignou
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Thu, Dec 10, 2020 at 10:42 PM Gwendal Grignou <gwendal@chromium.org> wrote:
>
> Already done in boiler plate code
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
> 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 e2850c1a7353..d1d9f2d319e4 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.29.2.576.ga3fc446d84-goog
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 5/7] iio: lmp91000: Remove code to set trigger parent
2020-12-10 20:42 [PATCH v2 0/7] iio: Set default trigger device parent Gwendal Grignou
` (3 preceding siblings ...)
2020-12-10 20:42 ` [PATCH v2 4/7] iio: gp2ap020a00f: " Gwendal Grignou
@ 2020-12-10 20:42 ` Gwendal Grignou
2020-12-11 8:04 ` Alexandru Ardelean
2020-12-10 20:42 ` [PATCH v2 6/7] iio: chemical: atlas: " Gwendal Grignou
2020-12-10 20:42 ` [PATCH v2 7/7] iio: as3935: " Gwendal Grignou
6 siblings, 1 reply; 19+ messages in thread
From: Gwendal Grignou @ 2020-12-10 20:42 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
Already done in boiler plate code
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
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 f34ca769dc20..8a9c576616ee 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.29.2.576.ga3fc446d84-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v2 5/7] iio: lmp91000: Remove code to set trigger parent
2020-12-10 20:42 ` [PATCH v2 5/7] iio: lmp91000: " Gwendal Grignou
@ 2020-12-11 8:04 ` Alexandru Ardelean
0 siblings, 0 replies; 19+ messages in thread
From: Alexandru Ardelean @ 2020-12-11 8:04 UTC (permalink / raw)
To: Gwendal Grignou
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Thu, Dec 10, 2020 at 10:42 PM Gwendal Grignou <gwendal@chromium.org> wrote:
>
> Already done in boiler plate code
>
Worth noting that 'data->dev == dev'
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
> 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 f34ca769dc20..8a9c576616ee 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.29.2.576.ga3fc446d84-goog
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 6/7] iio: chemical: atlas: Remove code to set trigger parent
2020-12-10 20:42 [PATCH v2 0/7] iio: Set default trigger device parent Gwendal Grignou
` (4 preceding siblings ...)
2020-12-10 20:42 ` [PATCH v2 5/7] iio: lmp91000: " Gwendal Grignou
@ 2020-12-10 20:42 ` Gwendal Grignou
2020-12-11 8:05 ` Alexandru Ardelean
2020-12-10 20:42 ` [PATCH v2 7/7] iio: as3935: " Gwendal Grignou
6 siblings, 1 reply; 19+ messages in thread
From: Gwendal Grignou @ 2020-12-10 20:42 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
Already done in boiler plate code
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
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 cdab9d04dedd..56ba6c82b501 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.29.2.576.ga3fc446d84-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v2 6/7] iio: chemical: atlas: Remove code to set trigger parent
2020-12-10 20:42 ` [PATCH v2 6/7] iio: chemical: atlas: " Gwendal Grignou
@ 2020-12-11 8:05 ` Alexandru Ardelean
0 siblings, 0 replies; 19+ messages in thread
From: Alexandru Ardelean @ 2020-12-11 8:05 UTC (permalink / raw)
To: Gwendal Grignou
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Thu, Dec 10, 2020 at 10:42 PM Gwendal Grignou <gwendal@chromium.org> wrote:
>
> Already done in boiler plate code
Worth noting that 'indio_dev->dev.parent == &client->dev;'
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
> 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 cdab9d04dedd..56ba6c82b501 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.29.2.576.ga3fc446d84-goog
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* [PATCH v2 7/7] iio: as3935: Remove code to set trigger parent
2020-12-10 20:42 [PATCH v2 0/7] iio: Set default trigger device parent Gwendal Grignou
` (5 preceding siblings ...)
2020-12-10 20:42 ` [PATCH v2 6/7] iio: chemical: atlas: " Gwendal Grignou
@ 2020-12-10 20:42 ` Gwendal Grignou
2020-12-11 8:07 ` Alexandru Ardelean
6 siblings, 1 reply; 19+ messages in thread
From: Gwendal Grignou @ 2020-12-10 20:42 UTC (permalink / raw)
To: jic23, lars, andy.shevchenko, ardeleanalex; +Cc: linux-iio, Gwendal Grignou
Already done in boiler plate code
Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
---
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 b79ada839e01..edc4a35ae66d 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.29.2.576.ga3fc446d84-goog
^ permalink raw reply related [flat|nested] 19+ messages in thread
* Re: [PATCH v2 7/7] iio: as3935: Remove code to set trigger parent
2020-12-10 20:42 ` [PATCH v2 7/7] iio: as3935: " Gwendal Grignou
@ 2020-12-11 8:07 ` Alexandru Ardelean
2020-12-13 17:52 ` Jonathan Cameron
0 siblings, 1 reply; 19+ messages in thread
From: Alexandru Ardelean @ 2020-12-11 8:07 UTC (permalink / raw)
To: Gwendal Grignou
Cc: Jonathan Cameron, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Thu, Dec 10, 2020 at 10:42 PM Gwendal Grignou <gwendal@chromium.org> wrote:
>
> Already done in boiler plate code
Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
>
> Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> ---
> 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 b79ada839e01..edc4a35ae66d 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.29.2.576.ga3fc446d84-goog
>
^ permalink raw reply [flat|nested] 19+ messages in thread
* Re: [PATCH v2 7/7] iio: as3935: Remove code to set trigger parent
2020-12-11 8:07 ` Alexandru Ardelean
@ 2020-12-13 17:52 ` Jonathan Cameron
0 siblings, 0 replies; 19+ messages in thread
From: Jonathan Cameron @ 2020-12-13 17:52 UTC (permalink / raw)
To: Alexandru Ardelean
Cc: Gwendal Grignou, Lars-Peter Clausen, Andy Shevchenko, linux-iio
On Fri, 11 Dec 2020 10:07:32 +0200
Alexandru Ardelean <ardeleanalex@gmail.com> wrote:
> On Thu, Dec 10, 2020 at 10:42 PM Gwendal Grignou <gwendal@chromium.org> wrote:
> >
> > Already done in boiler plate code
>
> Reviewed-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
All the ones I haven't otherwise commented on look good to me.
Thanks for tidying this up.
Jonathan
>
> >
> > Signed-off-by: Gwendal Grignou <gwendal@chromium.org>
> > ---
> > 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 b79ada839e01..edc4a35ae66d 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.29.2.576.ga3fc446d84-goog
> >
^ permalink raw reply [flat|nested] 19+ messages in thread