DP does not recover from display blank
At least with my 2-lane hub on the unblank after a power save screen blank i only (most of the time) get a cyan colored screen.
Activity
-
Newest first Oldest first
-
Show all activity Show comments only Show history only
- Guido Gunther changed milestone to %Evg
changed milestone to %Evg
- Guido Gunther added convergence important labels
added convergence important labels
FWIW it works for me perfectly fine (using a hub), so it's not fully broken
Collapse replies - Author Owner
It also works on my 4 lane adapter - i have some vague idea what could be triggering this but lets gather some more data. If it's only this single piece then i'll lower severity.
- Author Owner
For the borken case i did not yet find a way to unbreak it except for reboot - resetting the adapter doesn't help so it's something on the phone's DP side.
- Owner
I see this on my 2 lane adapter as well
- Guido Gunther mentioned in issue wlroots#39 (closed)
mentioned in issue wlroots#39 (closed)
- Guido Gunther changed the description
changed the description
- Author Owner
Couldn't trigger with stopped compositor and
echo 0|1 > /sys/devices/platform/soc@0/32c00000.bus/32e00000.display-controller/graphics/fb1/blank
nor with running compositor and
wlr-randr -o DP-1 --[off|on]
nor powerbutton presses with my 4-lane DP adapter. Hoever i could trigger a completely black screen (although the screen is not complaining about the lack of a display signal) which might be the same issue.
- Author Owner
Likely related: sometimes we probe the lanes on unplug (seen on my 4 lane adapter):
[ 700.231196] [drm] hpd irq [ 700.434032] [drm] Connector status: 0 [ 700.434129] [drm] HDMI/DP Cable Plug Out [ 700.440122] [drm] Connector status: 0 [ 701.316930] rfkill: input handler enabled [ 701.653355] [drm] Mode: 3840x2160p533250 [ 701.909743] [drm:cdns_dp_bridge_mode_set [cdns_mhdp_drmcore]] *ERROR* Failed to get caps -5 [ 701.942820] imx-dcss 32e00000.display-controller: Pixel clock set to 533432 kHz instead of 533250 kHz. [ 701.942859] cdns-mhdp-imx 32c00000.hdmi: [drm:cdns_mhdp_train_link [cdns_mhdp_drmcore]] Staring link training [ 702.457913] cdns-mhdp-imx 32c00000.hdmi: [drm:cdns_mhdp_train_link [cdns_mhdp_drmcore]] *ERROR* training failed: -110 [ 702.468561] cdns-mhdp-imx 32c00000.hdmi: [drm:cdns_mhdp_train_link [cdns_mhdp_drmcore]] *ERROR* Failed to start training -110 [ 702.479912] cdns-mhdp-imx 32c00000.hdmi: [drm:cdn_dp_bridge_enable [cdns_mhdp_drmcore]] *ERROR* Failed link train -110
i though this messes up the firmware completely but is seems to be able to recover.
(edited to inidicate that it's not fully broken which it looked like until i hit
save comment
and then it was able to recover).Edited by Guido Gunther - Author Owner
@angus.ainslie could you check if
echo performance > /sys/devices/platform/soc@0/3d400000.memory-controller/devfreq/3d400000.memory-controller/governor echo performance > /sys/devices/platform/soc@0/32700000.interconnect/devfreq/32700000.interconnect/governor
'fixes' this for you too? I've not been able to reproduce the problem with the above settings. It seems we trip up the firmware when driving with too low memory bandwidth.
Edited by Guido Gunther Collapse replies - Owner
Setting the governors to performance does fix the blank unblank. It also seems to cure the cyan screen of death.
But after a few plug unplug cycles I see this
[ 488.734890] ------------[ cut here ]------------ [ 488.734915] WARNING: CPU: 1 PID: 546 at drivers/gpu/drm/etnaviv/etnaviv_gem.c:527 etnaviv_gem_close_object+0xc8/0xd0 [ 488.734917] Modules linked in: hid_multitouch usbhid aes_ce_ccm rfcomm bnep caam_jr caamhash_desc caamalg_desc crypto _engine mousedev redpine_sdio redpine_91x bluetooth mac80211 st_lsm6dsx_spi cfg80211 rfkill vcnl4000 industrialio_trigge red_buffer st_lsm6dsx_i2c st_lsm6dsx bq25890_charger kfifo_buf edt_ft5x06 snd_soc_wm8962 leds_lm3560 ofpart tps6598x typ ec gnss_mtk gnss_serial spi_nor gnss mtd caam error snvs_pwrkey imx2_wdt imx_sdma watchdog virt_dma snd_soc_fsl_sai snd_ soc_simple_card imx_pcm_dma snd_soc_simple_card_utils snd_soc_gtm601 aes_ce_blk snd_soc_core snd_pcm_dmaengine crypto_si md snd_pcm snd_timer snd crct10dif_ce soundcore ghash_ce sha2_ce pwm_vibra sha1_ce led_bl uas usb_storage ledtrig_timer usb_f_acm u_serial usb_f_rndis g_multi usb_f_mass_storage u_ether libcomposite ledtrig_pattern ip_tables x_tables ipv6 x hci_plat_hcd xhci_hcd usbcore phy_fsl_imx8mq_usb dwc3 ulpi udc_core roles usb_common cdns_mhdp_imx cdns_mhdp_drmcore imx _dcss clk_bd718x7 [ 488.735047] CPU: 1 PID: 546 Comm: phoc Not tainted 5.9.3-librem5-00287-g058888920288 #947 [ 488.735049] Hardware name: Purism Librem 5r3 (DT) [ 488.735055] pstate: 20000005 (nzCv daif -PAN -UAO BTYPE=--) [ 488.735060] pc : etnaviv_gem_close_object+0xc8/0xd0 [ 488.735070] lr : drm_gem_object_release_handle+0x40/0xa8 [ 488.735072] sp : ffff800012e03c00 [ 488.735074] x29: ffff800012e03c00 x28: ffff800012e03d98 [ 488.735078] x27: 0000000000000000 x26: ffff0000a3bcac00 [ 488.735081] x25: 0000000000000009 x24: 000000000000000b [ 488.735084] x23: ffff0000a3bcac38 x22: ffff0000a3bcac50 [ 488.735088] x21: 0000000000000020 x20: ffff0000a3bcac00 [ 488.735092] x19: ffff00009ddc0400 x18: 0000000000000000 [ 488.735095] x17: 0000000000000000 x16: 0000000000000000 [ 488.735098] x15: 0000000000000000 x14: 0000000000000000 [ 488.735102] x13: 0000000000000000 x12: 0000000000000000 [ 488.735105] x11: 0000000000000040 x10: ffff0000a3bcac40 [ 488.735109] x9 : ffff80001071e8a8 x8 : ffff00009b502b38 [ 488.735112] x7 : e000000000000000 x6 : 0000000000000000 [ 488.735115] x5 : 0000000000000000 x4 : 000000000000003d [ 488.735119] x3 : ffff00009b502928 x2 : ffff8000107652a0 [ 488.735122] x1 : 0000000000000001 x0 : ffff00009ddc0400 [ 488.735126] Call trace: [ 488.735132] etnaviv_gem_close_object+0xc8/0xd0 [ 488.735136] drm_gem_object_release_handle+0x40/0xa8 [ 488.735140] drm_gem_handle_delete+0x70/0xc8 [ 488.735144] drm_gem_close_ioctl+0x38/0x50 [ 488.735148] drm_ioctl_kernel+0xcc/0x120 [ 488.735151] drm_ioctl+0x250/0x4a0 [ 488.735159] __arm64_sys_ioctl+0xb0/0xf8 [ 488.735167] el0_svc_common.constprop.0+0x74/0x170 [ 488.735171] do_el0_svc+0x24/0x30 [ 488.735176] el0_sync_handler+0x90/0x198 [ 488.735180] el0_sync+0x158/0x180 [ 488.735184] ---[ end trace 0ae10774b9304c93 ]---
- Author Owner
that's not related to unplug cycles but rather if there's pending BOs (so GPU not DCSS/MHDP). The GPU has a good chance of recovering, this will be fixed with the proper fix for !233 (closed).
- Author Owner
Thanks for testing !249 (merged) will then fix that.
- Author Owner
@angus.ainslie i opened https://source.puri.sm/Librem5/linux-next/-/issues/239 since we didn't have a bug to track that.
- Guido Gunther assigned to @guido.gunther
assigned to @guido.gunther
- Guido Gunther changed the description
changed the description
- Guido Gunther mentioned in merge request !249 (merged)
mentioned in merge request !249 (merged)
- Guido Gunther mentioned in merge request !246 (merged)
mentioned in merge request !246 (merged)
- Author Owner
fixed via !246 (merged)
- Guido Gunther closed
closed
- Guido Gunther mentioned in issue #262 (closed)
mentioned in issue #262 (closed)