[Xperia X Bug] Screen sometimes not responsive when woken from deep sleep
Tap-to-wake is currently not officially supported for the Xperia X, but can be enabled via mce-tool (e.g. described here). However, there are still a few issues (taps not recognized, frozen screen after wakeup). I investigated the issues a bit deeper and want to share my findings in the hope that they may help to fix them.
I especially focus the non-responsive screen after the wakeup since this issue is currently rather common on my device (SFOS 2.3.1.7 and mcetool -z always
setting).
First, I noticed that this issue does not occur if I'm connected to the device via SSH, but reappears as soon as I disconnected. This hints towards this being an issue during the wake-up of the device from deep sleep (an active SSH connection prevents the device from powering down into deep sleep).
Next, I checked the syslog entries with journalctl and noticed some differences. When the screen works after power on, the log entries looks as follows:
Sailfish kernel: mdss_dsi_panel_on: ctrl=ffffffc0aeb59018 ndx=0
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2236) initialize device
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2251) device status 0x81
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2259) bootloader revision 7.003
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2281) FW status 0x40
Sailfish kernel: clearpad clearpad: (clearpad_update_chip_id:5713) chip_id=0x3a
Sailfish kernel: clearpad clearpad: (clearpad_touch_config_dt_for_chip_id:5538) read settings for S3330
Sailfish kernel: clearpad clearpad: (clearpad_prepare_f12_2d:2209) x_max=1079, y_max=1919, n_fingers=10, n_bytes_per_object=8
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2349) result: S3330, family 0x90, fw rev 0x07.18, extra 0x06, (no fw update)
Sailfish kernel: clearpad clearpad: (clearpad_process_F01_RMI:4032) device reset
Sailfish kernel: clearpad clearpad: (clearpad_set_resume_mode:3259) set resume mode (rc=0)
Sailfish kernel: clearpad clearpad: (clearpad_process_irq:4152) no work, interrupt=[0x00]
Sailfish kernel: clearpad clearpad: (clearpad_process_irq:4152) no work, interrupt=[0x00]
Sailfish mce[1419]: modules/display.c: mdy_display_state_enter(): current display state = ON
Sailfish statefs[1442]: Display: "on"
When the screen does not work after wakeup, the entries look like this:
Sailfish kernel: mdss_dsi_panel_on: ctrl=ffffffc0aeb59018 ndx=0
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2236) initialize device
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2251) device status 0x81
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2259) bootloader revision 7.003
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2281) FW status 0x40
Sailfish kernel: clearpad clearpad: (clearpad_update_chip_id:5713) chip_id=0x3a
Sailfish kernel: clearpad clearpad: (clearpad_touch_config_dt_for_chip_id:5538) read settings for S3330
Sailfish kernel: clearpad clearpad: (clearpad_prepare_f12_2d:2209) x_max=1079, y_max=1919, n_fingers=10, n_bytes_per_object=8
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2349) result: S3330, family 0x90, fw rev 0x07.18, extra 0x06, (no fw update)
Sailfish kernel: clearpad clearpad: (clearpad_process_F01_RMI:4032) device reset
Sailfish kernel: clearpad clearpad: (clearpad_set_resume_mode:3259) set resume mode (rc=0)
Sailfish kernel: clearpad clearpad: (clearpad_process_irq:4152) no work, interrupt=[0x00]
Sailfish kernel: clearpad clearpad: (clearpad_set_irq:972) no irq change (enable)
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2236) initialize device
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2251) device status 0x00
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2259) bootloader revision 7.003
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2281) FW status 0x40
Sailfish kernel: clearpad clearpad: (clearpad_update_chip_id:5713) chip_id=0x3a
Sailfish kernel: clearpad clearpad: (clearpad_touch_config_dt_for_chip_id:5538) read settings for S3330
Sailfish kernel: clearpad clearpad: (clearpad_prepare_f12_2d:2209) x_max=1079, y_max=1919, n_fingers=10, n_bytes_per_object=8
Sailfish kernel: clearpad clearpad: (clearpad_initialize:2349) result: S3330, family 0x90, fw rev 0x07.18, extra 0x06, (no fw update)
Sailfish kernel: clearpad clearpad: (clearpad_process_irq:4152) no work, interrupt=[0x00]
Sailfish kernel: clearpad clearpad: (clearpad_set_resume_mode:3259) set resume mode (rc=0)
Sailfish mce[1419]: modules/display.c: mdy_display_state_enter(): current display state = ON
Sailfish statefs[1442]: Display: "on"
Notice how in the second case (display not responding to touch input), clearpad seems to initialize the device twice. I could somewhat reproduce this multiple times. When I'm connected via SSH and enabling the screen, the screen works as intended and I see the first output. When disconnected and waking the device from deep sleep (wait a few seconds before enabling the screen), it initializes the screen twice (as seen in the second output) which is then non-responsive. Switching the screen of and then immediately on again results in a responsive screen and output 1.
Unfortunately I don't see the reason for this behaviour, maybe someone has an idea what's causing it (or even better: how to fix it).
... just for the record: Same problem here :(
BlaeX ( 2017-11-15 15:32:41 +0200 )edit