drivers/gpio/gpiolib-cdev.c | 291 +++++++++++++++++++----------------- 1 file changed, 151 insertions(+), 140 deletions(-)
This patch series is a collection of improvements to simplify the
code, improve readability, and compile out unused code.
There are no functional changes.
The first patch is a cleanup for my recent linereq_free() fix. I
noted then that the edge_detector_stop() could probably be safely
moved inside the line desc check block, but wanted to keep that
change minimal just in case. It can be safely moved, and so here
it is.
Patch 2 makes use of an existing macro to simplify a call.
Patch 3 replaces some more if-else chains with switches, which is
more readable (YMMV).
Patch 4 reorganizes the line identification code to share code
common to alternate paths.
Patch 5 consolidates a number of separate flags into one. This
reduces code complexity, simplifies any future edge source additions,
and makes patch 6 significantly simpler.
Patch 6 totally compiles out the hte specific code when CONFIG_HTE
is not selected.
I've based this series on gpio/for-current, as it requires the fix
patch -
commit c8e27a4a5136 ("gpiolib: cdev: fix null pointer dereference in linereq_free()")
Happy to rebase if that doesn't suit.
Dipen, I don't have any HTE compatible hardware to test with, so
could you check that this still works for you?
Changes v1 -> v2:
Address Andy's review comments, specifically
- Patch 4 move ternary initializer into a helper function.
- Patch 5 variable declaration ordering.
- Patch 6 remove obsoleted comment and tidy some if expressions.
Kent Gibson (6):
gpiolib: cdev: simplify linereq_free
gpiolib: cdev: simplify parameter in call to hte_edge_setup
gpiolib: cdev: replace if-else chains with switches
gpiolib: cdev: simplify line event identification
gpiolib: cdev: consolidate edge detector configuration flags
gpiolib: cdev: compile out HTE unless CONFIG_HTE selected
drivers/gpio/gpiolib-cdev.c | 291 +++++++++++++++++++-----------------
1 file changed, 151 insertions(+), 140 deletions(-)
base-commit: 7329b071729645e243b6207e76bca2f4951c991b
--
2.37.1
On 7/13/22 7:03 PM, Kent Gibson wrote:
> This patch series is a collection of improvements to simplify the
> code, improve readability, and compile out unused code.
> There are no functional changes.
>
> The first patch is a cleanup for my recent linereq_free() fix. I
> noted then that the edge_detector_stop() could probably be safely
> moved inside the line desc check block, but wanted to keep that
> change minimal just in case. It can be safely moved, and so here
> it is.
>
> Patch 2 makes use of an existing macro to simplify a call.
>
> Patch 3 replaces some more if-else chains with switches, which is
> more readable (YMMV).
>
> Patch 4 reorganizes the line identification code to share code
> common to alternate paths.
>
> Patch 5 consolidates a number of separate flags into one. This
> reduces code complexity, simplifies any future edge source additions,
> and makes patch 6 significantly simpler.
>
> Patch 6 totally compiles out the hte specific code when CONFIG_HTE
> is not selected.
>
> I've based this series on gpio/for-current, as it requires the fix
> patch -
> commit c8e27a4a5136 ("gpiolib: cdev: fix null pointer dereference in linereq_free()")
> Happy to rebase if that doesn't suit.
>
> Dipen, I don't have any HTE compatible hardware to test with, so
> could you check that this still works for you?
Only hte logic
Tested-by: Dipen Patel <dipenp@nvidia.com>
>
> Changes v1 -> v2:
> Address Andy's review comments, specifically
> - Patch 4 move ternary initializer into a helper function.
> - Patch 5 variable declaration ordering.
> - Patch 6 remove obsoleted comment and tidy some if expressions.
>
> Kent Gibson (6):
> gpiolib: cdev: simplify linereq_free
> gpiolib: cdev: simplify parameter in call to hte_edge_setup
> gpiolib: cdev: replace if-else chains with switches
> gpiolib: cdev: simplify line event identification
> gpiolib: cdev: consolidate edge detector configuration flags
> gpiolib: cdev: compile out HTE unless CONFIG_HTE selected
>
> drivers/gpio/gpiolib-cdev.c | 291 +++++++++++++++++++-----------------
> 1 file changed, 151 insertions(+), 140 deletions(-)
>
>
> base-commit: 7329b071729645e243b6207e76bca2f4951c991b
On Thu, Jul 14, 2022 at 4:03 AM Kent Gibson <warthog618@gmail.com> wrote:
>
> This patch series is a collection of improvements to simplify the
> code, improve readability, and compile out unused code.
> There are no functional changes.
>
> The first patch is a cleanup for my recent linereq_free() fix. I
> noted then that the edge_detector_stop() could probably be safely
> moved inside the line desc check block, but wanted to keep that
> change minimal just in case. It can be safely moved, and so here
> it is.
>
> Patch 2 makes use of an existing macro to simplify a call.
>
> Patch 3 replaces some more if-else chains with switches, which is
> more readable (YMMV).
>
> Patch 4 reorganizes the line identification code to share code
> common to alternate paths.
>
> Patch 5 consolidates a number of separate flags into one. This
> reduces code complexity, simplifies any future edge source additions,
> and makes patch 6 significantly simpler.
>
> Patch 6 totally compiles out the hte specific code when CONFIG_HTE
> is not selected.
>
> I've based this series on gpio/for-current, as it requires the fix
> patch -
> commit c8e27a4a5136 ("gpiolib: cdev: fix null pointer dereference in linereq_free()")
> Happy to rebase if that doesn't suit.
>
> Dipen, I don't have any HTE compatible hardware to test with, so
> could you check that this still works for you?
>
> Changes v1 -> v2:
> Address Andy's review comments, specifically
> - Patch 4 move ternary initializer into a helper function.
> - Patch 5 variable declaration ordering.
> - Patch 6 remove obsoleted comment and tidy some if expressions.
>
> Kent Gibson (6):
> gpiolib: cdev: simplify linereq_free
> gpiolib: cdev: simplify parameter in call to hte_edge_setup
> gpiolib: cdev: replace if-else chains with switches
> gpiolib: cdev: simplify line event identification
> gpiolib: cdev: consolidate edge detector configuration flags
> gpiolib: cdev: compile out HTE unless CONFIG_HTE selected
>
> drivers/gpio/gpiolib-cdev.c | 291 +++++++++++++++++++-----------------
> 1 file changed, 151 insertions(+), 140 deletions(-)
>
>
> base-commit: 7329b071729645e243b6207e76bca2f4951c991b
> --
> 2.37.1
>
Excellent work as usual, all applied.
Bart
© 2016 - 2026 Red Hat, Inc.