return -EINVAL;
now = ktime_get();
- ev.duration = ktime_sub(now, dev->raw->last_event);
+ ev.duration = ktime_to_ns(ktime_sub(now, dev->raw->last_event));
ev.pulse = !pulse;
rc = ir_raw_event_store(dev, &ev);
static void edge_handle(unsigned long arg)
{
struct rc_dev *dev = (struct rc_dev *)arg;
- ktime_t interval = ktime_get() - dev->raw->last_event;
+ ktime_t interval = ktime_sub(ktime_get(), dev->raw->last_event);
- if (interval >= dev->timeout) {
+ if (ktime_to_ns(interval) >= dev->timeout) {
DEFINE_IR_RAW_EVENT(ev);
ev.timeout = true;
- ev.duration = interval;
+ ev.duration = ktime_to_ns(interval);
ir_raw_event_store(dev, &ev);
} else {
mod_timer(&dev->raw->edge_handle,
- jiffies + nsecs_to_jiffies(dev->timeout - interval));
+ jiffies + nsecs_to_jiffies(dev->timeout -
+ ktime_to_ns(interval)));
}
ir_raw_event_handle(dev);