Commit 8b3179b7 authored by Sean Young's avatar Sean Young Committed by Mauro Carvalho Chehab

media: streamzap: remove redundant gap calculations

The lirc core already introduces gaps, so there is no need for this in
the driver.
Signed-off-by: default avatarSean Young <sean@mess.org>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab+huawei@kernel.org>
parent 4df69e46
......@@ -21,7 +21,6 @@
#include <linux/device.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/ktime.h>
#include <linux/usb.h>
#include <linux/usb/input.h>
#include <media/rc-core.h>
......@@ -75,13 +74,6 @@ struct streamzap_ir {
/* track what state we're in */
enum StreamzapDecoderState decoder_state;
/* tracks whether we are currently receiving some signal */
bool idle;
/* sum of signal lengths received since signal start */
unsigned long sum;
/* start time of signal; necessary for gap tracking */
ktime_t signal_last;
ktime_t signal_start;
char phys[64];
};
......@@ -115,37 +107,11 @@ static void sz_push(struct streamzap_ir *sz, struct ir_raw_event rawir)
static void sz_push_full_pulse(struct streamzap_ir *sz,
unsigned char value)
{
struct ir_raw_event rawir = {};
if (sz->idle) {
int delta;
sz->signal_last = sz->signal_start;
sz->signal_start = ktime_get_real();
delta = ktime_us_delta(sz->signal_start, sz->signal_last);
rawir.pulse = false;
if (delta > (15 * USEC_PER_SEC)) {
/* really long time */
rawir.duration = IR_MAX_DURATION;
} else {
rawir.duration = delta;
rawir.duration -= sz->sum;
rawir.duration = (rawir.duration > IR_MAX_DURATION) ?
IR_MAX_DURATION : rawir.duration;
}
sz_push(sz, rawir);
sz->idle = false;
sz->sum = 0;
}
struct ir_raw_event rawir = {
.pulse = true,
.duration = value * SZ_RESOLUTION + SZ_RESOLUTION / 2,
};
rawir.pulse = true;
rawir.duration = ((int) value) * SZ_RESOLUTION;
rawir.duration += SZ_RESOLUTION / 2;
sz->sum += rawir.duration;
rawir.duration = (rawir.duration > IR_MAX_DURATION) ?
IR_MAX_DURATION : rawir.duration;
sz_push(sz, rawir);
}
......@@ -158,12 +124,11 @@ static void sz_push_half_pulse(struct streamzap_ir *sz,
static void sz_push_full_space(struct streamzap_ir *sz,
unsigned char value)
{
struct ir_raw_event rawir = {};
struct ir_raw_event rawir = {
.pulse = false,
.duration = value * SZ_RESOLUTION + SZ_RESOLUTION / 2,
};
rawir.pulse = false;
rawir.duration = ((int) value) * SZ_RESOLUTION;
rawir.duration += SZ_RESOLUTION / 2;
sz->sum += rawir.duration;
sz_push(sz, rawir);
}
......@@ -235,7 +200,6 @@ static void streamzap_callback(struct urb *urb)
.pulse = false,
.duration = sz->rdev->timeout
};
sz->idle = true;
sz_push(sz, rawir);
} else {
sz_push_full_space(sz, sz->buf_in[i]);
......@@ -368,7 +332,6 @@ static int streamzap_probe(struct usb_interface *intf,
if (!sz->rdev)
goto rc_dev_fail;
sz->idle = true;
sz->decoder_state = PulseSpace;
/* FIXME: don't yet have a way to set this */
sz->rdev->timeout = SZ_TIMEOUT * SZ_RESOLUTION;
......@@ -379,8 +342,6 @@ static int streamzap_probe(struct usb_interface *intf,
sz->max_timeout = SZ_TIMEOUT * SZ_RESOLUTION;
#endif
sz->signal_start = ktime_get_real();
/* Complete final initialisations */
usb_fill_int_urb(sz->urb_in, usbdev, pipe, sz->buf_in,
maxp, streamzap_callback, sz, endpoint->bInterval);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment