Denis OSTERLAND-HEIM and Greg Kroah-Hartman
232f4ac646
pps: fix poll support
...
[ Upstream commit 12c409aa1e ]
Because pps_cdev_poll() returns unconditionally EPOLLIN,
a user space program that calls select/poll get always an immediate data
ready-to-read response. As a result the intended use to wait until next
data becomes ready does not work.
User space snippet:
struct pollfd pollfd = {
.fd = open("/dev/pps0", O_RDONLY),
.events = POLLIN|POLLERR,
.revents = 0 };
while(1) {
poll(&pollfd, 1, 2000/*ms*/); // returns immediate, but should wait
if(revents & EPOLLIN) { // always true
struct pps_fdata fdata;
memset(&fdata, 0, sizeof(memdata));
ioctl(PPS_FETCH, &fdata); // currently fetches data at max speed
}
}
Lets remember the last fetch event counter and compare this value
in pps_cdev_poll() with most recent event counter
and return 0 if they are equal.
Signed-off-by: Denis OSTERLAND-HEIM <denis.osterland@diehl.com >
Co-developed-by: Rodolfo Giometti <giometti@enneenne.com >
Signed-off-by: Rodolfo Giometti <giometti@enneenne.com >
Fixes: eae9d2ba0c ("LinuxPPS: core support")
Link: https://lore.kernel.org/all/f6bed779-6d59-4f0f-8a59-b6312bd83b4e@enneenne.com/
Acked-by: Rodolfo Giometti <giometti@enneenne.com >
Link: https://lore.kernel.org/r/c3c50ad1eb19ef553eca8a57c17f4c006413ab70.camel@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org >
Signed-off-by: Sasha Levin <sashal@kernel.org >
2025-08-15 12:04:54 +02:00
..
2024-03-15 10:48:13 -04:00
2024-03-06 14:45:14 +00:00
2024-12-19 18:08:54 +01:00
2024-12-14 19:53:12 +01:00
2024-10-22 15:56:42 +02:00
2024-12-14 19:54:27 +01:00
2024-02-23 09:12:40 +01:00
2024-10-22 15:56:51 +02:00
2025-02-21 13:49:03 +01:00
2025-06-04 14:40:14 +02:00
2025-06-27 11:07:10 +01:00
2025-06-27 11:07:32 +01:00
2024-02-23 09:12:49 +01:00
2024-04-03 15:19:33 +02:00
2024-05-17 11:55:54 +02:00
2024-06-21 14:35:51 +02:00
2024-09-12 11:10:21 +02:00
2025-04-10 14:33:38 +02:00
2024-05-17 11:56:10 +02:00
2025-03-07 16:56:42 +01:00
2025-07-10 15:59:44 +02:00
2024-06-12 11:03:08 +02:00
2025-06-27 11:07:08 +01:00
2024-12-14 19:54:53 +01:00
2025-06-27 11:07:37 +01:00
2025-04-25 10:43:52 +02:00
2025-02-21 13:49:29 +01:00
2025-06-27 11:07:24 +01:00
2024-08-29 17:30:15 +02:00
2024-06-12 11:03:08 +02:00
2024-08-14 13:53:01 +02:00
2024-12-14 19:54:08 +01:00
2024-04-27 17:07:17 +02:00
2024-07-18 13:18:34 +02:00
2024-08-29 17:30:17 +02:00
2025-04-25 10:44:03 +02:00
2024-03-06 14:45:19 +00:00
2024-12-14 19:53:57 +01:00
2025-02-21 13:50:04 +01:00
2024-02-23 09:12:51 +01:00
2024-08-14 13:52:57 +02:00
2024-07-05 09:31:59 +02:00
2024-07-18 13:18:31 +02:00
2024-05-17 11:56:20 +02:00
2024-02-23 09:12:51 +01:00
2024-11-08 16:26:43 +01:00
2024-12-19 18:08:58 +01:00
2025-07-06 10:57:59 +02:00
2025-04-10 14:33:38 +02:00
2025-06-04 14:40:25 +02:00
2025-04-10 14:33:35 +02:00
2024-06-12 11:03:34 +02:00
2025-07-10 15:59:54 +02:00
2025-05-09 09:41:36 +02:00
2024-08-29 17:30:14 +02:00
2024-12-14 19:53:51 +01:00
2024-10-17 15:21:32 +02:00
2024-06-12 11:03:21 +02:00
2024-12-14 19:54:55 +01:00
2024-04-10 16:28:32 +02:00
2024-03-26 18:21:02 -04:00
2024-05-17 11:56:16 +02:00
2025-06-04 14:40:01 +02:00
2024-12-14 19:54:49 +01:00
2025-02-21 13:50:04 +01:00
2024-05-02 16:29:29 +02:00
2024-12-14 19:54:37 +01:00
2024-03-26 18:20:23 -04:00
2024-10-17 15:21:10 +02:00
2024-10-17 15:22:03 +02:00
2024-02-23 09:12:51 +01:00
2025-05-02 07:47:09 +02:00
2025-08-15 12:04:52 +02:00
2025-07-17 18:32:10 +02:00
2024-07-25 09:49:20 +02:00
2024-09-08 07:53:10 +02:00
2024-07-11 12:47:14 +02:00
2025-04-10 14:33:33 +02:00
2024-05-17 11:56:07 +02:00
2024-04-03 15:19:42 +02:00
2025-06-27 11:07:24 +01:00
2024-12-14 19:53:17 +01:00
2025-06-04 14:40:22 +02:00
2024-05-17 11:55:52 +02:00
2025-06-27 11:07:38 +01:00
2024-09-08 07:53:09 +02:00
2025-07-06 10:57:58 +02:00
2024-10-17 15:22:04 +02:00
2025-03-28 21:58:48 +01:00
2025-02-21 13:49:03 +01:00
2025-01-09 13:30:02 +01:00
2024-02-23 09:12:38 +01:00
2025-04-10 14:33:31 +02:00
2025-03-28 21:58:53 +01:00
2024-12-27 13:53:00 +01:00
2024-11-08 16:26:42 +01:00
2025-02-21 13:50:09 +01:00
2025-07-06 10:58:04 +02:00
2024-04-17 11:18:28 +02:00
2024-08-29 17:30:17 +02:00
2024-12-14 19:53:19 +01:00
2024-08-03 08:49:05 +02:00
2025-02-21 13:49:20 +01:00
2024-06-27 13:46:22 +02:00
2025-02-21 13:49:39 +01:00
2024-12-14 19:54:46 +01:00
2025-07-10 15:59:49 +02:00
2024-12-14 19:54:00 +01:00
2024-07-11 12:47:16 +02:00
2025-06-04 14:40:08 +02:00
2024-03-01 13:26:36 +01:00
2024-11-08 16:26:47 +01:00
2024-07-25 09:49:07 +02:00
2025-06-27 11:07:38 +01:00
2025-06-27 11:07:38 +01:00
2024-11-22 15:37:34 +01:00
2024-07-18 13:18:31 +02:00
2024-06-27 13:46:23 +02:00
2025-05-18 08:21:26 +02:00
2024-03-26 18:20:52 -04:00
2025-06-04 14:40:12 +02:00
2024-07-11 12:47:04 +02:00
2025-03-07 16:56:36 +01:00
2024-03-06 14:45:08 +00:00
2024-12-14 19:53:34 +01:00
2024-03-06 14:45:17 +00:00
2025-06-04 14:40:26 +02:00
2024-11-14 13:15:10 +01:00
2025-04-25 10:43:52 +02:00
2024-06-12 11:03:17 +02:00
2025-03-28 21:58:52 +01:00
2024-07-05 09:31:50 +02:00
2024-08-03 08:49:05 +02:00
2024-09-04 13:24:59 +02:00
2025-02-21 13:50:11 +01:00
2024-12-14 19:54:28 +01:00
2025-05-02 07:46:52 +02:00
2024-02-23 09:12:51 +01:00
2025-06-04 14:40:16 +02:00
2025-06-04 14:40:25 +02:00
2025-02-21 13:48:56 +01:00
2025-04-10 14:33:30 +02:00
2025-01-23 17:17:12 +01:00
2025-08-15 12:04:54 +02:00
2024-02-23 09:12:51 +01:00
2024-06-12 11:03:21 +02:00
2025-03-28 21:59:01 +01:00
2024-08-14 13:52:50 +02:00
2024-12-14 19:54:28 +01:00
2024-12-19 18:08:53 +01:00
2025-03-07 16:56:51 +01:00
2024-04-13 13:05:25 +02:00
2024-12-14 19:53:19 +01:00
2025-06-04 14:40:16 +02:00
2025-06-04 14:40:16 +02:00
2024-04-03 15:19:35 +02:00
2025-04-25 10:43:25 +02:00
2024-02-23 09:12:51 +01:00
2024-10-17 15:21:10 +02:00
2024-12-14 19:54:31 +01:00
2025-02-21 13:48:54 +01:00
2025-02-01 18:30:05 +01:00
2024-04-10 16:28:34 +02:00
2024-07-11 12:47:16 +02:00
2024-12-14 19:53:19 +01:00
2024-11-01 01:56:02 +01:00
2024-06-12 11:03:32 +02:00
2025-03-07 16:56:37 +01:00
2024-12-14 19:53:57 +01:00
2024-06-16 13:41:42 +02:00
2024-12-14 19:53:33 +01:00
2024-03-01 13:26:36 +01:00
2024-11-22 15:37:35 +01:00
2024-02-23 09:12:51 +01:00
2024-02-23 09:12:51 +01:00
2024-12-19 18:08:59 +01:00
2024-03-01 13:26:32 +01:00
2024-05-17 11:56:24 +02:00
2024-04-27 17:07:10 +02:00
2024-07-05 09:31:59 +02:00
2024-08-11 12:35:51 +02:00
2024-08-03 08:49:34 +02:00
2024-11-14 13:15:16 +01:00
2024-05-17 11:56:13 +02:00
2025-05-22 14:10:00 +02:00
2025-01-02 10:30:54 +01:00
2025-06-04 14:40:03 +02:00
2025-06-04 14:40:03 +02:00
2024-06-27 13:46:17 +02:00
2024-11-01 01:56:02 +01:00
2025-05-18 08:21:24 +02:00
2024-04-17 11:18:23 +02:00
2024-08-29 17:30:56 +02:00
2024-10-17 15:21:46 +02:00
2025-01-17 13:34:49 +01:00
2024-11-14 13:15:18 +01:00
2024-12-14 19:54:14 +01:00
2024-10-17 15:21:12 +02:00
2024-04-03 15:19:46 +02:00
2024-09-18 19:23:04 +02:00
2025-01-02 10:30:48 +01:00
2024-12-27 13:53:01 +01:00
2024-10-17 15:21:26 +02:00