diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-12 01:59:44 +0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2012-12-12 01:59:44 +0400 |
commit | 8966961b31c251b854169e9886394c2a20f2cea7 (patch) | |
tree | 248a625b23335acbd5ca4b55eb136fe0dc8ba0aa /include/linux/iio/buffer.h | |
parent | 6a5971d8fea1f4a8c33dfe0cec6a1c490f0c9cde (diff) | |
parent | 7bcb57cde66c19df378f3468ea342166a8a4504d (diff) | |
download | linux-8966961b31c251b854169e9886394c2a20f2cea7.tar.xz |
Merge tag 'staging-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging
Pull staging driver tree merge from Greg Kroah-Hartman:
"Here's the big staging tree merge for 3.8-rc1
There's a lot of patches in here, the majority being the comedi
rework/cleanup that has been ongoing and is causing a huge reduction
in overall code size, which is amazing to watch. We also removed some
older drivers (telephony and rts_pstor), and added a new one (fwserial
which also came in through the tty tree due to tty api changes, take
that one if you get merge conflicts.)
The iio and ipack drivers are moving out of the staging area into
their own part of the kernel as they have been cleaned up sufficiently
and are working well.
Overall, again a reduction of code:
768 files changed, 31887 insertions(+), 82166 deletions(-)
All of this has been in the linux-next tree for a while.
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>"
* tag 'staging-3.8-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging: (1298 commits)
iio: imu: adis16480: remove duplicated include from adis16480.c
iio: gyro: adis16136: remove duplicated include from adis16136.c
iio:imu: adis16480: show_firmware() buffer too small
iio:gyro: adis16136: divide by zero in write_frequency()
iio: adc: Add Texas Instruments ADC081C021/027 support
iio:ad7793: Add support for the ad7796 and ad7797
iio:ad7793: Add support for the ad7798 and ad7799
staging:iio: Move ad7793 driver out of staging
staging:iio:ad7793: Implement stricter id checking
staging:iio:ad7793: Move register definitions from header to source
staging:iio:ad7793: Rework regulator handling
staging:iio:ad7793: Rework platform data
staging:iio:ad7793: Use kstrtol instead of strict_strtol
staging:iio:ad7793: Use usleep_range instead of msleep
staging:iio:ad7793: Fix temperature scale
staging:iio:ad7793: Fix VDD monitor scale
staging: gdm72xx: unlock on error in init_usb()
staging: panel: pass correct lengths to keypad_send_key()
staging: comedi: addi_apci_2032: fix interrupt support
staging: comedi: addi_apci_2032: move i_APCI2032_ConfigDigitalOutput()
...
Diffstat (limited to 'include/linux/iio/buffer.h')
-rw-r--r-- | include/linux/iio/buffer.h | 26 |
1 files changed, 20 insertions, 6 deletions
diff --git a/include/linux/iio/buffer.h b/include/linux/iio/buffer.h index c629b3a1d9a9..f3eea18fdf46 100644 --- a/include/linux/iio/buffer.h +++ b/include/linux/iio/buffer.h @@ -66,7 +66,8 @@ struct iio_buffer_access_funcs { * @stufftoread: [INTERN] flag to indicate new data. * @demux_list: [INTERN] list of operations required to demux the scan. * @demux_bounce: [INTERN] buffer for doing gather from incoming scan. - **/ + * @buffer_list: [INTERN] entry in the devices list of current buffers. + */ struct iio_buffer { int length; int bytes_per_datum; @@ -81,9 +82,22 @@ struct iio_buffer { const struct attribute_group *attrs; struct list_head demux_list; unsigned char *demux_bounce; + struct list_head buffer_list; }; /** + * iio_update_buffers() - add or remove buffer from active list + * @indio_dev: device to add buffer to + * @insert_buffer: buffer to insert + * @remove_buffer: buffer_to_remove + * + * Note this will tear down the all buffering and build it up again + */ +int iio_update_buffers(struct iio_dev *indio_dev, + struct iio_buffer *insert_buffer, + struct iio_buffer *remove_buffer); + +/** * iio_buffer_init() - Initialize the buffer structure * @buffer: buffer to be initialized **/ @@ -115,11 +129,11 @@ int iio_scan_mask_set(struct iio_dev *indio_dev, struct iio_buffer *buffer, int bit); /** - * iio_push_to_buffer() - push to a registered buffer. - * @buffer: IIO buffer structure for device - * @data: the data to push to the buffer + * iio_push_to_buffers() - push to a registered buffer. + * @indio_dev: iio_dev structure for device. + * @data: Full scan. */ -int iio_push_to_buffer(struct iio_buffer *buffer, unsigned char *data); +int iio_push_to_buffers(struct iio_dev *indio_dev, unsigned char *data); int iio_update_demux(struct iio_dev *indio_dev); @@ -181,7 +195,7 @@ bool iio_validate_scan_mask_onehot(struct iio_dev *indio_dev, #else /* CONFIG_IIO_BUFFER */ static inline int iio_buffer_register(struct iio_dev *indio_dev, - struct iio_chan_spec *channels, + const struct iio_chan_spec *channels, int num_channels) { return 0; |