Skip to content

fix: Add fix for DRM plane switching CRTC on Qualcomm#1

Merged
RadxaYuntian merged 4 commits into
radxa-pkg:mainfrom
chenchongbiao:20260525-fix-drm
May 26, 2026
Merged

fix: Add fix for DRM plane switching CRTC on Qualcomm#1
RadxaYuntian merged 4 commits into
radxa-pkg:mainfrom
chenchongbiao:20260525-fix-drm

Conversation

@chenchongbiao
Copy link
Copy Markdown
Collaborator

@chenchongbiao chenchongbiao commented May 25, 2026

On Qualcomm platforms (SC8280XP), the DRM atomic API does not allow
switching a plane from one CRTC to another in a single commit. When
toggling mirror/extend mode with multiple displays, mutter's
find_unassigned_plane() could assign a plane that is still active on
another CRTC, causing drmModeAtomicCommit to return EINVAL.

Add a patch that:

  • Tracks current_crtc_id per plane at init time
  • Skips planes currently active on a different CRTC in find_unassigned_plane()
  • Checks mutter's internal assignment state for additional safety

Based on upstream MR !4850 and !5055.
Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/4399

On Qualcomm platforms (SC8280XP), the DRM atomic API does not allow
switching a plane from one CRTC to another in a single commit. When
toggling mirror/extend mode with multiple displays, mutter's
find_unassigned_plane() could assign a plane that is still active on
another CRTC, causing drmModeAtomicCommit to return EINVAL.

Add a patch that:
- Tracks current_crtc_id per plane at init time
- Skips planes currently active on a different CRTC in
  find_unassigned_plane()
- Checks mutter's internal assignment state for additional safety

Based on upstream MR !4850 and !5055.
Bug: https://gitlab.gnome.org/GNOME/mutter/-/issues/4399

Signed-off-by: Chongbiao Chen <chenchongbiao@radxa.com>
@chenchongbiao
Copy link
Copy Markdown
Collaborator Author

@chenchongbiao
Copy link
Copy Markdown
Collaborator Author

release 后手动添加 pkg.conf 添加 noble/noble-test 源

@chenchongbiao
Copy link
Copy Markdown
Collaborator Author

chenchongbiao commented May 25, 2026

解决镜像模式和扩展模式切换卡顿,镜像模式无法切换分辨率的问题。镜像模式下切换成 1600x900 的情况下,type-c 的扩展屏存在黑屏的情况,切换成其他分辨率正常。

Comment thread debian/changelog Outdated
Comment thread .github/workflows/new_version.yaml
Add changelog entry for the DRM plane switching CRTC fix on
Qualcomm platforms.

Signed-off-by: Chongbiao Chen <chenchongbiao@radxa.com>
Add Makefile with deb build targets and meson buildsystem detection.

Signed-off-by: Chongbiao Chen <chenchongbiao@radxa.com>
Add GitHub Actions workflows for CI/CD with direct build on
ubuntu-24.04-arm runner (no container overhead).

Signed-off-by: Chongbiao Chen <chenchongbiao@radxa.com>
Copy link
Copy Markdown
Member

@RadxaYuntian RadxaYuntian left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

之后这个包你维护吧,应该可以直接提交到仓库里面

@RadxaYuntian RadxaYuntian enabled auto-merge May 26, 2026 07:00
@RadxaYuntian RadxaYuntian added this pull request to the merge queue May 26, 2026
Merged via the queue into radxa-pkg:main with commit 7805421 May 26, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants