@@ -73,7 +73,7 @@ static void evdev_pass_event(struct evdev_client *client,
}
spin_unlock(&client->buffer_lock);
- if (event->type == EV_SYN)
+ if (event->type == EV_SYN && event->code != SYN_MT_REPORT)
kill_fasync(&client->fasync, SIGIO, POLL_IN);
}
@@ -103,7 +103,8 @@ static void evdev_event(struct input_handle *handle,
rcu_read_unlock();
- wake_up_interruptible(&evdev->wait);
+ if (type == EV_SYN && code != SYN_MT_REPORT)
+ wake_up_interruptible(&evdev->wait);
}
static int evdev_fasync(int fd, struct file *file, int on)