|
@@ -194,21 +194,18 @@ static u32 bttv_rc5_decode(unsigned int code)
|
|
|
static void bttv_rc5_timer_end(unsigned long data)
|
|
|
{
|
|
|
struct bttv_ir *ir = (struct bttv_ir *)data;
|
|
|
- struct timeval tv;
|
|
|
+ ktime_t tv;
|
|
|
u32 gap, rc5, scancode;
|
|
|
u8 toggle, command, system;
|
|
|
|
|
|
/* get time */
|
|
|
- do_gettimeofday(&tv);
|
|
|
+ tv = ktime_get();
|
|
|
|
|
|
+ gap = ktime_to_us(ktime_sub(tv, ir->base_time));
|
|
|
/* avoid overflow with gap >1s */
|
|
|
- if (tv.tv_sec - ir->base_time.tv_sec > 1) {
|
|
|
+ if (gap > USEC_PER_SEC) {
|
|
|
gap = 200000;
|
|
|
- } else {
|
|
|
- gap = 1000000 * (tv.tv_sec - ir->base_time.tv_sec) +
|
|
|
- tv.tv_usec - ir->base_time.tv_usec;
|
|
|
}
|
|
|
-
|
|
|
/* signal we're ready to start a new code */
|
|
|
ir->active = false;
|
|
|
|
|
@@ -249,7 +246,7 @@ static void bttv_rc5_timer_end(unsigned long data)
|
|
|
static int bttv_rc5_irq(struct bttv *btv)
|
|
|
{
|
|
|
struct bttv_ir *ir = btv->remote;
|
|
|
- struct timeval tv;
|
|
|
+ ktime_t tv;
|
|
|
u32 gpio;
|
|
|
u32 gap;
|
|
|
unsigned long current_jiffies;
|
|
@@ -259,14 +256,12 @@ static int bttv_rc5_irq(struct bttv *btv)
|
|
|
|
|
|
/* get time of bit */
|
|
|
current_jiffies = jiffies;
|
|
|
- do_gettimeofday(&tv);
|
|
|
+ tv = ktime_get();
|
|
|
|
|
|
+ gap = ktime_to_us(ktime_sub(tv, ir->base_time));
|
|
|
/* avoid overflow with gap >1s */
|
|
|
- if (tv.tv_sec - ir->base_time.tv_sec > 1) {
|
|
|
+ if (gap > USEC_PER_SEC) {
|
|
|
gap = 200000;
|
|
|
- } else {
|
|
|
- gap = 1000000 * (tv.tv_sec - ir->base_time.tv_sec) +
|
|
|
- tv.tv_usec - ir->base_time.tv_usec;
|
|
|
}
|
|
|
|
|
|
dprintk("RC5 IRQ: gap %d us for %s\n",
|