projects
/
linux.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
5af7a77
)
Input: hideep - silence error in SW_RESET()
author
Hans de Goede
<hdegoede@redhat.com>
Fri, 17 Mar 2023 10:48:07 +0000
(
03:48
-0700)
committer
Dmitry Torokhov
<dmitry.torokhov@gmail.com>
Fri, 17 Mar 2023 10:55:15 +0000
(
03:55
-0700)
On some models the first HIDEEP_SYSCON_WDT_CON write alone is enough to
cause the controller to reset, causing the second write to fail:
i2c-hideep_ts: write to register 0x52000014 (0x000001) failed: -121
Switch this write to a raw hideep_pgm_w_mem() to avoid an error getting
logged in this case.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Link:
https://lore.kernel.org/r/20230311114726.182789-2-hdegoede@redhat.com
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
drivers/input/touchscreen/hideep.c
patch
|
blob
|
history
diff --git
a/drivers/input/touchscreen/hideep.c
b/drivers/input/touchscreen/hideep.c
index 05998e83c36afbb41ea3dfc9e5e144286eee41a8..b47feb63cfb8c5b898d3bc6d997db1f447f98f83 100644
(file)
--- a/
drivers/input/touchscreen/hideep.c
+++ b/
drivers/input/touchscreen/hideep.c
@@
-271,9
+271,14
@@
static int hideep_pgm_w_reg(struct hideep_ts *ts, u32 addr, u32 val)
#define SW_RESET_IN_PGM(clk) \
{ \
+ __be32 data = cpu_to_be32(0x01); \
hideep_pgm_w_reg(ts, HIDEEP_SYSCON_WDT_CNT, (clk)); \
hideep_pgm_w_reg(ts, HIDEEP_SYSCON_WDT_CON, 0x03); \
- hideep_pgm_w_reg(ts, HIDEEP_SYSCON_WDT_CON, 0x01); \
+ /* \
+ * The first write may already cause a reset, use a raw \
+ * write for the second write to avoid error logging. \
+ */ \
+ hideep_pgm_w_mem(ts, HIDEEP_SYSCON_WDT_CON, &data, 1); \
}
#define SET_FLASH_PIO(ce) \