All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jonathan Cameron <jic23@cam.ac.uk>
To: greg@kroah.com
Cc: linux-iio@vger.kernel.org, Jonathan Cameron <jic23@cam.ac.uk>
Subject: [PATCH 050/111] staging:iio:adc:ad799x move to irqchip based trigger handling.
Date: Wed, 18 May 2011 14:41:40 +0100	[thread overview]
Message-ID: <1305726161-5606-51-git-send-email-jic23@cam.ac.uk> (raw)
In-Reply-To: <1305726161-5606-1-git-send-email-jic23@cam.ac.uk>

Untested. Also cleared out last_timestamp as it isn't used anywhere.

Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
---
 drivers/staging/iio/adc/ad799x.h      |    3 --
 drivers/staging/iio/adc/ad799x_core.c |    3 +-
 drivers/staging/iio/adc/ad799x_ring.c |   61 ++++++++++++++------------------
 3 files changed, 28 insertions(+), 39 deletions(-)

diff --git a/drivers/staging/iio/adc/ad799x.h b/drivers/staging/iio/adc/ad799x.h
index 503fa61..331435a 100644
--- a/drivers/staging/iio/adc/ad799x.h
+++ b/drivers/staging/iio/adc/ad799x.h
@@ -113,12 +113,9 @@ struct ad799x_state {
 	struct iio_dev			*indio_dev;
 	struct i2c_client		*client;
 	const struct ad799x_chip_info	*chip_info;
-	struct work_struct		poll_work;
-	atomic_t			protect_ring;
 	size_t				d_size;
 	struct iio_trigger		*trig;
 	struct regulator		*reg;
-	s64				last_timestamp;
 	u16				int_vref_mv;
 	unsigned			id;
 	char				*name;
diff --git a/drivers/staging/iio/adc/ad799x_core.c b/drivers/staging/iio/adc/ad799x_core.c
index 34fc85c..009efb8 100644
--- a/drivers/staging/iio/adc/ad799x_core.c
+++ b/drivers/staging/iio/adc/ad799x_core.c
@@ -767,7 +767,6 @@ static int __devinit ad799x_probe(struct i2c_client *client,
 	/* this is only used for device removal purposes */
 	i2c_set_clientdata(client, st);
 
-	atomic_set(&st->protect_ring, 0);
 	st->id = id->driver_data;
 	st->chip_info = &ad799x_chip_info_tbl[st->id];
 	st->config = st->chip_info->default_config;
@@ -797,7 +796,7 @@ static int __devinit ad799x_probe(struct i2c_client *client,
 	st->indio_dev->dev.parent = &client->dev;
 	st->indio_dev->attrs = st->chip_info->dev_attrs;
 	st->indio_dev->event_attrs = st->chip_info->event_attrs;
-
+	st->indio_dev->name = id->name;
 	st->indio_dev->dev_data = (void *)(st);
 	st->indio_dev->driver_module = THIS_MODULE;
 	st->indio_dev->modes = INDIO_DIRECT_MODE;
diff --git a/drivers/staging/iio/adc/ad799x_ring.c b/drivers/staging/iio/adc/ad799x_ring.c
index 0875a7e..f0a0aae 100644
--- a/drivers/staging/iio/adc/ad799x_ring.c
+++ b/drivers/staging/iio/adc/ad799x_ring.c
@@ -99,34 +99,17 @@ static int ad799x_ring_preenable(struct iio_dev *indio_dev)
 }
 
 /**
- * ad799x_poll_func_th() th of trigger launched polling to ring buffer
- *
- * As sampling only occurs on i2c comms occurring, leave timestamping until
- * then.  Some triggers will generate their own time stamp.  Currently
- * there is no way of notifying them when no one cares.
- **/
-static void ad799x_poll_func_th(struct iio_dev *indio_dev, s64 time)
-{
-	struct ad799x_state *st = indio_dev->dev_data;
-
-	schedule_work(&st->poll_work);
-
-	return;
-}
-/**
- * ad799x_poll_bh_to_ring() bh of trigger launched polling to ring buffer
- * @work_s:	the work struct through which this was scheduled
+ * ad799x_trigger_handler() bh of trigger launched polling to ring buffer
  *
  * Currently there is no option in this driver to disable the saving of
  * timestamps within the ring.
- * I think the one copy of this at a time was to avoid problems if the
- * trigger was set far too high and the reads then locked up the computer.
  **/
-static void ad799x_poll_bh_to_ring(struct work_struct *work_s)
+
+static irqreturn_t ad799x_trigger_handler(int irq, void *p)
 {
-	struct ad799x_state *st = container_of(work_s, struct ad799x_state,
-						  poll_work);
-	struct iio_dev *indio_dev = st->indio_dev;
+	struct iio_poll_func *pf = p;
+	struct iio_dev *indio_dev = pf->private_data;
+	struct ad799x_state *st = iio_dev_get_devdata(indio_dev);
 	struct iio_ring_buffer *ring = indio_dev->ring;
 	struct iio_sw_ring_buffer *ring_sw = iio_to_sw_ring(indio_dev->ring);
 	s64 time_ns;
@@ -134,13 +117,9 @@ static void ad799x_poll_bh_to_ring(struct work_struct *work_s)
 	int b_sent;
 	u8 cmd;
 
-	/* Ensure only one copy of this function running at a time */
-	if (atomic_inc_return(&st->protect_ring) > 1)
-		return;
-
 	rxbuf = kmalloc(st->d_size, GFP_KERNEL);
 	if (rxbuf == NULL)
-		return;
+		return -ENOMEM;
 
 	switch (st->id) {
 	case ad7991:
@@ -176,7 +155,9 @@ static void ad799x_poll_bh_to_ring(struct work_struct *work_s)
 	ring->access.store_to(&ring_sw->buf, rxbuf, time_ns);
 done:
 	kfree(rxbuf);
-	atomic_dec(&st->protect_ring);
+	if (b_sent < 0)
+		return b_sent;
+	return IRQ_HANDLED;
 }
 
 
@@ -192,10 +173,21 @@ int ad799x_register_ring_funcs_and_init(struct iio_dev *indio_dev)
 	}
 	/* Effectively select the ring buffer implementation */
 	iio_ring_sw_register_funcs(&st->indio_dev->ring->access);
-	ret = iio_alloc_pollfunc(indio_dev, NULL, &ad799x_poll_func_th);
-	if (ret)
+	indio_dev->pollfunc = kzalloc(sizeof(*indio_dev->pollfunc), GFP_KERNEL);
+	if (indio_dev->pollfunc == NULL) {
+		ret = -ENOMEM;
 		goto error_deallocate_sw_rb;
-
+	}
+	indio_dev->pollfunc->private_data = indio_dev;
+	indio_dev->pollfunc->thread = &ad799x_trigger_handler;
+	indio_dev->pollfunc->type = IRQF_ONESHOT;
+	indio_dev->pollfunc->name =
+		kasprintf(GFP_KERNEL, "%s_consumer%d", indio_dev->name,
+			  indio_dev->id);
+	if (indio_dev->pollfunc->name == NULL) {
+		ret = -ENOMEM;
+		goto error_free_poll_func;
+	}
 	/* Ring buffer functions - here trigger setup related */
 
 	indio_dev->ring->preenable = &ad799x_ring_preenable;
@@ -203,13 +195,13 @@ int ad799x_register_ring_funcs_and_init(struct iio_dev *indio_dev)
 	indio_dev->ring->predisable = &iio_triggered_ring_predisable;
 	indio_dev->ring->scan_timestamp = true;
 
-	INIT_WORK(&st->poll_work, &ad799x_poll_bh_to_ring);
-
 	indio_dev->ring->scan_el_attrs = st->chip_info->scan_attrs;
 
 	/* Flag that polled ring buffering is possible */
 	indio_dev->modes |= INDIO_RING_TRIGGERED;
 	return 0;
+error_free_poll_func:
+	kfree(indio_dev->pollfunc);
 error_deallocate_sw_rb:
 	iio_sw_rb_free(indio_dev->ring);
 error_ret:
@@ -224,6 +216,7 @@ void ad799x_ring_cleanup(struct iio_dev *indio_dev)
 		iio_trigger_dettach_poll_func(indio_dev->trig,
 					      indio_dev->pollfunc);
 	}
+	kfree(indio_dev->pollfunc->name);
 	kfree(indio_dev->pollfunc);
 	iio_sw_rb_free(indio_dev->ring);
 }
-- 
1.7.3.4

  parent reply	other threads:[~2011-05-18 13:41 UTC|newest]

Thread overview: 117+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-05-18 13:40 [PATCH 000/111] IIO: chan_spec intro, generic irq based triggers, Jonathan Cameron
2011-05-18 13:40 ` [PATCH 001/111] staging:iio: allow channels to be set up using a table of iio_channel_spec structures Jonathan Cameron
2011-05-18 13:40 ` [PATCH 002/111] staging:iio:lis3l02dq - move to new channel_spec approach Jonathan Cameron
2011-05-18 13:40 ` [PATCH 003/111] staging:iio:max1363 - move to channel_spec registration Jonathan Cameron
2011-05-18 13:40 ` [PATCH 004/111] staging:iio: remove ability to escalate events Jonathan Cameron
2011-05-18 13:40 ` [PATCH 005/111] staging:iio: Add polling of events on the ring access chrdev Jonathan Cameron
2011-05-18 13:40 ` [PATCH 006/111] staging:iio: remove legacy event chrdev for the buffers Jonathan Cameron
2011-05-18 13:40 ` [PATCH 007/111] staging:iio: Buffer device flattening Jonathan Cameron
2011-05-18 13:40 ` [PATCH 008/111] staging:iio:lis3l02dq: General cleanup Jonathan Cameron
2011-05-18 13:40 ` [PATCH 009/111] staging:iio: Push interrupt setup down into the drivers for event lines Jonathan Cameron
2011-05-18 13:41 ` [PATCH 010/111] staging:iio: lis3l02dq - separate entirely interrupt handling for thesholds from that for the datardy signal Jonathan Cameron
2011-05-18 13:41 ` [PATCH 011/111] staging:iio:sca3000 extract old event handling and move to poll for events from buffer Jonathan Cameron
2011-05-18 13:41 ` [PATCH 012/111] staging:iio:buffering remove unused parameter dead_offset from read_last_n in all buffer implementations Jonathan Cameron
2011-05-18 13:41 ` [PATCH 013/111] staging:iio:light:tsl2563 remove old style event registration Jonathan Cameron
2011-05-18 13:41 ` [PATCH 014/111] staging:iio:dac:ad5504 move from old to new event handling Jonathan Cameron
2011-05-18 13:41 ` [PATCH 015/111] staging:iio:adt7316 get rid of legacy event handling code Jonathan Cameron
2011-05-18 13:41 ` [PATCH 016/111] staging:iio:adc:ad7745 move from old to current event handling Jonathan Cameron
2011-05-18 13:41 ` [PATCH 017/111] staging:iio:adc:ad7816 " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 018/111] staging:iio:adc:ad7150 move from deprecated event handling plus remove irq as gpio requirement Jonathan Cameron
2011-05-18 13:41 ` [PATCH 019/111] staging:iio:adc:ad7152 remove unregister of interrupt line Jonathan Cameron
2011-05-18 13:41 ` [PATCH 020/111] staging:iio:adc:adt75 old to new event handling conversion Jonathan Cameron
2011-05-18 13:41 ` [PATCH 021/111] staging:iio:ad7291 move from old event system to current Jonathan Cameron
2011-05-18 13:41 ` [PATCH 022/111] staging:iio:adc:adt7410 move to current event handling Jonathan Cameron
2011-05-18 13:41 ` [PATCH 023/111] staging:iio:adt7310 " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 024/111] staging:iio:adc:ad7314 remove unmatched unregister of event line Jonathan Cameron
2011-05-18 13:41 ` [PATCH 025/111] staging:iio:adc:ad799x move to new event handling Jonathan Cameron
2011-05-18 13:41 ` [PATCH 026/111] staging:iio: Remove legacy " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 027/111] staging:iio:accel:lis3l02dq make threshold interrupt threaded Jonathan Cameron
2011-05-18 13:41 ` [PATCH 028/111] staging:iio: Add infrastructure for irq_chip based triggers Jonathan Cameron
2011-05-18 13:41 ` [PATCH 029/111] staging:iio:Documentation generic_buffer.c update to new abi for buffers + misc fixes Jonathan Cameron
2011-05-18 13:41 ` [PATCH 030/111] staging:iio:ring_sw add function needed for threaded irq Jonathan Cameron
2011-05-18 13:41 ` [PATCH 031/111] staging:iio: add generic data ready poll function Jonathan Cameron
2011-05-18 13:41 ` [PATCH 032/111] staging:iio:accel:lis3l02dq move to threaded trigger handling Jonathan Cameron
2011-05-18 13:41 ` [PATCH 033/111] staging:iio:adc:max1363 move to irqchip based threaded irq triggering Jonathan Cameron
2011-05-18 13:41 ` [PATCH 034/111] staging:iio:adc:ad7476 use channel_spec Jonathan Cameron
2011-05-18 13:41 ` [PATCH 035/111] staging:iio:adc:ad7476 move to irqchip based triggering Jonathan Cameron
2011-05-18 13:41 ` [PATCH 036/111] staging:iio:meter:ade7758 move to irqchip based trigger handling Jonathan Cameron
2011-05-18 13:41 ` [PATCH 037/111] staging:iio:imu:adis16400 move to irq based triggers and channel spec channel registration Jonathan Cameron
2011-05-18 13:41 ` [PATCH 038/111] staging:iio:imu:adis16350 etc support into adis16400 driver Jonathan Cameron
2011-05-18 13:41 ` [PATCH 039/111] staging:iio:imu remove old adis16350. Support now in " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 040/111] staging:iio:imu:adis16400 add support for adis16300 Jonathan Cameron
2011-05-18 13:41 ` [PATCH 041/111] staging:iio:imu remove adis16300 driver Jonathan Cameron
2011-05-18 13:41 ` [PATCH 042/111] staging:iio:accel:adis16201 move to irqchip based trigger handling Jonathan Cameron
2011-05-18 13:41 ` [PATCH 043/111] staging:iio:accel:adis16203 " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 044/111] staging:iio:accel:adis16204 " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 045/111] staging:iio:accel:adis16209 " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 046/111] staging:iio:accel:adis16240 " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 047/111] staging:iio:adc:ad7298 " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 048/111] staging:iio:adc:ad7606 conversion to irq_chip based polling Jonathan Cameron
2011-05-18 13:41 ` [PATCH 049/111] staging:iio:adc:ad7887 move to irqchip based trigger handling Jonathan Cameron
2011-05-18 13:41 ` Jonathan Cameron [this message]
2011-05-18 13:41 ` [PATCH 051/111] staging:iio:gyro:adis16260 " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 052/111] staging:iio:trigger remove legacy pollfunc elements Jonathan Cameron
2011-05-18 13:41 ` [PATCH 053/111] staging:iio: Add core attribute handling for name of device Jonathan Cameron
2011-05-18 13:41 ` [PATCH 054/111] staging:iio: use the new central name attribute creation code Jonathan Cameron
2011-05-18 13:41 ` [PATCH 055/111] staging:iio:light:tsl2563: chan_spec based channel setup Jonathan Cameron
2011-05-18 13:41 ` [PATCH 056/111] staging:iio:accel:adis16201 move to chan_spec based setup Jonathan Cameron
2011-05-18 13:41 ` [PATCH 057/111] staging:iio:accel:adis16203 " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 058/111] staging:iio:accel:adis16204 " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 059/111] staging:iio:accel:adis16209 " Jonathan Cameron
2011-05-18 13:41 ` [PATCH 060/111] staging:iio:adc:ad7887: Convert to new channel registration method Jonathan Cameron
2011-05-18 13:41 ` [PATCH 061/111] staging:iio:adc:ad7887: Use private data space from iio_allocate_device Jonathan Cameron
2011-05-18 13:41 ` [PATCH 062/111] staging:iio:adc:ad799x: Convert to new channel registration method Jonathan Cameron
2011-05-18 13:41 ` [PATCH 063/111] staging:iio:adc:ad799x: Use private data space from iio_allocate_device Jonathan Cameron
2011-05-18 13:41 ` [PATCH 064/111] staging:iio:adc:ad799x removed unused headers Jonathan Cameron
2011-05-18 13:41 ` [PATCH 065/111] staging:iio:adc:ad7298: Convert to new channel registration method Jonathan Cameron
2011-05-18 13:41 ` [PATCH 066/111] staging:iio:accel: lis3l02dq add writing for calibscale and calibbias Jonathan Cameron
2011-05-18 13:41 ` [PATCH 067/111] staging:iio: Add chan info support for 'peak_raw' attributes Jonathan Cameron
2011-05-18 13:41 ` [PATCH 068/111] staging:iio:accel:adis16240 move to chan_spec based setup Jonathan Cameron
2011-05-18 13:41 ` [PATCH 069/111] staging:iio:gyro:adis16260 " Jonathan Cameron
2011-05-18 13:42 ` [PATCH 070/111] staging:iio:adc:ad7606 Convert to new channel registration method Update Add missing call to iio_trigger_notify_done() Set pollfunc top and bottom half handler Jonathan Cameron
2011-05-18 13:42 ` [PATCH 071/111] staging:iio:adc:ad7606: Use private data space from iio_allocate_device Jonathan Cameron
2011-05-18 13:42 ` [PATCH 072/111] staging:iio: Add channel types IIO_CURRENT and IIO_POWER Jonathan Cameron
2011-05-18 13:42 ` [PATCH 073/111] staging:iio:meter:ade7758: Update trigger to the new API Jonathan Cameron
2011-05-18 13:42 ` [PATCH 074/111] staging:iio:meter:ade7758: Fix timing on SPI read accessor functions Jonathan Cameron
2011-05-18 13:42 ` [PATCH 075/111] iio:staging:meter:ade7758: Fix return value of ade7758_write_reset Jonathan Cameron
2011-05-18 13:42 ` [PATCH 076/111] staging:iio:meter:ade7758: Fix list and set of available sample frequencies Jonathan Cameron
2011-05-18 13:42 ` [PATCH 077/111] staging:iio:meter:ade7758: Use iio channel spec and miscellaneous other changes Jonathan Cameron
2011-05-18 13:42 ` [PATCH 078/111] staging:iio: rip out scan_el attributes. Now handled as iio_dev_attrs like everything else Jonathan Cameron
2011-05-18 13:42 ` [PATCH 079/111] staging:iio:max1363 trivial removal of unused trig pointer Jonathan Cameron
2011-05-18 13:42 ` [PATCH 080/111] staging:iio:max1363 add new 2 channels parts form maxim, 11644-7 Jonathan Cameron
2011-05-18 13:42 ` [PATCH 081/111] staging:iio:trigger sysfs userspace trigger rework Jonathan Cameron
2011-05-18 13:42 ` [PATCH 082/111] staging:iio:core clean out unused elements Jonathan Cameron
2011-05-18 13:42 ` [PATCH 083/111] staging:iio:adc:ad7150 fix event codes Jonathan Cameron
2011-05-18 13:42 ` [PATCH 084/111] staging:iio:adc:ad7816 and adt75 change to meaningful event code Jonathan Cameron
2011-05-18 13:42 ` [PATCH 085/111] staging:iio:adc:ad7291 remove abuse of buffer events and replace with something almost sane Jonathan Cameron
2011-05-18 13:42 ` [PATCH 086/111] staging:iio:adc:adt7310 replace abuse of buffer events Jonathan Cameron
2011-05-18 13:42 ` [PATCH 087/111] staging:iio:adc:adt7410 " Jonathan Cameron
2011-05-18 13:42 ` [PATCH 088/111] staging:iio:addac:adt7316 " Jonathan Cameron
2011-05-18 13:42 ` [PATCH 089/111] staging:iio:buffer - remove unused event code for " Jonathan Cameron
2011-05-18 13:42 ` [PATCH 090/111] staging:iio:lis3l02dq remerge the two interrupt handlers Jonathan Cameron
2011-05-18 13:42 ` [PATCH 091/111] staging:iio: iio_event_interfaces - clean out unused elements Jonathan Cameron
2011-05-18 13:42 ` [PATCH 092/111] staging:iio:trigger handle name attr in core, remove old alloc and register any control_attrs via struct device Jonathan Cameron
2011-05-18 13:42 ` [PATCH 093/111] drivers:staging:iio:imu:adis16400 avoid allocating rx, tx, and state separately from iio_dev Jonathan Cameron
2011-05-18 13:42 ` [PATCH 094/111] staging:iio: rationalization of different buffer implementation hooks Jonathan Cameron
2011-05-18 13:42 ` [PATCH 095/111] staging:iio:adc:AD7298: Use private data space from iio_allocate_device Jonathan Cameron
2011-05-18 13:42 ` [PATCH 096/111] staging:iio: Rip out helper for software rings Jonathan Cameron
2011-05-18 13:42 ` [PATCH 097/111] staging:iio:adc: AD7606: Consitently use indio_dev Jonathan Cameron
2011-05-18 13:42 ` [PATCH 098/111] staging:iio:adc: AD7606: Drop dev_data in favour of iio_priv() Jonathan Cameron
2011-05-18 13:42 ` [PATCH 099/111] staging:iio:adc:AD7780: Convert to new channel registration method Jonathan Cameron
2011-05-18 13:42 ` [PATCH 100/111] staging:iio:adc: AD7780: Use private data space from iio_allocate_device + trivial fixes Jonathan Cameron
2011-05-18 13:42 ` [PATCH 101/111] staging:iio:ad7780 trivial unused header cleanup Jonathan Cameron
2011-05-18 13:42 ` [PATCH 102/111] staging:iio: poll func allocation clean up Jonathan Cameron
2011-05-18 13:42 ` [PATCH 103/111] staging:iio:core cleanup: squash tiny wrappers and use dev_set_name to handle creation of event interface name Jonathan Cameron
2011-05-18 13:42 ` [PATCH 104/111] staging:iio: ring core cleanups + check if read_last available in lis3l02dq Jonathan Cameron
2011-05-18 13:42 ` [PATCH 105/111] staging:iio:accel:lis3l02dq make write_reg_8 take value not a pointer to value Jonathan Cameron
2011-05-18 13:42 ` [PATCH 106/111] staging:iio:meter:ade7758: Use private data space from iio_allocate_device Jonathan Cameron
2011-05-18 13:42 ` [PATCH 107/111] staging:iio: implement an iio_info structure to take some of the constant elements out of iio_dev Jonathan Cameron
2011-05-18 13:42 ` [PATCH 108/111] staging:iio:max1363 misc cleanups and use of for_each_bit_set to simplify event code spitting out Jonathan Cameron
2011-05-18 13:42 ` [PATCH 109/111] staging:iio: use pollfunc allocation helpers in remaining drivers Jonathan Cameron
2011-05-18 13:42 ` [PATCH 110/111] staging:iio:documenation partial update Jonathan Cameron
2011-05-18 13:42 ` [PATCH 111/111] staging:iio: Trivial kconfig reorganization and uniformity improvements Jonathan Cameron
2011-05-18 15:25 ` [PATCH 000/111] IIO: chan_spec intro, generic irq based triggers, Greg KH
2011-05-18 15:35   ` Jonathan Cameron
2011-05-19 23:17     ` Greg KH
2011-05-20 12:50       ` Jonathan Cameron
2011-05-20 13:02         ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1305726161-5606-51-git-send-email-jic23@cam.ac.uk \
    --to=jic23@cam.ac.uk \
    --cc=greg@kroah.com \
    --cc=linux-iio@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.