Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 236039
b: refs/heads/master
c: b949793
h: refs/heads/master
i:
  236037: c346ba4
  236035: 35c7416
  236031: 632ccd8
v: v3
  • Loading branch information
Jonathan Cameron authored and Greg Kroah-Hartman committed Feb 18, 2011
1 parent fa54ec6 commit 95cb10f
Show file tree
Hide file tree
Showing 4 changed files with 38 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: b174baf4b79a067b58a77b86893c55d2c018d6f4
refs/heads/master: b949793b2c319b9ea3c2594aab203664caf2923e
23 changes: 22 additions & 1 deletion trunk/drivers/staging/iio/accel/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -66,12 +66,33 @@ config LIS3L02DQ
tristate "ST Microelectronics LIS3L02DQ Accelerometer Driver"
depends on SPI
select IIO_TRIGGER if IIO_RING_BUFFER
select IIO_SW_RING if IIO_RING_BUFFER
depends on !IIO_RING_BUFFER || IIO_KFIFO_BUF || IIO_SW_RING
help
Say yes here to build SPI support for the ST microelectronics
accelerometer. The driver supplies direct access via sysfs files
and an event interface via a character device.

choice
prompt "Buffer type"
depends on LIS3L02DQ && IIO_RING_BUFFER

config LIS3L02DQ_BUF_KFIFO
depends on IIO_KFIFO_BUF
bool "Simple FIFO"
help
Kfifo based FIFO. Does not provide any events so it is up
to userspace to ensure it reads often enough that data is not
lost.

config LIS3L02DQ_BUF_RING_SW
depends on IIO_SW_RING
bool "IIO Software Ring"
help
Original IIO ring buffer implementation. Provides simple
buffer events, half full etc.

endchoice

config SCA3000
depends on IIO_RING_BUFFER
depends on SPI
Expand Down
10 changes: 10 additions & 0 deletions trunk/drivers/staging/iio/accel/lis3l02dq.h
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,16 @@ ssize_t lis3l02dq_read_accel_from_ring(struct device *dev,
int lis3l02dq_configure_ring(struct iio_dev *indio_dev);
void lis3l02dq_unconfigure_ring(struct iio_dev *indio_dev);

#ifdef CONFIG_LIS3L02DQ_BUF_RING_SW
#define lis3l02dq_free_buf iio_sw_rb_free
#define lis3l02dq_alloc_buf iio_sw_rb_allocate
#define lis3l02dq_register_buf_funcs iio_ring_sw_register_funcs
#endif
#ifdef CONFIG_LIS3L02DQ_BUF_KFIFO
#define lis3l02dq_free_buf iio_kfifo_free
#define lis3l02dq_alloc_buf iio_kfifo_allocate
#define lis3l02dq_register_buf_funcs iio_kfifo_register_funcs
#endif
#else /* CONFIG_IIO_RING_BUFFER */

static inline void lis3l02dq_remove_trigger(struct iio_dev *indio_dev)
Expand Down
9 changes: 5 additions & 4 deletions trunk/drivers/staging/iio/accel/lis3l02dq_ring.c
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
#include "../iio.h"
#include "../sysfs.h"
#include "../ring_sw.h"
#include "../kfifo_buf.h"
#include "accel.h"
#include "../trigger.h"
#include "lis3l02dq.h"
Expand Down Expand Up @@ -484,7 +485,7 @@ void lis3l02dq_remove_trigger(struct iio_dev *indio_dev)
void lis3l02dq_unconfigure_ring(struct iio_dev *indio_dev)
{
kfree(indio_dev->pollfunc);
iio_sw_rb_free(indio_dev->ring);
lis3l02dq_free_buf(indio_dev->ring);
}

int lis3l02dq_configure_ring(struct iio_dev *indio_dev)
Expand All @@ -495,13 +496,13 @@ int lis3l02dq_configure_ring(struct iio_dev *indio_dev)
INIT_WORK(&h->work_trigger_to_ring, lis3l02dq_trigger_bh_to_ring);
h->get_ring_element = &lis3l02dq_get_ring_element;

ring = iio_sw_rb_allocate(indio_dev);
ring = lis3l02dq_alloc_buf(indio_dev);
if (!ring)
return -ENOMEM;

indio_dev->ring = ring;
/* Effectively select the ring buffer implementation */
iio_ring_sw_register_funcs(&ring->access);
lis3l02dq_register_buf_funcs(&ring->access);
ring->bpe = 2;
ring->scan_el_attrs = &lis3l02dq_scan_el_group;
ring->scan_timestamp = true;
Expand All @@ -522,6 +523,6 @@ int lis3l02dq_configure_ring(struct iio_dev *indio_dev)
return 0;

error_iio_sw_rb_free:
iio_sw_rb_free(indio_dev->ring);
lis3l02dq_free_buf(indio_dev->ring);
return ret;
}

0 comments on commit 95cb10f

Please sign in to comment.