Raspberry Pi display corruption
Description
Environment
Attachments
- 25 Jan 2019, 03:56 PM
relates to
Activity
Walt Miner December 12, 2019 at 2:03 AM
Close for HH 8.0.3
Leon Anavi November 15, 2019 at 1:48 PM
Hi @Dennis Field,
Thanks for confirming that the new version works!
Best regards, Leon
Dennis Field November 15, 2019 at 1:43 PM
Can confirm; newer versions work fine on DSI display. Thanks!
Leon Anavi November 15, 2019 at 1:40 PM
Hi,
This issue has been resolved with the commits as part of https://lf-automotivelinux.atlassian.net/browse/SPEC-2465#icft=SPEC-2465. Patches to upgrade Linux kernel and Mesa as well as to switch to firmware KMS for both rpi3 and rpi4 have been merged in branches master and halibut.
Best regards,
Leon
Dennis Field January 25, 2019 at 4:15 PM
I've played around a bit and found that there is corruption on HDMI displays as well (significantly, in some cases), so it's not just the DSI display.
On the DSI display, I can get the flickering to stop by restarting weston until the display comes up fine–the colors will still be wrong though. I see some error logging going on in the serial console when this happens. Short snippet:
[60039.698537] vc4_dsi 3f700000.dsi: Timeout waiting for DSI STOP entry: STAT 0x00020803
[60039.706933] [drm:vc4_dsi_encoder_enable [vc4]] *ERROR* Failed to runtime PM enable on DSI1
[60039.768526] ------------[ cut here ]------------
[60039.773236] WARNING: CPU: 3 PID: 1761 at /kernel-source//drivers/gpu/drm/drm_atomic_helper.c:1140 drm_atomic_helper_wait_for_vblanks+0x25c/0x260
[60039.786437] [CRTC:54] vblank wait timed out
[60039.790729] Modules linked in: btrfs xor xor_neon can_bcm can cmac raid6_pq zlib_deflate rfcomm bnep nfc hci_uart btbcm bluetooth evdev brcmfmac brcmutil cfg80211 vc4 rfkill snd_soc_core i2c_gpio snd_compress snd_pcm_dmaengine bcm28$
[60039.822453] CPU: 3 PID: 1761 Comm: weston Tainted: G W O 4.9.80 #2
[60039.829691] Hardware name: BCM2835
[60039.833161] [<8011102c>] (unwind_backtrace) from [<8010c8f0>] (show_stack+0x20/0x24)
[60039.841027] [<8010c8f0>] (show_stack) from [<8046e428>] (dump_stack+0xcc/0x110)
[60039.848452] [<8046e428>] (dump_stack) from [<8011e814>] (__warn+0xf8/0x110)
[60039.855520] [<8011e814>] (__warn) from [<8011e874>] (warn_slowpath_fmt+0x48/0x50)
[60039.863121] [<8011e874>] (warn_slowpath_fmt) from [<80517f10>] (drm_atomic_helper_wait_for_vblanks+0x25c/0x260)
[60039.873436] [<80517f10>] (drm_atomic_helper_wait_for_vblanks) from [<7f14fd88>] (vc4_atomic_complete_commit+0x64/0x8c [vc4])
[60039.884941] [<7f14fd88>] (vc4_atomic_complete_commit [vc4]) from [<7f14ff7c>] (vc4_atomic_commit+0x1cc/0x25c [vc4])
[60039.895598] [<7f14ff7c>] (vc4_atomic_commit [vc4]) from [<8053b2e0>] (drm_atomic_commit+0x5c/0x68)
[60039.904699] [<8053b2e0>] (drm_atomic_commit) from [<8051b108>] (drm_atomic_helper_set_config+0x88/0xac)
[60039.914241] [<8051b108>] (drm_atomic_helper_set_config) from [<8052d4d8>] (drm_mode_set_config_internal+0x68/0xec)
[60039.924752] [<8052d4d8>] (drm_mode_set_config_internal) from [<8052ea60>] (drm_mode_setcrtc+0x54c/0x554)
[60039.934378] [<8052ea60>] (drm_mode_setcrtc) from [<805259f4>] (drm_ioctl+0x1f0/0x3f8)
[60039.942329] [<805259f4>] (drm_ioctl) from [<8028b228>] (do_vfs_ioctl+0xb0/0x814)
[60039.949838] [<8028b228>] (do_vfs_ioctl) from [<8028ba00>] (SyS_ioctl+0x74/0x84)
[60039.957262] [<8028ba00>] (SyS_ioctl) from [<801082a0>] (ret_fast_syscall+0x0/0x1c)
[60039.964988] ---[ end trace 758a3a35656d300e ]---
It changes state at the time of calling systemctl weston stop, e.g. display powers off and stays off and does not turn on when I start weston; or display powers on but is flickering; or display powers on with no flickering but the colors are wonky
Attached full screen log, I left comments between to indicate the status of the display in relation to what was being logged
Seems like this might be a problem in the vc4 driver and/or some combination of weston vs. this driver.
With the demo platform, as well as my custom image using a landscape window manager/home screen, sometimes (well, a lot of the time) the Raspberry Pi DSI display has a jittery display that looks like the colors are a little off. HDMI displays also exhibit some corruption (GeChic display shows some small lines of random colors; Chalkboard Electronics 1280x800 display, the picture is pretty much unusable). This doesn't happen at all on any other Linux I've tried (e.g. Raspbian, ChromiumOS), and the video display is fine up until AGL boots, so I don't have any reason to think the display is going bad.
video (DSI display): https://youtu.be/HjAJo2bo1a0