[SRU][I/raspi][PATCH 00/10] HDMI output freezes under current/proposed impish kernels (LP: #1946368)

Juerg Haefliger juerg.haefliger at canonical.com
Mon Oct 18 15:58:38 UTC 2021


The UI of Impish desktop for raspi occasionally freezes which can be triggered by playing videos and moving windows around. Seems to happen more frequently when using higher resolutions and/or higher refresh rates (higher than 1920x1080 at 60Hz).

Kernel errors are along the lines of:
[  513.762138] [drm:drm_crtc_commit_wait [drm]] *ERROR* flip_done timed out
[  513.762288] [drm:drm_atomic_helper_wait_for_dependencies [drm_kms_helper]] *ERROR* [CRTC:76:crtc-3] co
mmit wait timed out
[  513.762381] [drm:drm_atomic_helper_wait_for_flip_done [drm_kms_helper]] *ERROR* [CRTC:76:crtc-3] flip_
done timed out

[Test Case]

Install current Impish desktop for raspi on a Pi 4. Use a high-refresh/resolution monitor. Play videos, move windows around.


The Pi foundation identified a couple of upstream vc4 commits that seem to interfere with their downstream patches. Revert those to match the Pi foundations currently released 5.10 kernel.

[Where Problems Could Occur]

The changes are confined to the vc4 driver, so problems would only show up if that driver is in use. Which is only the case for the Ubuntu raspi desktop image, so server images should not be impacted at all.

Test results:

Confirmed the problem using a high-resolution high-refresh-rate monitor: The UI instantly freezes when Wayland starts up. With a patched kernel, I wasn't able to freeze my system. Per comments in LP: #194636, other users who were affected by the problem reported that the patched kernel fixes the issue for them as well.


Juerg Haefliger (8):
  Revert "drm/vc4: Increase the core clock to a minimum of 500MHz"
  Revert "drm/vc4: Increase the core clock based on HVS load"
  Revert "drm/vc4: fix vc4_atomic_commit_tail() logic"
  Revert "drm: Introduce a drm_crtc_commit_wait helper"
  Revert "drm/vc4: kms: Convert to atomic helpers"
  Revert "drm/vc4: kms: Remove async modeset semaphore"
  Revert "drm/vc4: kms: Remove unassigned_channels from the HVS state"
  Revert "drm/vc4: kms: Wait on previous FIFO users before a commit"

Maxime Ripard (2):
  drm/vc4: Increase the core clock based on HVS load
  drm/vc4: Increase the core clock to a minimum of 500MHz

 drivers/gpu/drm/drm_atomic.c        |  39 -----
 drivers/gpu/drm/drm_atomic_helper.c |  61 ++++++-
 drivers/gpu/drm/vc4/vc4_crtc.c      |  13 ++
 drivers/gpu/drm/vc4/vc4_drv.h       |   2 +
 drivers/gpu/drm/vc4/vc4_kms.c       | 252 ++++++++++++++--------------
 include/drm/drm_atomic.h            |   4 -
 6 files changed, 196 insertions(+), 175 deletions(-)


More information about the kernel-team mailing list