1
0
Fork 0
mirror of synced 2025-03-06 20:59:54 +01:00
linux/drivers/pps
Bastien Curutchet a01f6287c2 pps: clients: gpio: Bypass edge's direction check when not needed
In the IRQ handler, the GPIO's state is read to verify the direction of
the edge that triggered the interruption before generating the PPS event.
If a pulse is too short, the GPIO line can reach back its original state
before this verification and the PPS event is lost.

This check is needed when info->capture_clear is set because it needs
interruptions on both rising and falling edges. When info->capture_clear
is not set, interruption is triggered by one edge only so this check can
be omitted.

Add a warning if irq_handler is left without triggering any PPS event.
Bypass the edge's direction verification when info->capture_clear is not
set.

Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com>
Acked-by: Rodolfo Giometti <giometti@enneenne.com>
Link: https://lore.kernel.org/r/20250108153012.514925-1-bastien.curutchet@bootlin.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2025-01-10 16:12:33 +01:00
..
clients pps: clients: gpio: Bypass edge's direction check when not needed 2025-01-10 16:12:33 +01:00
generators drivers pps/generators: add dummy PPS generator 2025-01-08 13:18:09 +01:00
kapi.c pps: Fix a use-after-free 2025-01-07 15:16:48 +01:00
kc.c pps: Fix a use-after-free 2025-01-07 15:16:48 +01:00
kc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00
Kconfig treewide: replace '---help---' in Kconfig files with 'help' 2020-06-14 01:57:21 +09:00
Makefile drivers pps: add PPS generators support 2025-01-08 13:18:09 +01:00
pps.c pps: Fix a use-after-free 2025-01-07 15:16:48 +01:00
sysfs.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 61 2019-05-24 17:36:45 +02:00