Pocket screen off after idle and can't get on again?

If I get interrupted and go do something else around the house (in gnome sometimes locked with mnt+l) I am finding that more often than not the pocket screen turns off and I can’t get it on again without a forced restart. Has happened on both 6.18 and tonight now 6.19 :frowning:

Reviewing the logs everything seems normal, but the following:

Mar 31 23:50:26 mntbear kernel: ------------[ cut here ]------------
Mar 31 23:50:26 mntbear kernel: WARNING: drivers/gpio/gpiolib.c:3903 at gpiod_set_value+0x4c/0x80, CPU#3: KMS thread/2746
Mar 31 23:50:26 mntbear kernel: Modules linked in: sd_mod scsi_mod scsi_common aes_ce_ccm realtek rfcomm snd_seq_dummy snd_hrtimer snd_seq snd_seq_device dwmac_meson8b stmmac_platform evdev joydev stmmac pcs_xpcs mdio_mux_meson_g12a mdio_mux algif_hash algif_skcipher af_alg cdc_acm bnep rtw88_8822cs rtw88_8822c rtw88_sdio rtw88_core qrtr sunrpc mac80211 hci_uart btqca btrtl btintel btbcm bluetooth ecdh_generic cfg80211 pwrseq_core rfkill snd_soc_tlv320aic31xx libarc4 reform2_lpc(OE) meson_saradc meson_rng snd_soc_meson_axg_tdmin industrialio snd_soc_meson_g12a_tohdmitx snd_soc_meson_axg_sound_card snd_soc_meson_axg_tdmout snd_soc_meson_axg_frddr snd_soc_meson_card_utils snd_soc_meson_axg_tdm_interface leds_gpio snd_soc_meson_axg_tdm_formatter dm_mod binfmt_misc i2c_dev nvme_fabrics efi_pstore configfs nfnetlink autofs4 ext4 mbcache jbd2 crc32c_cryptoapi mali_dp cdns_mhdp_imx cdns_mhdp_drmcore snd_soc_meson_codec_glue mxsfb mux_mmio panel_edp imx_dcss ti_sn65dsi86 drm_dp_aux_bus nwl_dsi mux_core pwm_imx27 hid_generic usbhid hid
Mar 31 23:50:26 mntbear kernel:  onboard_usb_dev meson_gxl smsc crc16 xhci_plat_hcd xhci_hcd dwc2 dwc3 meson_vdec(C) snd_soc_meson_axg_toddr udc_core snd_soc_meson_axg_fifo videobuf2_dma_contig snd_soc_hdmi_codec snd_soc_core reset_meson_aux dw_hdmi_i2s_audio ulpi usbcore reset_gpio aes_ce_blk videobuf2_memops nvme meson_dw_mipi_dsi v4l2_mem2mem aes_ce_cipher snd_compress rtc_pcf8523 videobuf2_v4l2 ghash_ce snd_pcm_dmaengine gf128mul snd_pcm axg_audio nvme_core dw_mipi_dsi videodev nvme_keyring snd_timer videobuf2_common sclk_div nvme_auth meson_gxbb_wdt ao_cec_g12a snd hkdf soundcore reset_meson_audio_arb clk_phase rtc_meson_vrtc mc meson_dw_hdmi panfrost spi_gpio meson_drm drm_shmem_helper dwc3_meson_g12a phylink gpu_sched clk_pwm meson_canvas gpio_regulator usb_common nvmem_meson_efuse pwm_regulator spi_bitbang cpufreq_dt [last unloaded: pcs_xpcs]
Mar 31 23:50:26 mntbear kernel: CPU: 3 UID: 1000 PID: 2746 Comm: KMS thread Tainted: G        WC OE       6.19.10-mnt-reform-arm64 #1 PREEMPTLAZY  Debian 6.19.10-1+reform20260321T104947Z 
Mar 31 23:50:26 mntbear kernel: Tainted: [W]=WARN, [C]=CRAP, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
Mar 31 23:50:26 mntbear kernel: Hardware name: MNT Pocket Reform with BPI-CM4 Module (DT)
Mar 31 23:50:26 mntbear kernel: pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
Mar 31 23:50:26 mntbear kernel: pc : gpiod_set_value+0x4c/0x80
Mar 31 23:50:26 mntbear kernel: lr : jdi_panel_prepare+0xbc/0x178
Mar 31 23:50:26 mntbear kernel: sp : ffff800088b53730
Mar 31 23:50:26 mntbear kernel: x29: ffff800088b53730 x28: 0000000000000028 x27: 0000000000000000
Mar 31 23:50:26 mntbear kernel: x26: 0000000000000001 x25: 0000aaab19cda290 x24: ffff00000343e000
Mar 31 23:50:26 mntbear kernel: x23: ffff0000166cd200 x22: ffff000002d34a80 x21: ffff800081b62600
Mar 31 23:50:26 mntbear kernel: x20: ffff00000343ec08 x19: ffff00000085a080 x18: 0000000000000003
Mar 31 23:50:26 mntbear kernel: x17: ffff0000e47099d0 x16: 0000000000000000 x15: ffff8000820844b8
Mar 31 23:50:26 mntbear kernel: x14: ffff800081f81480 x13: 00000000000000c0 x12: 0000083eacee685f
Mar 31 23:50:26 mntbear kernel: x11: 00000000000000c0 x10: 0000000000000c80 x9 : ffff800080d012ac
Mar 31 23:50:26 mntbear kernel: x8 : ffff00002d34e320 x7 : 0000000000000000 x6 : 0000000000000010
Mar 31 23:50:26 mntbear kernel: x5 : ffff8000627fc000 x4 : 0000000000800000 x3 : 0000000000000000
Mar 31 23:50:26 mntbear kernel: x2 : ffff0000009cfae0 x1 : 0000000000000001 x0 : 0000000000000001
Mar 31 23:50:26 mntbear kernel: Call trace:
Mar 31 23:50:26 mntbear kernel:  gpiod_set_value+0x4c/0x80 (P)
Mar 31 23:50:26 mntbear kernel:  jdi_panel_prepare+0xbc/0x178
Mar 31 23:50:26 mntbear kernel:  drm_panel_prepare+0x48/0x100
Mar 31 23:50:26 mntbear kernel:  panel_bridge_atomic_pre_enable+0x5c/0x80
Mar 31 23:50:26 mntbear kernel:  drm_atomic_bridge_call_pre_enable+0x2c/0x60
Mar 31 23:50:26 mntbear kernel:  drm_atomic_bridge_chain_pre_enable+0xe8/0x148
Mar 31 23:50:26 mntbear kernel:  drm_atomic_helper_commit_encoder_bridge_pre_enable+0xc8/0x118
Mar 31 23:50:26 mntbear kernel:  drm_atomic_helper_commit_tail_rpm+0x7c/0xe8
Mar 31 23:50:26 mntbear kernel:  commit_tail+0xc0/0x200
Mar 31 23:50:26 mntbear kernel:  drm_atomic_helper_commit+0x180/0x1b0
Mar 31 23:50:26 mntbear kernel:  drm_atomic_commit+0x94/0xe0
Mar 31 23:50:26 mntbear kernel:  drm_mode_atomic_ioctl+0xb1c/0xe40
Mar 31 23:50:26 mntbear kernel:  drm_ioctl_kernel+0xc8/0x138
Mar 31 23:50:26 mntbear kernel:  drm_ioctl+0x260/0x580
Mar 31 23:50:26 mntbear kernel:  __arm64_sys_ioctl+0xac/0x108
Mar 31 23:50:26 mntbear kernel:  invoke_syscall.constprop.0+0x64/0xe8
Mar 31 23:50:26 mntbear kernel:  el0_svc_common.constprop.0+0x40/0xe8
Mar 31 23:50:26 mntbear kernel:  do_el0_svc+0x24/0x38
Mar 31 23:50:26 mntbear kernel:  el0_svc+0x3c/0x198
Mar 31 23:50:26 mntbear kernel:  el0t_64_sync_handler+0xa0/0xe8
Mar 31 23:50:26 mntbear kernel:  el0t_64_sync+0x198/0x1a0
Mar 31 23:50:26 mntbear kernel: ---[ end trace 0000000000000000 ]---
Mar 31 23:50:26 mntbear kernel: panel-mnt-pocket-reform ffd07000.dsi.0: [display] init in prepare...
Mar 31 23:50:26 mntbear kernel: rtw88_8822cs mmc2:0001:1: failed to send h2c command
Mar 31 23:50:26 mntbear kernel: panel-mnt-pocket-reform ffd07000.dsi.0: [display v2] sent tables OK
Mar 31 23:50:26 mntbear kernel: panel-mnt-pocket-reform ffd07000.dsi.0: [display v2] OK

Thanks for any suggestions!

I’ve been looking into a similar issue, though it only happens to me on warm reboots.

I was able to make that warning go away by replacing gpiod_set_value() with gpiod_set_value_cansleep() in the panel driver. See the GPIO Warning Removed by Debug Patch section of that issue. The warning seems to have no effect on the panel behavior.

Wow looks like you have investigated this a lot. Sad that it wasn’t something easy! I wish I knew more about that level with the hardware, but sadly doesn’t line up with my career much so hard to justify!

I have the RK3588 on order so maybe it will go away when I switch to that, but also thinking of cancelling because not loving the idea of running a Chinese chip… I’ll try to keep up with your link in case anything changes.

Turning off the screen or disabling the display is really iffy on the Pocket. Even when it works, it often comes up flickering. I had to configure my idle service and the thing that handles the external displays so, instead of doing the equivalent of turning the display off, it just set the brightness to 0 and then, when I disconnect the external display or move the mouse, type a key, it restores the brightness. It’s my understanding this is being actively worked on and is a driver issue.

1 Like

came here to make a post about this exact issue but searched the forum and found this, here’s my dmesg too if that helps fix this

[15151.256372] ------------[ cut here ]------------
[15151.256393] WARNING: CPU: 1 PID: 2201 at drivers/gpio/gpiolib.c:3591 gpiod_set_value+0x3c/0x70
[15151.256420] Modules linked in: sd_mod scsi_mod scsi_common aes_ce_ccm uinput snd_seq_dummy snd_hrtimer snd_seq snd_seq_device realtek xt_CHECKSUM xt_tcpudp nft_chain_nat xt_MASQUERADE nf_nat nf_conntrack nf_defrag_ipv6 nf_defrag_ipv4 nft_compat nls_utf8 cifs bridge stp llc cifs_arc4 nls_ucs2_utils cifs_md4 nf_tables dns_resolver netfs dwmac_meson8b stmmac_platform stmmac pcs_xpcs mdio_devres mdio_mux_meson_g12a mdio_mux of_mdio rfcomm algif_hash algif_skcipher af_alg qrtr bnep rtw88_8822cs ledtrig_pattern hci_uart rtw88_8822c rtw88_sdio rtw88_core btqca btrtl mac80211 btintel btbcm bluetooth reform2_lpc(OE) snd_soc_meson_axg_tdmin libarc4 cdc_acm snd_soc_meson_g12a_tohdmitx snd_soc_meson_axg_tdmout qmi_wwan cfg80211 snd_soc_meson_axg_frddr ecdh_generic meson_rng cdc_wdm option binfmt_misc usbnet snd_soc_meson_axg_sound_card meson_saradc usb_wwan rfkill pwrseq_core mii usbserial snd_soc_meson_card_utils snd_soc_tlv320aic31xx industrialio snd_soc_meson_axg_tdm_interface snd_soc_meson_axg_tdm_formatter leds_gpio evdev
[15151.256751]  joydev nvme_fabrics nvme_keyring efi_pstore configfs nfnetlink ip_tables x_tables autofs4 ext4 mbcache jbd2 btrfs blake2b_generic xor xor_neon raid6_pq libcrc32c crc32c_generic dm_crypt dm_mod mali_dp cdns_mhdp_imx cdns_mhdp_drmcore snd_soc_meson_codec_glue mxsfb mux_mmio panel_edp imx_dcss ti_sn65dsi86 drm_dp_aux_bus nwl_dsi mux_core pwm_imx27 hid_generic usbhid hid onboard_usb_dev meson_gxl smsc crc16 xhci_plat_hcd xhci_hcd dwc2 aes_ce_blk dwc3 aes_ce_cipher snd_soc_meson_axg_toddr crct10dif_ce meson_vdec(C) udc_core snd_soc_hdmi_codec snd_soc_meson_axg_fifo polyval_ce videobuf2_dma_contig usbcore snd_soc_core videobuf2_memops ulpi polyval_generic nvme v4l2_mem2mem panfrost phylink spi_gpio ghash_ce gpu_sched dwc3_meson_g12a videobuf2_v4l2 snd_compress gf128mul sha2_ce snd_pcm_dmaengine dw_hdmi_i2s_audio usb_common sha256_arm64 videodev spi_bitbang snd_pcm sha1_ce drm_shmem_helper rtc_pcf8523 clk_pwm fixed_phy snd_timer videobuf2_common meson_gxbb_wdt axg_audio meson_drm nvme_core meson_dw_mipi_dsi snd
[15151.257104]  mc dw_mipi_dsi sclk_div fwnode_mdio reset_meson_audio_arb clk_phase soundcore ao_cec_g12a rtc_meson_vrtc meson_canvas libphy meson_dw_hdmi nvme_auth pwm_regulator gpio_regulator nvmem_meson_efuse cpufreq_dt [last unloaded: of_mdio]
[15151.257182] CPU: 1 UID: 1000 PID: 2201 Comm: KMS thread Tainted: G        WC OE      6.12.73-mnt-reform-arm64 #1  Debian 6.12.73-1+reform20260321T104947Z
[15151.257200] Tainted: [W]=WARN, [C]=CRAP, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[15151.257206] Hardware name: MNT Pocket Reform with BPI-CM4 Module (DT)
[15151.257214] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[15151.257224] pc : gpiod_set_value+0x3c/0x70
[15151.257234] lr : jdi_panel_prepare+0xbc/0x170
[15151.257248] sp : ffff800087e4b740
[15151.257254] x29: ffff800087e4b740 x28: 0000000000000000 x27: 0000ffff6c01ab60
[15151.257272] x26: 0000000000000000 x25: ffff80008173f9c8 x24: ffff00000137bc80
[15151.257288] x23: ffff00009d4ef200 x22: ffff000000aaf4c0 x21: ffff800081745558
[15151.257305] x20: ffff000001379408 x19: ffff000000aaf480 x18: 0000000000000000
[15151.257322] x17: 0000000000000000 x16: 0000000000000000 x15: 000000240108c390
[15151.257337] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000027
[15151.257353] x11: 00000000000000c0 x10: 0000000000000bd0 x9 : ffff800080b1f244
[15151.257369] x8 : ffff00003ff05630 x7 : 0000000000000000 x6 : 0000000000000070
[15151.257385] x5 : 0000000000000001 x4 : 0000000000000002 x3 : 0000000000000000
[15151.257401] x2 : 0000000000000001 x1 : 0000000000000001 x0 : ffff000003db1740
[15151.257417] Call trace:
[15151.257423]  gpiod_set_value+0x3c/0x70
[15151.257433]  jdi_panel_prepare+0xbc/0x170
[15151.257446]  drm_panel_prepare+0x50/0x110
[15151.257460]  panel_bridge_atomic_pre_enable+0x5c/0x80
[15151.257473]  drm_atomic_bridge_call_pre_enable+0x50/0x98
[15151.257486]  drm_atomic_bridge_chain_pre_enable+0xe8/0x140
[15151.257498]  drm_atomic_helper_commit_modeset_enables+0x178/0x290
[15151.257511]  drm_atomic_helper_commit_tail_rpm+0x58/0xb0
[15151.257521]  commit_tail+0xa8/0x1b0
[15151.257531]  drm_atomic_helper_commit+0x184/0x1c0
[15151.257542]  drm_atomic_commit+0xc0/0x108
[15151.257553]  drm_mode_atomic_ioctl+0xb60/0xe80
[15151.257565]  drm_ioctl_kernel+0xc8/0x140
[15151.257576]  drm_ioctl+0x250/0x550
[15151.257586]  __arm64_sys_ioctl+0xb4/0x100
[15151.257597]  invoke_syscall+0x6c/0x100
[15151.257611]  el0_svc_common.constprop.0+0x48/0xf0
[15151.257623]  do_el0_svc+0x24/0x38
[15151.257635]  el0_svc+0x38/0x150
[15151.257648]  el0t_64_sync_handler+0x120/0x138
[15151.257661]  el0t_64_sync+0x190/0x198
[15151.257671] ---[ end trace 0000000000000000 ]---
[15151.257745] panel-mnt-pocket-reform ffd07000.dsi.0: [display] init in prepare...
[15151.362182] panel-mnt-pocket-reform ffd07000.dsi.0: [display v2] sent tables OK
[15151.462293] panel-mnt-pocket-reform ffd07000.dsi.0: [display v2] OK

this issue is really annoying. also my Pocket’s running Debian Trixie.