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.

2 Likes

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.

i’m wondering if there’s any updates on this or if there’s anything i can provide to help? logs, configs, anything at all

I’m curious if you’ve tried using the keyboard menu to select “power on” to resolve the blank screen after idle. IIRC from the firmware that may toggle the enable line on the panel and possibly fix a “bad state” the panel got itself into.

Something similar happened to me. Using sway, so it is somewhat easy to overcome by adjusting brightness instead of issuing a dpms command.

I disabled the swayidle command that sets dpms mode, and instead adjust brightness like this:

1. On sway config, change the current swayidle (there should be one swayidle exec line) to this other one:

exec swayidle timeout 600 "${HOME}/bin/swayidle.sh suspend" resume "${HOME}/bin/swayidle.sh resume"

2. Have a script like this on ~/bin:

#!/usr/bin/env bash

# Issue dpms command on external hdmi monitor.
# Adjust brightness on internal monitor

case "${1}" in
    "suspend")
        # External monitor
        swaymsg "output HDMI-A-1 dpms off"
        # Internal monitor
        brightnessctl -s   # Store current brightness
        brightnessctl s 0  # Set brightness to zero
        ;;
    "resume")
        # External monitor
        swaymsg "output HDMI-A-1 dpms on"
        # Internal monitor
        brightnessctl -r   # Restore previously stored brightness
        ;;
esac

Note that instead of asking swayidle to run an external script, it could probably be done with a single line with all commands embedded on the swayidle invocation, but I find this easier to understand and manipulate.

I am using Debian Trixie too, and even this method has served me very well, I just tested issuing dpms on/off to the internal panel and within the few tries I did it seems to work correctly. I am sorry to say I can’t remember at which point I had to use this trick and don’t know at which point I could use dpms again.

1 Like

this is the first thing i tried, since it seems like the logical solution but the panel was still stuck

i use Gnome on my Pocket Reform, so i don’t think this is really an option? as is it seems like a driver issue, so the root cause (the driver) really should get fixed, but thank you for including your workaround

Oh, yes, what I am using is probably not applicable to gnome.

been leaving my pocket off lately (since the screen crash kept making it effectively unusable) and found there was a mesa update waiting for me. after installing and rebooting i found that this same error was perpetually sent in dmesg every time the screen is off

[  728.872389] ------------[ cut here ]------------
[  728.872406] WARNING: CPU: 2 PID: 2243 at drivers/gpio/gpiolib.c:3591 gpiod_set_value+0x3c/0x70
[  728.872428] Modules linked in: sd_mod scsi_mod scsi_common aes_ce_ccm 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 nls_utf8 nft_compat cifs bridge stp llc cifs_arc4 nf_tables nls_ucs2_utils cifs_md4 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 bnep qrtr hci_uart btqca btrtl btintel btbcm rtw88_8822cs rtw88_8822c rtw88_sdio rtw88_core bluetooth ledtrig_pattern ecdh_generic mac80211 pwrseq_core libarc4 snd_soc_tlv320aic31xx reform2_lpc(OE) qmi_wwan snd_soc_meson_g12a_tohdmitx cfg80211 cdc_wdm snd_soc_meson_axg_tdmin binfmt_misc usbnet mii snd_soc_meson_axg_frddr rfkill snd_soc_meson_axg_tdmout option meson_rng usb_wwan usbserial cdc_acm snd_soc_meson_axg_sound_card snd_soc_meson_card_utils meson_saradc industrialio leds_gpio snd_soc_meson_axg_tdm_interface snd_soc_meson_axg_tdm_formatter joydev evdev
[  728.872676]  nvme_fabrics nvme_keyring configfs efi_pstore 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 xhci_plat_hcd xhci_hcd aes_ce_blk dwc2 aes_ce_cipher dwc3 crct10dif_ce meson_vdec(C) polyval_ce meson_gxl videobuf2_dma_contig udc_core smsc videobuf2_memops crc16 usbcore v4l2_mem2mem polyval_generic videobuf2_v4l2 panfrost ulpi ghash_ce gpu_sched gf128mul snd_soc_meson_axg_toddr snd_soc_hdmi_codec sha2_ce spi_gpio snd_soc_meson_axg_fifo snd_soc_core dw_hdmi_i2s_audio sha256_arm64 spi_bitbang drm_shmem_helper videodev snd_compress rtc_pcf8523 dwc3_meson_g12a nvme meson_dw_mipi_dsi usb_common axg_audio sha1_ce meson_gxbb_wdt snd_pcm_dmaengine rtc_meson_vrtc dw_mipi_dsi ao_cec_g12a snd_pcm clk_pwm phylink videobuf2_common snd_timer
[  728.872931]  snd nvme_core sclk_div soundcore reset_meson_audio_arb mc nvme_auth meson_drm fixed_phy clk_phase fwnode_mdio libphy meson_dw_hdmi meson_canvas pwm_regulator gpio_regulator nvmem_meson_efuse cpufreq_dt [last unloaded: of_mdio]
[  728.872994] CPU: 2 UID: 1000 PID: 2243 Comm: KMS thread Tainted: G        WC OE      6.12.73-mnt-reform-arm64 #1  Debian 6.12.73-1+reform20260321T104947Z
[  728.873009] Tainted: [W]=WARN, [C]=CRAP, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[  728.873014] Hardware name: MNT Pocket Reform with BPI-CM4 Module (DT)
[  728.873020] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  728.873028] pc : gpiod_set_value+0x3c/0x70
[  728.873037] lr : jdi_panel_prepare+0xbc/0x170
[  728.873050] sp : ffff800087dfb850
[  728.873055] x29: ffff800087dfb850 x28: 0000000000000000 x27: 0000ffff7001bf70
[  728.873070] x26: 0000000000000000 x25: ffff80008173f9c8 x24: ffff00003fcdc080
[  728.873083] x23: ffff0000d418fa80 x22: ffff000009ab16c0 x21: ffff800081745558
[  728.873096] x20: ffff00003fcdfc08 x19: ffff000009ab1680 x18: 0000000000000004
[  728.873109] x17: 0000000000000018 x16: 0000000000003798 x15: 00000000000007ff
[  728.873122] x14: 0000000000000000 x13: 0000000000000000 x12: 000000000000017d
[  728.873134] x11: 00000000000000c0 x10: 0000000000000bd0 x9 : ffff800080b1f244
[  728.873147] x8 : ffff00005b451eb0 x7 : 0000000000000000 x6 : 0000000000000070
[  728.873160] x5 : 0000000000000001 x4 : 0000000000000005 x3 : 0000000000000000
[  728.873172] x2 : 0000000000000001 x1 : 0000000000000001 x0 : ffff00000190a740
[  728.873185] Call trace:
[  728.873190]  gpiod_set_value+0x3c/0x70
[  728.873198]  jdi_panel_prepare+0xbc/0x170
[  728.873208]  drm_panel_prepare+0x50/0x110
[  728.873219]  panel_bridge_atomic_pre_enable+0x5c/0x80
[  728.873229]  drm_atomic_bridge_call_pre_enable+0x50/0x98
[  728.873239]  drm_atomic_bridge_chain_pre_enable+0xe8/0x140
[  728.873248]  drm_atomic_helper_commit_modeset_enables+0x178/0x290
[  728.873258]  drm_atomic_helper_commit_tail_rpm+0x58/0xb0
[  728.873265]  commit_tail+0xa8/0x1b0
[  728.873273]  drm_atomic_helper_commit+0x184/0x1c0
[  728.873280]  drm_atomic_commit+0xc0/0x108
[  728.873289]  drm_mode_atomic_ioctl+0xb60/0xe80
[  728.873297]  drm_ioctl_kernel+0xc8/0x140
[  728.873305]  drm_ioctl+0x250/0x550
[  728.873312]  __arm64_sys_ioctl+0xb4/0x100
[  728.873320]  invoke_syscall+0x6c/0x100
[  728.873331]  el0_svc_common.constprop.0+0x48/0xf0
[  728.873341]  do_el0_svc+0x24/0x38
[  728.873350]  el0_svc+0x38/0x150
[  728.873361]  el0t_64_sync_handler+0x120/0x138
[  728.873370]  el0t_64_sync+0x190/0x198
[  728.873378] ---[ end trace 0000000000000000 ]---
[  728.873429] panel-mnt-pocket-reform ffd07000.dsi.0: [display] init in prepare...
[  728.976309] panel-mnt-pocket-reform ffd07000.dsi.0: [display v2] sent tables OK
[  729.076357] panel-mnt-pocket-reform ffd07000.dsi.0: [display v2] OK

which seems to be near identical but this time it appears to be coming back on after, and not being fatal. maybe it’s fixed? not sure. anyone else test this more?

edit: it still crashed, just took longer this time. weirdly enough it only crashed after I started waydroid.

got more info, caught it seeming to almost crash but not actually and may have found the root issue in this dmesg log

[  456.299362] ------------[ cut here ]------------
[  456.299385] WARNING: CPU: 1 PID: 2279 at drivers/gpio/gpiolib.c:3590 gpiod_set_value+0x3c/0x70
[  456.299416] Modules linked in: sd_mod scsi_mod scsi_common aes_ce_ccm 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 nf_tables cifs_md4 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 rtw88_8822c hci_uart rtw88_sdio rtw88_core btqca ledtrig_pattern option btrtl qmi_wwan mac80211 cdc_wdm btintel usb_wwan usbnet usbserial cdc_acm mii btbcm snd_soc_tlv320aic31xx bluetooth libarc4 cfg80211 snd_soc_meson_axg_sound_card reform2_lpc(OE) ecdh_generic snd_soc_meson_card_utils snd_soc_meson_axg_tdmout snd_soc_meson_g12a_tohdmitx snd_soc_meson_axg_frddr snd_soc_meson_axg_tdmin rfkill binfmt_misc meson_rng pwrseq_core meson_saradc industrialio snd_soc_meson_axg_tdm_interface leds_gpio snd_soc_meson_axg_tdm_formatter evdev joydev
[  456.299789]  nvme_fabrics efi_pstore nvme_keyring 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 meson_vdec(C) videobuf2_dma_contig aes_ce_blk videobuf2_memops aes_ce_cipher dwc2 dwc3 phylink v4l2_mem2mem crct10dif_ce udc_core snd_soc_hdmi_codec usbcore ulpi dw_hdmi_i2s_audio panfrost videobuf2_v4l2 snd_soc_meson_axg_toddr polyval_ce snd_soc_meson_axg_fifo nvme videodev snd_soc_core polyval_generic ghash_ce axg_audio gf128mul snd_compress gpu_sched sclk_div nvme_core snd_pcm_dmaengine spi_gpio snd_pcm videobuf2_common sha2_ce meson_dw_mipi_dsi dwc3_meson_g12a snd_timer sha256_arm64 fixed_phy rtc_pcf8523 usb_common drm_shmem_helper sha1_ce clk_pwm snd spi_bitbang clk_phase soundcore
[  456.300029]  reset_meson_audio_arb rtc_meson_vrtc ao_cec_g12a dw_mipi_dsi meson_gxbb_wdt meson_drm nvme_auth fwnode_mdio libphy meson_dw_hdmi mc gpio_regulator meson_canvas pwm_regulator nvmem_meson_efuse cpufreq_dt [last unloaded: of_mdio]
[  456.300081] CPU: 1 UID: 1000 PID: 2279 Comm: KMS thread Tainted: G        WC OE      6.12.86-mnt-reform-arm64 #1  Debian 6.12.86-1+reform20260601T192629Z
[  456.300093] Tainted: [W]=WARN, [C]=CRAP, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[  456.300097] Hardware name: MNT Pocket Reform with BPI-CM4 Module (DT)
[  456.300102] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  456.300108] pc : gpiod_set_value+0x3c/0x70
[  456.300115] lr : jdi_panel_unprepare+0x60/0xc0
[  456.300124] sp : ffff800087e8b720
[  456.300127] x29: ffff800087e8b720 x28: 0000000000000000 x27: ffff00000afd1480
[  456.300139] x26: ffff00000afd1500 x25: ffff000009c58200 x24: ffff80008176dc68
[  456.300150] x23: ffff00000223f080 x22: ffff00000213e4c0 x21: ffff00000213e480
[  456.300161] x20: ffff00000b120000 x19: ffff00000213e480 x18: 0000000000000000
[  456.300172] x17: 0000000000000000 x16: 0000000000000000 x15: 0000ffff6401ae78
[  456.300183] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000210
[  456.300194] x11: 00000000000000c0 x10: 0000000000000bd0 x9 : ffff800080b21490
[  456.300206] x8 : ffff00006c9a43b0 x7 : 0000000000000000 x6 : 0000000000000000
[  456.300217] x5 : ffff800087e8b5b8 x4 : 0000000000000000 x3 : 0000000000000000
[  456.300227] x2 : 0000000000000001 x1 : 0000000000000000 x0 : ffff000002344740
[  456.300239] Call trace:
[  456.300243]  gpiod_set_value+0x3c/0x70
[  456.300251]  jdi_panel_unprepare+0x60/0xc0
[  456.300257]  drm_panel_unprepare+0x94/0x110
[  456.300268]  panel_bridge_atomic_post_disable+0x5c/0x80
[  456.300277]  drm_atomic_bridge_call_post_disable+0x50/0x90
[  456.300288]  drm_atomic_bridge_chain_post_disable+0xd4/0x138
[  456.300296]  disable_outputs+0x12c/0x350
[  456.300304]  drm_atomic_helper_commit_tail_rpm+0x2c/0xb0
[  456.300312]  commit_tail+0xa8/0x1b0
[  456.300319]  drm_atomic_helper_commit+0x184/0x1c0
[  456.300326]  drm_atomic_commit+0xc0/0x108
[  456.300334]  drm_mode_atomic_ioctl+0xb60/0xe80
[  456.300342]  drm_ioctl_kernel+0xc8/0x140
[  456.300350]  drm_ioctl+0x250/0x550
[  456.300357]  __arm64_sys_ioctl+0xb4/0x100
[  456.300365]  invoke_syscall+0x60/0xe0
[  456.300375]  el0_svc_common.constprop.0+0x48/0xf0
[  456.300383]  do_el0_svc+0x24/0x38
[  456.300391]  el0_svc+0x38/0x150
[  456.300398]  el0t_64_sync_handler+0x120/0x138
[  456.300404]  el0t_64_sync+0x190/0x198
[  456.300412] ---[ end trace 0000000000000000 ]---
[  456.731581] ------------[ cut here ]------------
[  456.731602] WARNING: CPU: 1 PID: 2279 at drivers/gpio/gpiolib.c:3590 gpiod_set_value+0x3c/0x70
[  456.731630] Modules linked in: sd_mod scsi_mod scsi_common aes_ce_ccm 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 nf_tables cifs_md4 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 rtw88_8822c hci_uart rtw88_sdio rtw88_core btqca ledtrig_pattern option btrtl qmi_wwan mac80211 cdc_wdm btintel usb_wwan usbnet usbserial cdc_acm mii btbcm snd_soc_tlv320aic31xx bluetooth libarc4 cfg80211 snd_soc_meson_axg_sound_card reform2_lpc(OE) ecdh_generic snd_soc_meson_card_utils snd_soc_meson_axg_tdmout snd_soc_meson_g12a_tohdmitx snd_soc_meson_axg_frddr snd_soc_meson_axg_tdmin rfkill binfmt_misc meson_rng pwrseq_core meson_saradc industrialio snd_soc_meson_axg_tdm_interface leds_gpio snd_soc_meson_axg_tdm_formatter evdev joydev
[  456.731963]  nvme_fabrics efi_pstore nvme_keyring 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 meson_vdec(C) videobuf2_dma_contig aes_ce_blk videobuf2_memops aes_ce_cipher dwc2 dwc3 phylink v4l2_mem2mem crct10dif_ce udc_core snd_soc_hdmi_codec usbcore ulpi dw_hdmi_i2s_audio panfrost videobuf2_v4l2 snd_soc_meson_axg_toddr polyval_ce snd_soc_meson_axg_fifo nvme videodev snd_soc_core polyval_generic ghash_ce axg_audio gf128mul snd_compress gpu_sched sclk_div nvme_core snd_pcm_dmaengine spi_gpio snd_pcm videobuf2_common sha2_ce meson_dw_mipi_dsi dwc3_meson_g12a snd_timer sha256_arm64 fixed_phy rtc_pcf8523 usb_common drm_shmem_helper sha1_ce clk_pwm snd spi_bitbang clk_phase soundcore
[  456.732316]  reset_meson_audio_arb rtc_meson_vrtc ao_cec_g12a dw_mipi_dsi meson_gxbb_wdt meson_drm nvme_auth fwnode_mdio libphy meson_dw_hdmi mc gpio_regulator meson_canvas pwm_regulator nvmem_meson_efuse cpufreq_dt [last unloaded: of_mdio]
[  456.732391] CPU: 1 UID: 1000 PID: 2279 Comm: KMS thread Tainted: G        WC OE      6.12.86-mnt-reform-arm64 #1  Debian 6.12.86-1+reform20260601T192629Z
[  456.732408] Tainted: [W]=WARN, [C]=CRAP, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[  456.732414] Hardware name: MNT Pocket Reform with BPI-CM4 Module (DT)
[  456.732420] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  456.732430] pc : gpiod_set_value+0x3c/0x70
[  456.732440] lr : jdi_panel_prepare+0xbc/0x170
[  456.732451] sp : ffff800087e8b790
[  456.732456] x29: ffff800087e8b790 x28: 0000000000000000 x27: 0000ffff6401ab70
[  456.732473] x26: 0000000000000000 x25: ffff80008176dd38 x24: ffff00000b122880
[  456.732490] x23: ffff000079e53800 x22: ffff00000213e4c0 x21: ffff8000817738c8
[  456.732507] x20: ffff00000b120008 x19: ffff00000213e480 x18: 0000000000000038
[  456.732523] x17: 000222e00000000a x16: 0000000000017318 x15: 0000947000000008
[  456.732540] x14: 0001dc4c00000000 x13: 0000000000000000 x12: 0000000000000371
[  456.732556] x11: 00000000000000c0 x10: 0000000000000bd0 x9 : ffff800080b21744
[  456.732573] x8 : ffff00006c9a43b0 x7 : 0000000000000000 x6 : 0000000000000070
[  456.732589] x5 : 0000000000000001 x4 : 0000000000000004 x3 : 0000000000000000
[  456.732606] x2 : 0000000000000001 x1 : 0000000000000001 x0 : ffff000002344740
[  456.732627] Call trace:
[  456.732634]  gpiod_set_value+0x3c/0x70
[  456.732646]  jdi_panel_prepare+0xbc/0x170
[  456.732657]  drm_panel_prepare+0x50/0x110
[  456.732674]  panel_bridge_atomic_pre_enable+0x5c/0x80
[  456.732689]  drm_atomic_bridge_call_pre_enable+0x50/0x98
[  456.732705]  drm_atomic_bridge_chain_pre_enable+0xe8/0x140
[  456.732720]  drm_atomic_helper_commit_modeset_enables+0x178/0x290
[  456.732735]  drm_atomic_helper_commit_tail_rpm+0x58/0xb0
[  456.732749]  commit_tail+0xa8/0x1b0
[  456.732761]  drm_atomic_helper_commit+0x184/0x1c0
[  456.732775]  drm_atomic_commit+0xc0/0x108
[  456.732788]  drm_mode_atomic_ioctl+0xb60/0xe80
[  456.732802]  drm_ioctl_kernel+0xc8/0x140
[  456.732816]  drm_ioctl+0x250/0x550
[  456.732828]  __arm64_sys_ioctl+0xb4/0x100
[  456.732841]  invoke_syscall+0x60/0xe0
[  456.732857]  el0_svc_common.constprop.0+0x48/0xf0
[  456.732871]  do_el0_svc+0x24/0x38
[  456.732885]  el0_svc+0x38/0x150
[  456.732897]  el0t_64_sync_handler+0x120/0x138
[  456.732908]  el0t_64_sync+0x190/0x198
[  456.732920] ---[ end trace 0000000000000000 ]---
[  456.732994] panel-mnt-pocket-reform ffd07000.dsi.0: [display] init in prepare...
[  456.836467] panel-mnt-pocket-reform ffd07000.dsi.0: [display v2] sent tables OK
[  456.936563] panel-mnt-pocket-reform ffd07000.dsi.0: [display v2] OK
[  456.947623] meson_encl_set_gamma_table: GAMMA WR_RDY timeout
[  459.500541] meson_encl_set_gamma_table: GAMMA ADR_RDY timeout
[  459.510570] meson_encl_set_gamma_table: GAMMA ADR_RDY timeout
[  462.083635] meson_encl_set_gamma_table: GAMMA ADR_RDY timeout
[  462.093673] meson_encl_set_gamma_table: GAMMA ADR_RDY timeout
[  464.666358] meson_encl_set_gamma_table: GAMMA ADR_RDY timeout

notice the last few lines, gamma timeout. can anyone else having this issue confirm via something like ssh that these appear?

alright, caught a full crash, SSH’d in, and got this:

[11450.473881] usb 1-2.1.3: reset full-speed USB device number 5 using xhci-hcd
[11479.218814] ------------[ cut here ]------------
[11479.218831] WARNING: CPU: 3 PID: 2186 at drivers/gpio/gpiolib.c:3590 gpiod_set_value+0x3c/0x70
[11479.218855] Modules linked in: uinput sd_mod scsi_mod scsi_common aes_ce_ccm 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 bridge cifs stp llc nf_tables cifs_arc4 nls_ucs2_utils cifs_md4 dns_resolver netfs dwmac_meson8b stmmac_platform stmmac pcs_xpcs mdio_devres mdio_mux_meson_g12a mdio_mux of_mdio qrtr rfcomm algif_hash algif_skcipher af_alg bnep hci_uart btqca btrtl ledtrig_pattern btintel rtw88_8822cs btbcm rtw88_8822c bluetooth rtw88_sdio rtw88_core mac80211 ecdh_generic qmi_wwan option pwrseq_core cdc_acm cdc_wdm usb_wwan usbnet libarc4 usbserial mii binfmt_misc snd_soc_meson_axg_sound_card cfg80211 snd_soc_tlv320aic31xx rfkill snd_soc_meson_card_utils reform2_lpc(OE) snd_soc_meson_axg_tdmin meson_saradc snd_soc_meson_axg_tdmout snd_soc_meson_g12a_tohdmitx industrialio meson_rng snd_soc_meson_axg_frddr leds_gpio snd_soc_meson_axg_tdm_interface snd_soc_meson_axg_tdm_formatter evdev
[11479.219103]  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 xhci_plat_hcd xhci_hcd snd_soc_hdmi_codec dwc2 meson_gxl smsc dwc3 crc16 snd_soc_meson_axg_toddr udc_core snd_soc_meson_axg_fifo dw_hdmi_i2s_audio usbcore snd_soc_core nvme aes_ce_blk nvme_core meson_vdec(C) snd_compress aes_ce_cipher videobuf2_dma_contig videobuf2_memops snd_pcm_dmaengine ulpi v4l2_mem2mem crct10dif_ce videobuf2_v4l2 polyval_ce snd_pcm videodev polyval_generic panfrost phylink axg_audio ghash_ce dwc3_meson_g12a snd_timer videobuf2_common sclk_div snd gf128mul rtc_pcf8523 reset_meson_audio_arb soundcore clk_phase meson_dw_hdmi gpu_sched spi_gpio mc sha2_ce meson_dw_mipi_dsi fixed_phy usb_common sha256_arm64
[11479.219363]  clk_pwm meson_gxbb_wdt sha1_ce fwnode_mdio nvme_auth spi_bitbang drm_shmem_helper meson_drm ao_cec_g12a dw_mipi_dsi libphy rtc_meson_vrtc meson_canvas gpio_regulator pwm_regulator nvmem_meson_efuse cpufreq_dt [last unloaded: of_mdio]
[11479.219423] CPU: 3 UID: 1000 PID: 2186 Comm: KMS thread Tainted: G        WC OE      6.12.86-mnt-reform-arm64 #1  Debian 6.12.86-1+reform20260601T192629Z
[11479.219439] Tainted: [W]=WARN, [C]=CRAP, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[11479.219444] Hardware name: MNT Pocket Reform with BPI-CM4 Module (DT)
[11479.219450] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[11479.219459] pc : gpiod_set_value+0x3c/0x70
[11479.219469] lr : jdi_panel_unprepare+0x60/0xc0
[11479.219478] sp : ffff800087eab7e0
[11479.219483] x29: ffff800087eab7e0 x28: 0000000000000000 x27: ffff000003732080
[11479.219497] x26: ffff000003732100 x25: ffff00002bb52a00 x24: ffff80008176dc68
[11479.219510] x23: ffff000001576080 x22: ffff000000db66c0 x21: ffff000000db6680
[11479.219522] x20: ffff0000044f1400 x19: ffff000000db6680 x18: 0000000000000000
[11479.219535] x17: 0000000000000000 x16: 0000000000000000 x15: 0000ffff6401c4a8
[11479.219547] x14: 0000000000000000 x13: 0000000000000000 x12: 0000000000000000
[11479.219559] x11: 0000000000000000 x10: 0000000000000000 x9 : ffff800080b21490
[11479.219572] x8 : ffff00001551d180 x7 : 0000000000000000 x6 : ffff00004197b600
[11479.219584] x5 : 0000000000000002 x4 : 0000000000000000 x3 : 0000000000000000
[11479.219596] x2 : 0000000000000001 x1 : 0000000000000000 x0 : ffff0000016f3740
[11479.219609] Call trace:
[11479.219614]  gpiod_set_value+0x3c/0x70
[11479.219623]  jdi_panel_unprepare+0x60/0xc0
[11479.219630]  drm_panel_unprepare+0x94/0x110
[11479.219641]  panel_bridge_atomic_post_disable+0x5c/0x80
[11479.219651]  drm_atomic_bridge_call_post_disable+0x50/0x90
[11479.219662]  drm_atomic_bridge_chain_post_disable+0xd4/0x138
[11479.219672]  disable_outputs+0x12c/0x350
[11479.219680]  drm_atomic_helper_commit_tail_rpm+0x2c/0xb0
[11479.219689]  commit_tail+0xa8/0x1b0
[11479.219697]  drm_atomic_helper_commit+0x184/0x1c0
[11479.219706]  drm_atomic_commit+0xc0/0x108
[11479.219714]  drm_mode_atomic_ioctl+0xb60/0xe80
[11479.219723]  drm_ioctl_kernel+0xc8/0x140
[11479.219733]  drm_ioctl+0x250/0x550
[11479.219740]  __arm64_sys_ioctl+0xb4/0x100
[11479.219749]  invoke_syscall+0x60/0xe0
[11479.219760]  el0_svc_common.constprop.0+0x48/0xf0
[11479.219770]  do_el0_svc+0x24/0x38
[11479.219779]  el0_svc+0x38/0x150
[11479.219786]  el0t_64_sync_handler+0x120/0x138
[11479.219793]  el0t_64_sync+0x190/0x198
[11479.219801] ---[ end trace 0000000000000000 ]---

looks near identical to me and no gamma timeouts, so probably not that after all.

if anyone at MNT or in the community can come up with a fix that’d be great since i frankly have no idea what i’m looking at here, and the above mentioned issues with the driver that stephano brought up have stagnated.

Sorry I haven’t been able to look into this any further. My hope was with Stephano or my RK board coming since it looks like that has more community interest. Neither of which has come true so I am just never locking the screen or doing a reboot… once boot text start coming up I always feel better. I just wonder what happened because when I first switched the board I don’t remember this happening before kernel 6.18 when a few things got more complicated.

no apology needed, it’s just really frustrating that things stagnated since I can’t get the rk3588 yet, and also since I feel like all the boards should be functional at a base level and not have issues like this that make them unusable for some. /neu

if you get time to look into this I am more than happy to mess around with mine and instigate the issue to get more logs and data /pos

reason I haven’t done anything is because I just haven’t done much coding things before (just bash and a hint of python) and haven’t touched something as low level as firmware/drivers so I have no clue what i’m doing, hence the “dmesg logs into the void” as seen above lol /lh

Hi @Nebula-System I’m afraid I am unable to give any professional input on this topic but as a data point, if you have the time, can you confirm that the issue does not happen if you use sway with a swayidle as it was posted by @amospalla or more trivially:

exec swayidle -w timeout 300 'brightnessctl set 0%' resume 'brightnessctl set 100%'

Could you also remind me whether you use Debian unstable from MNT or whether you use Debian stable from reform.debian.net?

1 Like

I’m not sure @Nebula-System wants to try sway, but I’ll switch mine back to sway and see what happens.

1 Like

just saw these

testing this now, i’ll report back in a bit with fresh dmesg and instigate it a bit (log out, in, lock, repeat a bunch of times)

i use the stable one, since it’s required for Waydroid and since i’m eventually moving my phone functions to my Pocket Reform i need Waydroid. which is another reason this issue is so frustrating for me, i need it to be reliable and can’t simply roll back the kernel update due to dirty frag (difficulty aside)

that said, i don’t see how the stable vs unstable would make a difference? the drivers are backported and it’s a driver issue as i understand it. unless the drivers that are backported aren’t the most up to date? i am also curious, why does MNT use unstable anyway? it it just ease of rapid development? and will stable become the default in a later release, for example forky?

1 Like

Most of the time swayidle seems to set brightness to 0% successfully. Sometimes I see:

Jun 23 23:23:52 mntbear /usr/libexec/gdm-wayland-session[17106]: Updated device 'mnt_pocket_reform_backlight':
Jun 23 23:23:52 mntbear /usr/libexec/gdm-wayland-session[17106]: Device 'mnt_pocket_reform_backlight' of class 'backlight':
Jun 23 23:23:52 mntbear /usr/libexec/gdm-wayland-session[17106]:         Current brightness: 0 (0%)
Jun 23 23:23:52 mntbear /usr/libexec/gdm-wayland-session[17106]:         Max brightness: 100

but the screen is still on normally.

My details:

I: `uname -a` output: Linux mntbear 7.0.10-mnt-reform-arm64 #1 SMP PREEMPT Debian 7.0.10-1+reform20260602T222813Z (2026-06-0 aarch64 GNU/Linux
I: Version of linux-image-mnt-reform-arm64: 7.0.10-1+reform20260602T222813Z
I: Version of reform-tools: 1.87-1+reform20260529T225830Z+1
I: Version of system image: System Image v5: 2025-12-21
I: Version of system controller firmware: 20251118
I: Version of keyboard firmware: 20251118
I: Version of LPC firmware: PREF1SYS R1 20251118

nothing good in dmesg or journalctl when it doesn’t blank.

ok tried swayidle as posted, doesn’t seem to error, still found these in dmesg, though they were probably from prior to logout of gnome and into sway

[  750.949609] ------------[ cut here ]------------
[  750.949625] WARNING: CPU: 5 PID: 2157 at drivers/gpio/gpiolib.c:3590 gpiod_set_value+0x3c/0x70
[  750.949648] Modules linked in: aes_ce_ccm sd_mod scsi_mod scsi_common 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 qrtr rfcomm algif_hash algif_skcipher af_alg bnep rtw88_8822cs rtw88_8822c rtw88_sdio qmi_wwan hci_uart rtw88_core cdc_wdm ledtrig_pattern btqca mac80211 btrtl binfmt_misc usbnet option btintel usb_wwan libarc4 mii btbcm usbserial bluetooth reform2_lpc(OE) cfg80211 snd_soc_meson_axg_sound_card ecdh_generic cdc_acm pwrseq_core snd_soc_meson_card_utils rfkill snd_soc_tlv320aic31xx snd_soc_meson_g12a_tohdmitx meson_saradc snd_soc_meson_axg_tdmout snd_soc_meson_axg_tdmin snd_soc_meson_axg_frddr meson_rng industrialio snd_soc_meson_axg_tdm_interface leds_gpio snd_soc_meson_axg_tdm_formatter joydev evdev
[  750.949897]  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 xhci_plat_hcd xhci_hcd meson_gxl smsc crc16 meson_vdec(C) dwc2 dwc3 videobuf2_dma_contig aes_ce_blk snd_soc_meson_axg_toddr videobuf2_memops aes_ce_cipher snd_soc_meson_axg_fifo snd_soc_hdmi_codec crct10dif_ce v4l2_mem2mem polyval_ce snd_soc_core polyval_generic udc_core panfrost videobuf2_v4l2 ghash_ce gf128mul usbcore snd_compress videodev ulpi sha2_ce axg_audio snd_pcm_dmaengine phylink nvme gpu_sched snd_pcm sclk_div dwc3_meson_g12a sha256_arm64 meson_dw_mipi_dsi videobuf2_common spi_gpio dw_hdmi_i2s_audio mc fixed_phy snd_timer meson_drm drm_shmem_helper rtc_pcf8523 clk_pwm usb_common sha1_ce spi_bitbang snd dw_mipi_dsi
[  750.950158]  meson_gxbb_wdt reset_meson_audio_arb nvme_core rtc_meson_vrtc clk_phase soundcore fwnode_mdio ao_cec_g12a nvme_auth meson_canvas libphy meson_dw_hdmi gpio_regulator pwm_regulator nvmem_meson_efuse cpufreq_dt [last unloaded: of_mdio]
[  750.950214] CPU: 5 UID: 1000 PID: 2157 Comm: KMS thread Tainted: G        WC OE      6.12.86-mnt-reform-arm64 #1  Debian 6.12.86-1+reform20260601T192629Z
[  750.950230] Tainted: [W]=WARN, [C]=CRAP, [O]=OOT_MODULE, [E]=UNSIGNED_MODULE
[  750.950235] Hardware name: MNT Pocket Reform with BPI-CM4 Module (DT)
[  750.950241] pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)
[  750.950249] pc : gpiod_set_value+0x3c/0x70
[  750.950257] lr : jdi_panel_prepare+0xbc/0x170
[  750.950266] sp : ffff800087f33760
[  750.950271] x29: ffff800087f33760 x28: 0000000000000000 x27: 0000ffff7001ba40
[  750.950285] x26: 0000000000000000 x25: ffff80008176dd38 x24: ffff00003daad480
[  750.950298] x23: ffff000042167900 x22: ffff00000f9950c0 x21: ffff8000817738c8
[  750.950310] x20: ffff00003daaf408 x19: ffff00000f995080 x18: 0000000000000038
[  750.950323] x17: 000222e00000000a x16: 0000000000017318 x15: 0000947000000008
[  750.950335] x14: 0000000000000000 x13: 0000000000000000 x12: 00000000000003d6
[  750.950347] x11: 00000000000000c0 x10: 0000000000000bd0 x9 : ffff800080b21744
[  750.950359] x8 : ffff00003b181eb0 x7 : 0000000000000000 x6 : 0000000000000070
[  750.950371] x5 : 0000000000000001 x4 : 0000000000000000 x3 : 0000000000000000
[  750.950383] x2 : 0000000000000001 x1 : 0000000000000001 x0 : ffff00000139f740
[  750.950396] Call trace:
[  750.950400]  gpiod_set_value+0x3c/0x70
[  750.950408]  jdi_panel_prepare+0xbc/0x170
[  750.950415]  drm_panel_prepare+0x50/0x110
[  750.950427]  panel_bridge_atomic_pre_enable+0x5c/0x80
[  750.950437]  drm_atomic_bridge_call_pre_enable+0x50/0x98
[  750.950448]  drm_atomic_bridge_chain_pre_enable+0xe8/0x140
[  750.950457]  drm_atomic_helper_commit_modeset_enables+0x178/0x290
[  750.950466]  drm_atomic_helper_commit_tail_rpm+0x58/0xb0
[  750.950475]  commit_tail+0xa8/0x1b0
[  750.950482]  drm_atomic_helper_commit+0x184/0x1c0
[  750.950490]  drm_atomic_commit+0xc0/0x108
[  750.950499]  drm_mode_atomic_ioctl+0xb60/0xe80
[  750.950508]  drm_ioctl_kernel+0xc8/0x140
[  750.950517]  drm_ioctl+0x250/0x550
[  750.950524]  __arm64_sys_ioctl+0xb4/0x100
[  750.950533]  invoke_syscall+0x60/0xe0
[  750.950544]  el0_svc_common.constprop.0+0x48/0xf0
[  750.950553]  do_el0_svc+0x24/0x38
[  750.950562]  el0_svc+0x38/0x150
[  750.950569]  el0t_64_sync_handler+0x120/0x138
[  750.950575]  el0t_64_sync+0x190/0x198
[  750.950583] ---[ end trace 0000000000000000 ]---
[  750.950635] panel-mnt-pocket-reform ffd07000.dsi.0: [display] init in prepare...
[  751.053855] panel-mnt-pocket-reform ffd07000.dsi.0: [display v2] sent tables OK
[  751.153881] panel-mnt-pocket-reform ffd07000.dsi.0: [display v2] OK
[  871.226981] rfkill: input handler enabled
[  874.082229] panel-mnt-pocket-reform ffd07000.dsi.0: vsync-shift from device tree: 1
[  876.297835] rfkill: input handler disabled
[  892.860745] rfkill: input handler enabled
[  893.326724] panel-mnt-pocket-reform ffd07000.dsi.0: vsync-shift from device tree: 1

so it seems we may have isolated the issue to something with the gnome lock screen. gonna set idle timeout to 3 seconds and have a mini rave and see if i can get the issue to happen now, if not then it’s definitely gnome

edit: ok after letting it set to 0 brightness and back on over 50 times and resulting in nothing in dmesg i think it’s 100% something to do with gnome’s handling of setting screens to off when locking. maybe on the Pocket include in the reform-check or something an edit to the relevant config in gnome if it detects gnome is installed? that’ll be once we figure out what the exact mishandling thing is and if the way gnome handles it can be changed or if it’s even gnome’s fault and it’s not a driver issue as initially suspected

i’m gonna do some poking around in gnome on my end, let me know if there’s anything anyone needs (other than using sway ideally, i seriously dislike it lol)

2 Likes