Re: [PATCH v3 0/3] Support wakeup methods of Atmel maXTouch controllers

From: Dmitry Osipenko
Date: Sun Dec 13 2020 - 04:30:47 EST


13.12.2020 07:41, Dmitry Torokhov пишет:
> Thank you for the logs. I am confused where these calls to put the
> controller into deep sleep are coming from. Does something constantly
> open and close input device?

Input devices are re-opened multiple times during Linux distro boot-up,
a regular Ubuntu 20.10 in this case.

> Do you have any additional patches?

No, I'm using next-20201211 + this "wakeup methods" patchset.

> We definitely do not issue deep sleep request in mxt_start(). Do you mind
> putting dump_stack() into mxt_set_t7_power_cfg() to see where the calls
> are coming from?

Please see the log below, I added it like this:

diff --git a/drivers/input/touchscreen/atmel_mxt_ts.c
b/drivers/input/touchscreen/atmel_mxt_ts.c
index e3342fdfe9f3..bbc5a5ee158a 100644
--- a/drivers/input/touchscreen/atmel_mxt_ts.c
+++ b/drivers/input/touchscreen/atmel_mxt_ts.c
@@ -2271,6 +2271,8 @@ static int mxt_set_t7_power_cfg(struct mxt_data
*data, u8 sleep)
dev_dbg(dev, "Set T7 ACTV:%d IDLE:%d\n",
new_config->active, new_config->idle);

+ dump_stack();
+
return 0;
}

> I also do not see additional "waking up controller" messages after
> requesting the chip via T7 to be configured to be active, which I'd
> expected to see if we indeed needed to wake it up again for T6 to
> succeed.

I'm not familiar with what controller does internally, hence no clue.


[ 1.195295] Family: 160 Variant: 0 Firmware V1.0.AA Objects: 18
[ 1.195468] T37 Start:118 Size:130 Instances:1 Report IDs:0-0
[ 1.195482] T44 Start:248 Size:1 Instances:1 Report IDs:0-0
[ 1.195493] T5 Start:249 Size:9 Instances:1 Report IDs:0-0
[ 1.195503] T6 Start:258 Size:6 Instances:1 Report IDs:1-1
[ 1.195513] T38 Start:264 Size:64 Instances:1 Report IDs:0-0
[ 1.195523] T7 Start:328 Size:3 Instances:1 Report IDs:0-0
[ 1.195533] T8 Start:331 Size:10 Instances:1 Report IDs:0-0
[ 1.195543] T9 Start:341 Size:34 Instances:1 Report IDs:2-17
[ 1.195553] T15 Start:375 Size:11 Instances:2 Report IDs:18-19
[ 1.195563] T18 Start:397 Size:2 Instances:1 Report IDs:0-0
[ 1.195573] T22 Start:399 Size:17 Instances:1 Report IDs:20-20
[ 1.195583] T24 Start:416 Size:19 Instances:1 Report IDs:21-24
[ 1.195593] T25 Start:435 Size:14 Instances:1 Report IDs:25-25
[ 1.195602] T27 Start:449 Size:7 Instances:1 Report IDs:26-26
[ 1.195612] T28 Start:456 Size:6 Instances:1 Report IDs:27-27
[ 1.195622] T40 Start:462 Size:5 Instances:1 Report IDs:0-0
[ 1.195631] T41 Start:467 Size:6 Instances:1 Report IDs:0-0
[ 1.195641] T43 Start:473 Size:6 Instances:1 Report IDs:0-0
[ 1.195746] Direct firmware load for maxtouch.cfg failed with error -2
[ 1.196199] T6 Config Checksum: 0x8D7459
[ 1.196212] T6 Status 0x90 RESET CAL
[ 1.196428] Initialized power cfg: ACTV 10, IDLE 50
[ 1.197275] Touchscreen size X1279Y799
[ 1.210563] T6 Status 0x00 OK
[14.866461] Set T7 ACTV:10 IDLE:50
[14.866495] CPU: 1 PID: 209 Comm: systemd-udevd Tainted: G W
[14.866507] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[14.866523] (unwind_backtrace) from (show_stack)
[14.866568] (show_stack) from (dump_stack)
[14.866599] (dump_stack) from (mxt_set_t7_power_cfg)
[14.866635] (mxt_set_t7_power_cfg) from (mxt_start)
[14.866654] (mxt_start) from (mxt_input_open)
[14.866673] (mxt_input_open) from (input_open_device)
[14.866708] (input_open_device) from (evdev_open+0x113/0x134)
[14.866735] (evdev_open) from (chrdev_openc)
[14.866763] (chrdev_open) from (do_dentry_open4)
[14.866791] (do_dentry_open) from (path_openat+0x6b9/0xa04)
[14.866815] (path_openat) from (do_filp_open)
[14.866833] (do_filp_open) from (do_sys_openat2+0x1bf/0x23c)
[14.866850] (do_sys_openat2) from (do_sys_open)
[14.866872] (do_sys_open) from (__sys_trace_return+0x1/0x16)
[14.894683] Set T7 ACTV:0 IDLE:0
[14.894719] CPU: 1 PID: 209 Comm: systemd-udevd Tainted: G W
[14.894732] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[14.894748] (unwind_backtrace) from (show_stack)
[14.894791] (show_stack) from (dump_stack)
[14.894822] (dump_stack) from (mxt_set_t7_power_cfg)
[14.894856] (mxt_set_t7_power_cfg) from (mxt_stop)
[14.894875] (mxt_stop) from (input_close_device)
[14.894908] (input_close_device) from (evdev_release)
[14.894934] (evdev_release) from (__fput8)
[14.894958] (__fput) from (task_work_run)
[14.894975] (task_work_run) from (do_work_pending+0x38d/0x438)
[14.894991] (do_work_pending) from (slow_work_pending+0x9/0x16)
[14.898242] T6 Status 0x10 CAL
[15.186570] Set T7 ACTV:10 IDLE:50
[15.186594] CPU: 0 PID: 212 Comm: libinput-fuzz-e Tainted: G W
[15.186605] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[15.186615] (unwind_backtrace) from (show_stack)
[15.186648] (show_stack) from (dump_stack)
[15.186671] (dump_stack) from (mxt_set_t7_power_cfg)
[15.186699] (mxt_set_t7_power_cfg) from (mxt_start)
[15.186715] (mxt_start) from (mxt_input_open)
[15.186732] (mxt_input_open) from (input_open_device)
[15.186764] (input_open_device) from (evdev_open+0x113/0x134)
[15.186786] (evdev_open) from (chrdev_openc)
[15.186808] (chrdev_open) from (do_dentry_open4)
[15.186830] (do_dentry_open) from (path_openat+0x6b9/0xa04)
[15.186848] (path_openat) from (do_filp_open)
[15.186863] (do_filp_open) from (do_sys_openat2+0x1bf/0x23c)
[15.186878] (do_sys_openat2) from (do_sys_open)
[15.186895] (do_sys_open) from (__sys_trace_return+0x1/0x16)
[15.210404] T6 Status 0x00 OK
[15.229106] Set T7 ACTV:0 IDLE:0
[15.229132] CPU: 0 PID: 212 Comm: libinput-fuzz-e Tainted: G W
[15.229148] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[15.229164] (unwind_backtrace) from (show_stack)
[15.229208] (show_stack) from (dump_stack)
[15.229237] (dump_stack) from (mxt_set_t7_power_cfg)
[15.229273] (mxt_set_t7_power_cfg) from (mxt_stop)
[15.229294] (mxt_stop) from (input_close_device)
[15.229323] (input_close_device) from (evdev_release)
[15.229350] (evdev_release) from (__fput8)
[15.229370] (__fput) from (task_work_run)
[15.229386] (task_work_run) from (do_work_pending+0x38d/0x438)
[15.229402] (do_work_pending) from (slow_work_pending+0x9/0x16)
[15.322473] waking up controller
[15.357423] Set T7 ACTV:10 IDLE:50
[15.357450] CPU: 1 PID: 216 Comm: libinput-fuzz-t Tainted: G W
[15.357463] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[15.357476] (unwind_backtrace) from (show_stack)
[15.357510] (show_stack) from (dump_stack)
[15.357537] (dump_stack) from (mxt_set_t7_power_cfg)
[15.357566] (mxt_set_t7_power_cfg) from (mxt_start)
[15.357586] (mxt_start) from (mxt_input_open)
[15.357604] (mxt_input_open) from (input_open_device)
[15.357632] (input_open_device) from (evdev_open+0x113/0x134)
[15.357655] (evdev_open) from (chrdev_openc)
[15.357679] (chrdev_open) from (do_dentry_open4)
[15.357702] (do_dentry_open) from (path_openat+0x6b9/0xa04)
[15.357721] (path_openat) from (do_filp_open)
[15.357737] (do_filp_open) from (do_sys_openat2+0x1bf/0x23c)
[15.357754] (do_sys_openat2) from (do_sys_open)
[15.357773] (do_sys_open) from (__sys_trace_return+0x1/0x16)
[15.373658] Set T7 ACTV:0 IDLE:0
[15.373683] CPU: 1 PID: 216 Comm: libinput-fuzz-t Tainted: G W
[15.373696] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[15.373708] (unwind_backtrace) from (show_stack)
[15.373744] (show_stack) from (dump_stack)
[15.373770] (dump_stack) from (mxt_set_t7_power_cfg)
[15.373817] (mxt_set_t7_power_cfg) from (mxt_stop)
[15.373856] (mxt_stop) from (input_close_device)
[15.373904] (input_close_device) from (evdev_release)
[15.373947] (evdev_release) from (__fput8)
[15.373971] (__fput) from (task_work_run)
[15.373987] (task_work_run) from (do_work_pending+0x38d/0x438)
[15.374003] (do_work_pending) from (slow_work_pending+0x9/0x16)
[15.375130] T6 Status 0x10 CAL
[26.500032] waking up controller
[26.526733] Set T7 ACTV:10 IDLE:50
[26.526772] CPU: 1 PID: 497 Comm: Xorg Tainted: G W
[26.526788] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[26.526809] (unwind_backtrace) from (show_stack)
[26.526862] (show_stack) from (dump_stack)
[26.526903] (dump_stack) from (mxt_set_t7_power_cfg)
[26.526943] (mxt_set_t7_power_cfg) from (mxt_start)
[26.526965] (mxt_start) from (mxt_input_open)
[26.526986] (mxt_input_open) from (input_open_device)
[26.527023] (input_open_device) from (evdev_open+0x113/0x134)
[26.527051] (evdev_open) from (chrdev_openc)
[26.527080] (chrdev_open) from (do_dentry_open4)
[26.527108] (do_dentry_open) from (path_openat+0x6b9/0xa04)
[26.527130] (path_openat) from (do_filp_open)
[26.527149] (do_filp_open) from (do_sys_openat2+0x1bf/0x23c)
[26.527167] (do_sys_openat2) from (do_sys_open)
[26.527189] (do_sys_open) from (ret_fast_syscall+0x1/0x26)
[26.550377] T6 Status 0x00 OK
[26.564628] Set T7 ACTV:0 IDLE:0
[26.564659] CPU: 0 PID: 497 Comm: Xorg Tainted: G W
[26.564672] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[26.564688] (unwind_backtrace) from (show_stack)
[26.564729] (show_stack) from (dump_stack)
[26.564759] (dump_stack) from (mxt_set_t7_power_cfg)
[26.564793] (mxt_set_t7_power_cfg) from (mxt_stop)
[26.564811] (mxt_stop) from (input_close_device)
[26.564844] (input_close_device) from (evdev_release)
[26.564871] (evdev_release) from (__fput8)
[26.564892] (__fput) from (task_work_run)
[26.564909] (task_work_run) from (do_work_pending+0x38d/0x438)
[26.564924] (do_work_pending) from (slow_work_pending+0x9/0x16)
[26.575062] Set T7 ACTV:10 IDLE:50
[26.575097] CPU: 1 PID: 497 Comm: Xorg Tainted: G W
[26.575114] Hardware name: NVIDIA Tegra SoC (Flattened Device Tree)
[26.575132] (unwind_backtrace) from (show_stack)
[26.575189] (show_stack) from (dump_stack)
[26.575228] (dump_stack) from (mxt_set_t7_power_cfg)
[26.575269] (mxt_set_t7_power_cfg) from (mxt_start)
[26.575294] (mxt_start) from (mxt_input_open)
[26.575319] (mxt_input_open) from (input_open_device)
[26.575363] (input_open_device) from (evdev_open+0x113/0x134)
[26.575398] (evdev_open) from (chrdev_openc)
[26.575433] (chrdev_open) from (do_dentry_open4)
[26.575469] (do_dentry_open) from (path_openat+0x6b9/0xa04)
[26.575495] (path_openat) from (do_filp_open)
[26.575518] (do_filp_open) from (do_sys_openat2+0x1bf/0x23c)
[26.575540] (do_sys_openat2) from (do_sys_open)
[26.575566] (do_sys_open) from (ret_fast_syscall+0x1/0x26)
[26.577569] waking up controller
[26.656736] T6 Status 0x10 CAL
[26.662621] T6 Status 0x00 OK