*
* 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;
if (!data)
return -EINVAL;
+ if (!data->enabled)
+ return 0;
+
/* Except for the initial event, what matters is the previous bit */
bit = (ev->type & IR_PULSE) ? 1 : 0;
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);