* [PATCH] Input: matrix_keypad - force switch rows to input mode
@ 2022-11-02 16:57 Siarhei Volkau
2022-11-03 20:42 ` Dmitry Torokhov
0 siblings, 1 reply; 2+ messages in thread
From: Siarhei Volkau @ 2022-11-02 16:57 UTC (permalink / raw)
Cc: Paul Cercueil, Siarhei Volkau, Dmitry Torokhov, linux-input,
linux-kernel
Some Pin/GPIO controllers can't get current GPIO status when interrupt
mode is set. Specifically Ingenic's JZ4755 always returns status at the
moment of interrupt.
The patch tries to fix that by forcibly setting pin mode to GPIO input
prior to reading actual row status. enable_row_irqs seems to set
interrupt mode back as it should be.
Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
---
drivers/input/keyboard/matrix_keypad.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/drivers/input/keyboard/matrix_keypad.c b/drivers/input/keyboard/matrix_keypad.c
index 7dd3f3eda..b4c0325bb 100644
--- a/drivers/input/keyboard/matrix_keypad.c
+++ b/drivers/input/keyboard/matrix_keypad.c
@@ -127,6 +127,9 @@ static void matrix_keypad_scan(struct work_struct *work)
memset(new_state, 0, sizeof(new_state));
+ for (row = 0; row < pdata->num_row_gpios; row++)
+ gpio_direction_input(pdata->row_gpios[row]);
+
/* assert each column and read the row status out */
for (col = 0; col < pdata->num_col_gpios; col++) {
--
2.36.1
^ permalink raw reply related [flat|nested] 2+ messages in thread
* Re: [PATCH] Input: matrix_keypad - force switch rows to input mode
2022-11-02 16:57 [PATCH] Input: matrix_keypad - force switch rows to input mode Siarhei Volkau
@ 2022-11-03 20:42 ` Dmitry Torokhov
0 siblings, 0 replies; 2+ messages in thread
From: Dmitry Torokhov @ 2022-11-03 20:42 UTC (permalink / raw)
To: Siarhei Volkau; +Cc: Paul Cercueil, linux-input, linux-kernel
On Wed, Nov 02, 2022 at 07:57:47PM +0300, Siarhei Volkau wrote:
> Some Pin/GPIO controllers can't get current GPIO status when interrupt
> mode is set. Specifically Ingenic's JZ4755 always returns status at the
> moment of interrupt.
>
> The patch tries to fix that by forcibly setting pin mode to GPIO input
> prior to reading actual row status. enable_row_irqs seems to set
> interrupt mode back as it should be.
>
> Signed-off-by: Siarhei Volkau <lis8215@gmail.com>
Applied, thank you.
--
Dmitry
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2022-11-03 20:42 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-11-02 16:57 [PATCH] Input: matrix_keypad - force switch rows to input mode Siarhei Volkau
2022-11-03 20:42 ` Dmitry Torokhov
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).