@@ -262,9 +262,6 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev)
return 0;
case STATE_HEADER_BIT_END:
- if (!is_transition(&ev, &dev->raw->prev_ev))
- break;
-
decrease_duration(&ev, MCIR2_BIT_END);
if (data->count != MCIR2_HEADER_NBITS) {
@@ -301,9 +298,6 @@ static int ir_mce_kbd_decode(struct rc_dev *dev, struct ir_raw_event ev)
return 0;
case STATE_BODY_BIT_END:
- if (!is_transition(&ev, &dev->raw->prev_ev))
- break;
-
if (data->count == data->wanted_bits)
data->state = STATE_FINISHED;
else
@@ -88,9 +88,6 @@ static int ir_rc5_decode(struct rc_dev *dev, struct ir_raw_event ev)
return 0;
case STATE_BIT_END:
- if (!is_transition(&ev, &dev->raw->prev_ev))
- break;
-
if (data->count == CHECK_RC5X_NBITS)
data->state = STATE_CHECK_RC5X;
else
@@ -145,9 +145,6 @@ static int ir_rc6_decode(struct rc_dev *dev, struct ir_raw_event ev)
return 0;
case STATE_HEADER_BIT_END:
- if (!is_transition(&ev, &dev->raw->prev_ev))
- break;
-
if (data->count == RC6_HEADER_NBITS)
data->state = STATE_TOGGLE_START;
else
@@ -165,8 +162,7 @@ static int ir_rc6_decode(struct rc_dev *dev, struct ir_raw_event ev)
return 0;
case STATE_TOGGLE_END:
- if (!is_transition(&ev, &dev->raw->prev_ev) ||
- !geq_margin(ev.duration, RC6_TOGGLE_END, RC6_UNIT / 2))
+ if (!geq_margin(ev.duration, RC6_TOGGLE_END, RC6_UNIT / 2))
break;
if (!(data->header & RC6_STARTBIT_MASK)) {
@@ -210,9 +206,6 @@ static int ir_rc6_decode(struct rc_dev *dev, struct ir_raw_event ev)
break;
case STATE_BODY_BIT_END:
- if (!is_transition(&ev, &dev->raw->prev_ev))
- break;
-
if (data->count == data->wanted_bits)
data->state = STATE_FINISHED;
else
@@ -54,7 +54,6 @@ struct ir_raw_event_ctrl {
struct timer_list edge_handle;
/* raw decoder state follows */
- struct ir_raw_event prev_ev;
struct ir_raw_event this_ev;
struct nec_dec {
int state;
@@ -130,11 +129,6 @@ static inline bool eq_margin(unsigned d1, unsigned d2, unsigned margin)
return ((d1 > (d2 - margin)) && (d1 < (d2 + margin)));
}
-static inline bool is_transition(struct ir_raw_event *x, struct ir_raw_event *y)
-{
- return x->pulse != y->pulse;
-}
-
static inline void decrease_duration(struct ir_raw_event *ev, unsigned duration)
{
if (duration > ev->duration)
@@ -32,7 +32,6 @@ static int ir_raw_event_thread(void *data)
handler->protocols || !handler->protocols)
handler->decode(raw->dev, ev);
ir_lirc_raw_event(raw->dev, ev);
- raw->prev_ev = ev;
}
mutex_unlock(&ir_raw_handler_lock);
The raw kfifo should never contain successive pulse events or space events. If it did occur, The IR decoders would not be able to deal with this anyway. There is no need to check that a raw timing event is a transition: it always is. Signed-off-by: Sean Young <sean@mess.org> --- drivers/media/rc/ir-mce_kbd-decoder.c | 6 ------ drivers/media/rc/ir-rc5-decoder.c | 3 --- drivers/media/rc/ir-rc6-decoder.c | 9 +-------- drivers/media/rc/rc-core-priv.h | 6 ------ drivers/media/rc/rc-ir-raw.c | 1 - 5 files changed, 1 insertion(+), 24 deletions(-)