aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iio/adc
diff options
context:
space:
mode:
authorJonathan Cameron <jic23@kernel.org>2012-06-30 15:06:00 -0400
committerJonathan Cameron <jic23@kernel.org>2012-11-10 05:17:21 -0500
commit84b36ce5f79c01f792c623f14e92ed86cdccb42f (patch)
treeaa763089df10007bc42aa02b747e652e0b99003e /drivers/iio/adc
parent4eb3ccf157639a9d9c7829de94017c46c73d9cc4 (diff)
staging:iio: Add support for multiple buffers
Route all buffer writes through the demux. Addition or removal of a buffer results in tear down and setup of all the buffers for a given device. Signed-off-by: Jonathan Cameron <jic23@kernel.org> Tested-by: srinivas pandruvada <srinivas.pandruvada@intel.com>
Diffstat (limited to 'drivers/iio/adc')
-rw-r--r--drivers/iio/adc/ad7266.c3
-rw-r--r--drivers/iio/adc/ad7476.c2
-rw-r--r--drivers/iio/adc/ad7887.c2
-rw-r--r--drivers/iio/adc/ad_sigma_delta.c2
-rw-r--r--drivers/iio/adc/at91_adc.c3
5 files changed, 5 insertions, 7 deletions
diff --git a/drivers/iio/adc/ad7266.c b/drivers/iio/adc/ad7266.c
index b11f214779a2..a6f4fc5f8201 100644
--- a/drivers/iio/adc/ad7266.c
+++ b/drivers/iio/adc/ad7266.c
@@ -91,7 +91,6 @@ static irqreturn_t ad7266_trigger_handler(int irq, void *p)
91{ 91{
92 struct iio_poll_func *pf = p; 92 struct iio_poll_func *pf = p;
93 struct iio_dev *indio_dev = pf->indio_dev; 93 struct iio_dev *indio_dev = pf->indio_dev;
94 struct iio_buffer *buffer = indio_dev->buffer;
95 struct ad7266_state *st = iio_priv(indio_dev); 94 struct ad7266_state *st = iio_priv(indio_dev);
96 int ret; 95 int ret;
97 96
@@ -99,7 +98,7 @@ static irqreturn_t ad7266_trigger_handler(int irq, void *p)
99 if (ret == 0) { 98 if (ret == 0) {
100 if (indio_dev->scan_timestamp) 99 if (indio_dev->scan_timestamp)
101 ((s64 *)st->data)[1] = pf->timestamp; 100 ((s64 *)st->data)[1] = pf->timestamp;
102 iio_push_to_buffer(buffer, (u8 *)st->data); 101 iio_push_to_buffers(indio_dev, (u8 *)st->data);
103 } 102 }
104 103
105 iio_trigger_notify_done(indio_dev->trig); 104 iio_trigger_notify_done(indio_dev->trig);
diff --git a/drivers/iio/adc/ad7476.c b/drivers/iio/adc/ad7476.c
index 7f2f45a0a48d..330248bfebae 100644
--- a/drivers/iio/adc/ad7476.c
+++ b/drivers/iio/adc/ad7476.c
@@ -76,7 +76,7 @@ static irqreturn_t ad7476_trigger_handler(int irq, void *p)
76 if (indio_dev->scan_timestamp) 76 if (indio_dev->scan_timestamp)
77 ((s64 *)st->data)[1] = time_ns; 77 ((s64 *)st->data)[1] = time_ns;
78 78
79 iio_push_to_buffer(indio_dev->buffer, st->data); 79 iio_push_to_buffers(indio_dev, st->data);
80done: 80done:
81 iio_trigger_notify_done(indio_dev->trig); 81 iio_trigger_notify_done(indio_dev->trig);
82 82
diff --git a/drivers/iio/adc/ad7887.c b/drivers/iio/adc/ad7887.c
index fd62309b4d3d..81153fafac7a 100644
--- a/drivers/iio/adc/ad7887.c
+++ b/drivers/iio/adc/ad7887.c
@@ -134,7 +134,7 @@ static irqreturn_t ad7887_trigger_handler(int irq, void *p)
134 memcpy(st->data + indio_dev->scan_bytes - sizeof(s64), 134 memcpy(st->data + indio_dev->scan_bytes - sizeof(s64),
135 &time_ns, sizeof(time_ns)); 135 &time_ns, sizeof(time_ns));
136 136
137 iio_push_to_buffer(indio_dev->buffer, st->data); 137 iio_push_to_buffers(indio_dev, st->data);
138done: 138done:
139 iio_trigger_notify_done(indio_dev->trig); 139 iio_trigger_notify_done(indio_dev->trig);
140 140
diff --git a/drivers/iio/adc/ad_sigma_delta.c b/drivers/iio/adc/ad_sigma_delta.c
index 67baa1363d7a..afe6d78c8ff0 100644
--- a/drivers/iio/adc/ad_sigma_delta.c
+++ b/drivers/iio/adc/ad_sigma_delta.c
@@ -391,7 +391,7 @@ static irqreturn_t ad_sd_trigger_handler(int irq, void *p)
391 break; 391 break;
392 } 392 }
393 393
394 iio_push_to_buffer(indio_dev->buffer, (uint8_t *)data); 394 iio_push_to_buffers(indio_dev, (uint8_t *)data);
395 395
396 iio_trigger_notify_done(indio_dev->trig); 396 iio_trigger_notify_done(indio_dev->trig);
397 sigma_delta->irq_dis = false; 397 sigma_delta->irq_dis = false;
diff --git a/drivers/iio/adc/at91_adc.c b/drivers/iio/adc/at91_adc.c
index 2e2c9a80aa37..03b85940f4ba 100644
--- a/drivers/iio/adc/at91_adc.c
+++ b/drivers/iio/adc/at91_adc.c
@@ -65,7 +65,6 @@ static irqreturn_t at91_adc_trigger_handler(int irq, void *p)
65 struct iio_poll_func *pf = p; 65 struct iio_poll_func *pf = p;
66 struct iio_dev *idev = pf->indio_dev; 66 struct iio_dev *idev = pf->indio_dev;
67 struct at91_adc_state *st = iio_priv(idev); 67 struct at91_adc_state *st = iio_priv(idev);
68 struct iio_buffer *buffer = idev->buffer;
69 int i, j = 0; 68 int i, j = 0;
70 69
71 for (i = 0; i < idev->masklength; i++) { 70 for (i = 0; i < idev->masklength; i++) {
@@ -81,7 +80,7 @@ static irqreturn_t at91_adc_trigger_handler(int irq, void *p)
81 *timestamp = pf->timestamp; 80 *timestamp = pf->timestamp;
82 } 81 }
83 82
84 iio_push_to_buffer(buffer, st->buffer); 83 iio_push_to_buffers(indio_dev, (u8 *)st->buffer);
85 84
86 iio_trigger_notify_done(idev->trig); 85 iio_trigger_notify_done(idev->trig);
87 86