diff options
author | Jonathan Cameron <jic23@kernel.org> | 2012-06-30 15:06:00 -0400 |
---|---|---|
committer | Jonathan Cameron <jic23@kernel.org> | 2012-11-10 05:17:21 -0500 |
commit | 84b36ce5f79c01f792c623f14e92ed86cdccb42f (patch) | |
tree | aa763089df10007bc42aa02b747e652e0b99003e /drivers/iio/adc | |
parent | 4eb3ccf157639a9d9c7829de94017c46c73d9cc4 (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.c | 3 | ||||
-rw-r--r-- | drivers/iio/adc/ad7476.c | 2 | ||||
-rw-r--r-- | drivers/iio/adc/ad7887.c | 2 | ||||
-rw-r--r-- | drivers/iio/adc/ad_sigma_delta.c | 2 | ||||
-rw-r--r-- | drivers/iio/adc/at91_adc.c | 3 |
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); |
80 | done: | 80 | done: |
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); |
138 | done: | 138 | done: |
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 | ||