Skip to content

Commit

Permalink
staging:iio: remove legacy event chrdev for the buffers
Browse files Browse the repository at this point in the history
part of sca3000 driver temporarily disabled (buffer won't run
anyway).  This section is replaced later in this patch set.

Signed-off-by: Jonathan Cameron <jic23@cam.ac.uk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
  • Loading branch information
Jonathan Cameron authored and Greg Kroah-Hartman committed May 19, 2011
1 parent a734834 commit b9d40a9
Show file tree
Hide file tree
Showing 6 changed files with 5 additions and 103 deletions.
2 changes: 2 additions & 0 deletions drivers/staging/iio/accel/sca3000_ring.c
Original file line number Diff line number Diff line change
Expand Up @@ -357,11 +357,13 @@ void sca3000_register_ring_funcs(struct iio_dev *indio_dev)
**/
void sca3000_ring_int_process(u8 val, struct iio_ring_buffer *ring)
{
/*
if (val & SCA3000_INT_STATUS_THREE_QUARTERS)
iio_push_ring_event(ring,
IIO_EVENT_CODE_RING_75_FULL,
0);
else if (val & SCA3000_INT_STATUS_HALF)
iio_push_ring_event(ring,
IIO_EVENT_CODE_RING_50_FULL, 0);
*/
}
14 changes: 0 additions & 14 deletions drivers/staging/iio/iio.h
Original file line number Diff line number Diff line change
Expand Up @@ -399,20 +399,6 @@ int __iio_push_event(struct iio_event_interface *ev_int,
int ev_code,
s64 timestamp);

/**
* iio_setup_ev_int() - configure an event interface (chrdev)
* @name: name used for resulting sysfs directory etc.
* @ev_int: interface we are configuring
* @owner: module that is responsible for registering this ev_int
* @dev: device whose ev_int this is
**/
int iio_setup_ev_int(struct iio_event_interface *ev_int,
const char *name,
struct module *owner,
struct device *dev);

void iio_free_ev_int(struct iio_event_interface *ev_int);

/**
* iio_allocate_chrdev() - Allocate a chrdev
* @handler: struct that contains relevant file handling for chrdev
Expand Down
4 changes: 2 additions & 2 deletions drivers/staging/iio/industrialio-core.c
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@ void iio_device_free_chrdev_minor(int val)
spin_unlock(&iio_ida_lock);
}

int iio_setup_ev_int(struct iio_event_interface *ev_int,
static int iio_setup_ev_int(struct iio_event_interface *ev_int,
const char *name,
struct module *owner,
struct device *dev)
Expand Down Expand Up @@ -445,7 +445,7 @@ int iio_setup_ev_int(struct iio_event_interface *ev_int,
return ret;
}

void iio_free_ev_int(struct iio_event_interface *ev_int)
static void iio_free_ev_int(struct iio_event_interface *ev_int)
{
device_unregister(&ev_int->dev);
put_device(&ev_int->dev);
Expand Down
58 changes: 1 addition & 57 deletions drivers/staging/iio/industrialio-ring.c
Original file line number Diff line number Diff line change
Expand Up @@ -23,16 +23,6 @@
#include "iio.h"
#include "ring_generic.h"

int iio_push_ring_event(struct iio_ring_buffer *ring_buf,
int event_code,
s64 timestamp)
{
return __iio_push_event(&ring_buf->ev_int,
event_code,
timestamp);
}
EXPORT_SYMBOL(iio_push_ring_event);

/**
* iio_ring_open() - chrdev file open for ring buffer access
*
Expand Down Expand Up @@ -116,43 +106,6 @@ static const struct file_operations iio_ring_fileops = {
.llseek = noop_llseek,
};

/**
* __iio_request_ring_buffer_event_chrdev() - allocate ring event chrdev
* @buf: ring buffer whose event chrdev we are allocating
* @id: id of this ring buffer (typically 0)
* @owner: the module who owns the ring buffer (for ref counting)
* @dev: device with which the chrdev is associated
**/
static inline int
__iio_request_ring_buffer_event_chrdev(struct iio_ring_buffer *buf,
int id,
struct module *owner,
struct device *dev)
{
int ret;

snprintf(buf->ev_int._name, sizeof(buf->ev_int._name),
"%s:event%d",
dev_name(&buf->dev),
id);
ret = iio_setup_ev_int(&(buf->ev_int),
buf->ev_int._name,
owner,
dev);
if (ret)
goto error_ret;
return 0;

error_ret:
return ret;
}

static inline void
__iio_free_ring_buffer_event_chrdev(struct iio_ring_buffer *buf)
{
iio_free_ev_int(&(buf->ev_int));
}

static void iio_ring_access_release(struct device *dev)
{
struct iio_ring_buffer *buf
Expand Down Expand Up @@ -227,7 +180,6 @@ void iio_ring_buffer_init(struct iio_ring_buffer *ring,
if (ring->access.mark_param_change)
ring->access.mark_param_change(ring);
ring->indio_dev = dev_info;
ring->ev_int.private = ring;
ring->access_handler.private = ring;
init_waitqueue_head(&ring->pollq);
}
Expand Down Expand Up @@ -399,19 +351,12 @@ int iio_ring_buffer_register_ex(struct iio_ring_buffer *ring, int id,
if (ret)
goto error_ret;

ret = __iio_request_ring_buffer_event_chrdev(ring,
0,
ring->owner,
&ring->dev);
if (ret)
goto error_remove_device;

ret = __iio_request_ring_buffer_access_chrdev(ring,
0,
ring->owner);

if (ret)
goto error_ret;
goto error_remove_device;

if (ring->scan_el_attrs) {
ret = sysfs_create_group(&ring->dev.kobj,
Expand Down Expand Up @@ -462,7 +407,6 @@ void iio_ring_buffer_unregister(struct iio_ring_buffer *ring)
{
__iio_ring_attr_cleanup(ring);
__iio_free_ring_buffer_access_chrdev(ring);
__iio_free_ring_buffer_event_chrdev(ring);
device_del(&ring->dev);
}
EXPORT_SYMBOL(iio_ring_buffer_unregister);
Expand Down
25 changes: 0 additions & 25 deletions drivers/staging/iio/ring_generic.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,29 +15,6 @@

struct iio_ring_buffer;

/**
* iio_push_ring_event() - ring buffer specific push to event chrdev
* @ring_buf: ring buffer that is the event source
* @event_code: event indentification code
* @timestamp: time of event
**/
int iio_push_ring_event(struct iio_ring_buffer *ring_buf,
int event_code,
s64 timestamp);
/**
* iio_push_or_escallate_ring_event() - escalate or add as appropriate
* @ring_buf: ring buffer that is the event source
* @event_code: event indentification code
* @timestamp: time of event
*
* Typical usecase is to escalate a 50% ring full to 75% full if no one has yet
* read the first event. Clearly the 50% full is no longer of interest in
* typical use case.
**/
int iio_push_or_escallate_ring_event(struct iio_ring_buffer *ring_buf,
int event_code,
s64 timestamp);

/**
* struct iio_ring_access_funcs - access functions for ring buffers.
* @mark_in_use: reference counting, typically to prevent module removal
Expand Down Expand Up @@ -106,7 +83,6 @@ struct iio_ring_access_funcs {
* @scan_mask: [INTERN] bitmask used in masking scan mode elements
* @scan_timestamp: [INTERN] does the scan mode include a timestamp
* @access_handler: [INTERN] chrdev access handling
* @ev_int: [INTERN] chrdev interface for the event chrdev
* @access: [DRIVER] ring access functions associated with the
* implementation.
* @preenable: [DRIVER] function to run prior to marking ring enabled
Expand All @@ -130,7 +106,6 @@ struct iio_ring_buffer {
u32 scan_mask;
bool scan_timestamp;
struct iio_handler access_handler;
struct iio_event_interface ev_int;
struct iio_ring_access_funcs access;
int (*preenable)(struct iio_dev *);
int (*postenable)(struct iio_dev *);
Expand Down
5 changes: 0 additions & 5 deletions drivers/staging/iio/ring_sw.c
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,6 @@ static int iio_store_to_sw_ring(struct iio_sw_ring_buffer *ring,
unsigned char *data, s64 timestamp)
{
int ret = 0;
int code;
unsigned char *temp_ptr, *change_test_ptr;

/* initial store */
Expand Down Expand Up @@ -133,10 +132,6 @@ static int iio_store_to_sw_ring(struct iio_sw_ring_buffer *ring,
if (ring->half_p == ring->data + ring->buf.length*ring->buf.bytes_per_datum)
ring->half_p = ring->data;
if (ring->half_p == ring->read_p) {
code = IIO_EVENT_CODE_RING_50_FULL;
ret = __iio_push_event(&ring->buf.ev_int,
code,
timestamp);
ring->buf.stufftoread = true;
wake_up_interruptible(&ring->buf.pollq);
}
Expand Down

0 comments on commit b9d40a9

Please sign in to comment.