Touchscreen becomes responsive when display is locked after a period of time
What problem did you encounter
The touchscreen panel on the PinePhone becomes responsive after a period of time after being locked, allowing users to touch the screen to wake the display.
What is the current behaviour?
After a period of time after being locked using the power button, the panel will become responsive to touch events, but the display will remain off. Touching the blank panel will turn the display on.
Letting the display turn off by idling at this point will not disable touch events again; the user must manually unlock and then re-lock the phone.
What is the expected behaviour?
The panel is not responsive to touch events until the user manually turns on the display through the power button.
How to reproduce
See annotated logs attached.
Which version did you encounter the bug in?
Phosh Version: 0.4.3
What hardware are you running phosh on?
PinePhone Braveheart.
Releveant logfiles
## Used the power button to lock device:
systemd-logind: Power key pressed.
phoc: Power button pressed
phoc: [backend/drm/drm.c:1080] Reallocating CRTCs
phoc: [backend/drm/drm.c:1091] State before reallocation:
phoc: [backend/drm/drm.c:1097] 'DSI-1' crtc=0 state=3 desired_enabled=0
phoc: [backend/drm/drm.c:1097] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0
phoc: [backend/drm/drm.c:1149] State after reallocation:
phoc: [backend/drm/drm.c:1156] 'DSI-1' crtc=0 state=3 desired_enabled=0
phoc: [backend/drm/drm.c:1156] 'HDMI-A-1' crtc=-1 state=0 desired_enabled=0
phosh: Monitor DSI-1 disabled
# At this point, panel does not respond to touches & is blank. (normal)
# some time passes...
phosh: Idle Timer 17 fired on :1.25
gsd-power: idletime watch: blank (12)
gsd-power: Doing a state transition: blank
gsd-power: TESTSUITE: Blanked screen
phosh: Creating active timer 21
phosh: Power save mode 3 requested
phoc: Request to set output power mode of 0xa3fa40 to 0
# From this point on, the panel becomes responsive to touches again,
# but the screen is still blank (not normal)
# After touching the panel:
phosh: Idle Timer 17 resumed
phosh: Active Timer 21 fired
phosh: Removing watch 21
gsd-power: idletime reset
gsd-power: Doing a state transition: normal
gsd-power: TESTSUITE: Unblanked screen
phosh: Power save mode 0 requested
phoc: Request to set output power mode of 0xa3fa40 to 1
phoc: [backend/drm/drm.c:803] Modesetting 'DSI-1' with '720x1440@55315 mHz'
phoc: [backend/drm/drm.c:685] Initializing renderer on connector 'DSI-1'
phoc: [backend/drm/drm.c:364] Failed to page-flip output 'DSI-1': a page-flip is already pending
phosh: Monitor DSI-1 enabled
# Panel will stay responsive until phone is unlocked and re-locked by user.