Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 192933
b: refs/heads/master
c: 587835a
h: refs/heads/master
i:
  192931: 3c482ff
v: v3
  • Loading branch information
Mauro Carvalho Chehab committed May 19, 2010
1 parent 2c9310f commit 02f4a20
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 71 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: 26d5683d36729f11f5764909ae37c69488596d36
refs/heads/master: 587835a4b0ada7d78c4f3300e3ab26b7b2495705
32 changes: 3 additions & 29 deletions trunk/drivers/media/IR/ir-nec-decoder.c
Original file line number Diff line number Diff line change
Expand Up @@ -125,14 +125,14 @@ static struct attribute_group decoder_attribute_group = {


/**
* handle_event() - Decode one NEC pulse or space
* ir_nec_decode() - Decode one NEC pulse or space
* @input_dev: the struct input_dev descriptor of the device
* @ev: event array with type/duration of pulse/space
*
* This function returns -EINVAL if the pulse violates the state machine
*/
static int handle_event(struct input_dev *input_dev,
struct ir_raw_event *ev)
static int ir_nec_decode(struct input_dev *input_dev,
struct ir_raw_event *ev)
{
struct decoder_data *data;
struct ir_input_dev *ir_dev = input_get_drvdata(input_dev);
Expand Down Expand Up @@ -289,32 +289,6 @@ static int handle_event(struct input_dev *input_dev,
return -EINVAL;
}

/**
* ir_nec_decode() - Decodes all NEC pulsecodes on a given array
* @input_dev: the struct input_dev descriptor of the device
* @evs: event array with type/duration of pulse/space
* @len: length of the array
* This function returns the number of decoded pulses
*/
static int ir_nec_decode(struct input_dev *input_dev,
struct ir_raw_event *evs,
int len)
{
struct ir_input_dev *ir_dev = input_get_drvdata(input_dev);
struct decoder_data *data;
int pos = 0;
int rc = 0;

data = get_decoder_data(ir_dev);
if (!data || !data->enabled)
return 0;

for (pos = 0; pos < len; pos++)
handle_event(input_dev, &evs[pos]);

return rc;
}

static int ir_nec_register(struct input_dev *input_dev)
{
struct ir_input_dev *ir_dev = input_get_drvdata(input_dev);
Expand Down
20 changes: 8 additions & 12 deletions trunk/drivers/media/IR/ir-raw-event.c
Original file line number Diff line number Diff line change
Expand Up @@ -138,37 +138,33 @@ int ir_raw_event_handle(struct input_dev *input_dev)
{
struct ir_input_dev *ir = input_get_drvdata(input_dev);
int rc;
struct ir_raw_event *evs;
struct ir_raw_event ev;
int len, i;

/*
* Store the events into a temporary buffer. This allows calling more than
* one decoder to deal with the received data
*/
len = kfifo_len(&ir->raw->kfifo) / sizeof(*evs);
len = kfifo_len(&ir->raw->kfifo) / sizeof(ev);
if (!len)
return 0;
evs = kmalloc(len * sizeof(*evs), GFP_ATOMIC);

for (i = 0; i < len; i++) {
rc = kfifo_out(&ir->raw->kfifo, &evs[i], sizeof(*evs));
if (rc != sizeof(*evs)) {
rc = kfifo_out(&ir->raw->kfifo, &ev, sizeof(ev));
if (rc != sizeof(ev)) {
IR_dprintk(1, "overflow error: received %d instead of %zd\n",
rc, sizeof(*evs));
rc, sizeof(ev));
return -EINVAL;
}
IR_dprintk(2, "event type %d, time before event: %07luus\n",
evs[i].type, (evs[i].delta.tv_nsec + 500) / 1000);
ev.type, (ev.delta.tv_nsec + 500) / 1000);
rc = RUN_DECODER(decode, input_dev, &ev);
}

/*
* Call all ir decoders. This allows decoding the same event with
* more than one protocol handler. It returns the number of keystrokes
* sent to the event interface
* more than one protocol handler.
*/
rc = RUN_DECODER(decode, input_dev, evs, len);

kfree(evs);

return rc;
}
Expand Down
28 changes: 1 addition & 27 deletions trunk/drivers/media/IR/ir-rc5-decoder.c
Original file line number Diff line number Diff line change
Expand Up @@ -142,7 +142,7 @@ static struct attribute_group decoder_attribute_group = {
*
* This function returns -EINVAL if the pulse violates the state machine
*/
static int handle_event(struct input_dev *input_dev,
static int ir_rc5_decode(struct input_dev *input_dev,
struct ir_raw_event *ev)
{
struct decoder_data *data;
Expand Down Expand Up @@ -273,32 +273,6 @@ printk("%d halves, %d bits\n", n_half, bit);
return -EINVAL;
}

/**
* ir_rc5_decode() - Decodes all RC-5 pulsecodes on a given array
* @input_dev: the struct input_dev descriptor of the device
* @evs: event array with type/duration of pulse/space
* @len: length of the array
* This function returns the number of decoded pulses
*/
static int ir_rc5_decode(struct input_dev *input_dev,
struct ir_raw_event *evs,
int len)
{
struct ir_input_dev *ir_dev = input_get_drvdata(input_dev);
struct decoder_data *data;
int pos = 0;
int rc = 0;

data = get_decoder_data(ir_dev);
if (!data || !data->enabled)
return 0;

for (pos = 0; pos < len; pos++)
handle_event(input_dev, &evs[pos]);

return rc;
}

static int ir_rc5_register(struct input_dev *input_dev)
{
struct ir_input_dev *ir_dev = input_get_drvdata(input_dev);
Expand Down
3 changes: 1 addition & 2 deletions trunk/include/media/ir-core.h
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,7 @@ struct ir_raw_handler {
struct list_head list;

int (*decode)(struct input_dev *input_dev,
struct ir_raw_event *evs,
int len);
struct ir_raw_event *ev);
int (*raw_register)(struct input_dev *input_dev);
int (*raw_unregister)(struct input_dev *input_dev);
};
Expand Down

0 comments on commit 02f4a20

Please sign in to comment.