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) {
                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
 
                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
                return 0;
 
        case STATE_TOGGLE_END:
-               if (!is_transition(&ev, &dev->raw->prev_ev) ||
-                   !geq_margin(ev.duration, RC6_TOGGLE_END, RC6_UNIT / 2))
-                       break;
-
                if (!(data->header & RC6_STARTBIT_MASK)) {
                        dev_dbg(&dev->dev, "RC6 invalid start bit\n");
                        break;
                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