All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/7] iio: Set default trigger device parent
@ 2020-12-10 20:42 Gwendal Grignou
  2020-12-10 20:42 ` [PATCH v2 1/7] iio: set default trig->dev.parent Gwendal Grignou
                   ` (6 more replies)
  0 siblings, 7 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

Each drivers are setting trig->dev.parent to a common value - usually.
Move that in boiler plate code.

The first patch set the parent pointer, the next is an automatic change
with spatch.
The remaining ones are straightforward manual changes.

Few drivers remain:
drivers/iio/adc/at91-sama5d2_adc.c
drivers/iio/adc/mxs-lradc-adc.c
trigger parent set to iio device instead of its parent.

drivers/iio/adc/dln2-adc.c
trigger parent not set.

drivers/iio/gyro/mpu3050-core.c
trigger allocated for iio device but parent set to iio device parent.

drivers/iio/imu/bmi160/bmi160_core.c
drivers/iio/imu/inv_mpu6050/inv_mpu_trigger.c
trigger allocated for iio device but parent set to mapped register device holder. Looks like iio device parent.

drivers/iio/trigger/stm32-lptimer-trigger.c
drivers/iio/trigger/stm32-timer-trigger.c
trigger allocated for device, but parent set to device parent.

Gwendal Grignou (7):
  iio: set default trig->dev.parent
  iio: fix devm_iio_trigger_alloc with parent.cocci
  iio: adis_trigger: Remove code to set trigger parent
  iio: gp2ap020a00f: Remove code to set trigger parent
  iio: lmp91000: Remove code to set trigger parent
  iio: chemical: atlas: Remove code to set trigger parent
  iio: as3935: Remove code to set trigger parent

 drivers/iio/accel/adxl372.c                   |  2 --
 drivers/iio/accel/bma180.c                    |  3 +-
 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/ad_sigma_delta.c              |  4 +--
 drivers/iio/adc/at91_adc.c                    |  3 +-
 drivers/iio/adc/max1027.c                     |  1 -
 drivers/iio/adc/xilinx-xadc-core.c            |  4 +--
 drivers/iio/chemical/atlas-sensor.c           |  1 -
 drivers/iio/chemical/ccs811.c                 |  1 -
 drivers/iio/chemical/scd30_core.c             |  1 -
 .../common/hid-sensors/hid-sensor-trigger.c   |  4 +--
 .../common/st_sensors/st_sensors_trigger.c    |  4 +--
 drivers/iio/gyro/adxrs290.c                   |  1 -
 drivers/iio/gyro/bmg160_core.c                |  2 --
 drivers/iio/gyro/fxas21002c_core.c            |  1 -
 drivers/iio/gyro/itg3200_buffer.c             |  3 +-
 drivers/iio/health/afe4403.c                  |  1 -
 drivers/iio/health/afe4404.c                  |  1 -
 drivers/iio/humidity/hts221_buffer.c          |  1 -
 drivers/iio/imu/adis_trigger.c                | 10 ++----
 drivers/iio/imu/kmx61.c                       |  1 -
 drivers/iio/industrialio-trigger.c            | 31 ++++++++++++-------
 drivers/iio/light/gp2ap020a00f.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/potentiostat/lmp91000.c           |  3 +-
 drivers/iio/pressure/zpa2326.c                |  1 -
 drivers/iio/proximity/as3935.c                |  1 -
 drivers/iio/proximity/sx9310.c                |  1 -
 drivers/iio/proximity/sx932x.c                |  1 -
 drivers/iio/proximity/sx9500.c                |  1 -
 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 +-
 49 files changed, 39 insertions(+), 79 deletions(-)

-- 
2.29.2.576.ga3fc446d84-goog


^ permalink raw reply	[flat|nested] 19+ messages in thread

* [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

* [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

* [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

* [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

* [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

* [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

* [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 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 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 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

* 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

* 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

* 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

* 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 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

* 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 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

* 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

end of thread, other threads:[~2020-12-29 17:39 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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-11  7:45   ` Alexandru Ardelean
2020-12-13 17:46     ` Jonathan Cameron
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
2020-12-11  7:47   ` Alexandru Ardelean
2020-12-13 17:45     ` Jonathan Cameron
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
2020-12-10 20:42 ` [PATCH v2 4/7] iio: gp2ap020a00f: " Gwendal Grignou
2020-12-11  7:49   ` Alexandru Ardelean
2020-12-10 20:42 ` [PATCH v2 5/7] iio: lmp91000: " 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-11  8:05   ` Alexandru Ardelean
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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.