git.samba.org
/
sfrench
/
cifs-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Input: evdev - use keyed wakeups
[sfrench/cifs-2.6.git]
/
drivers
/
input
/
evdev.c
diff --git
a/drivers/input/evdev.c
b/drivers/input/evdev.c
index d7dd6fcf2db05a8841e60a4089dd71212d15c476..f54d3d31f61dec99e9480fce5e3788a50221d02b 100644
(file)
--- a/
drivers/input/evdev.c
+++ b/
drivers/input/evdev.c
@@
-282,7
+282,8
@@
static void evdev_pass_values(struct evdev_client *client,
spin_unlock(&client->buffer_lock);
if (wakeup)
spin_unlock(&client->buffer_lock);
if (wakeup)
- wake_up_interruptible(&evdev->wait);
+ wake_up_interruptible_poll(&evdev->wait,
+ EPOLLIN | EPOLLOUT | EPOLLRDNORM | EPOLLWRNORM);
}
/*
}
/*
@@
-443,7
+444,7
@@
static void evdev_hangup(struct evdev *evdev)
kill_fasync(&client->fasync, SIGIO, POLL_HUP);
spin_unlock(&evdev->client_lock);
kill_fasync(&client->fasync, SIGIO, POLL_HUP);
spin_unlock(&evdev->client_lock);
- wake_up_interruptible
(&evdev->wait
);
+ wake_up_interruptible
_poll(&evdev->wait, EPOLLHUP | EPOLLERR
);
}
static int evdev_release(struct inode *inode, struct file *file)
}
static int evdev_release(struct inode *inode, struct file *file)
@@
-958,7
+959,7
@@
static int evdev_revoke(struct evdev *evdev, struct evdev_client *client,
client->revoked = true;
evdev_ungrab(evdev, client);
input_flush_device(&evdev->handle, file);
client->revoked = true;
evdev_ungrab(evdev, client);
input_flush_device(&evdev->handle, file);
- wake_up_interruptible
(&evdev->wait
);
+ wake_up_interruptible
_poll(&evdev->wait, EPOLLHUP | EPOLLERR
);
return 0;
}
return 0;
}