On 13/08/2026 16:44, [email protected] wrote:
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) 
to consider:
- [High] Calling drm_plane_create_blend_mode_property() without PREMULTI 
support triggers a kernel warning (WARN_ON) and fails to create the property.
--

--- Patch [3]: [PATCH v3 3/3] drm/amd/display: advertise PIXEL_NONE as blend 
mode for DCE generations ---
commit 44681caffc8bcfc7085bcfe1ec288a0eafc8c992
Author: Melissa Wen <[email protected]>

drm/amd/display: advertise PIXEL_NONE as blend mode for DCE generations

This commit changes the blend mode property creation for primary planes on
DCE generations. It modifies the driver to create the blend mode property
with PIXEL_NONE only, instead of the DRM default PREMULTI mode.

diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c 
b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
index 423e3cd7b9c98..e02cbafc8c5d0 100644
--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
+++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_plane.c
[ ... ]
@@ -2208,14 +2208,18 @@ int amdgpu_dm_plane_init(struct amdgpu_display_manager 
*dm,
[ ... ]
-       if ((plane->type == DRM_PLANE_TYPE_OVERLAY ||
-            plane->type == DRM_PLANE_TYPE_PRIMARY) &&
-           plane_cap && plane_cap->per_pixel_alpha &&
-           plane_cap->type == DC_PLANE_TYPE_DCN_UNIVERSAL) {
+       if (plane_cap && plane_cap->type != DC_PLANE_TYPE_DCN_UNIVERSAL) {
+               drm_plane_create_blend_mode_property(plane, 
BIT(DRM_MODE_BLEND_PIXEL_NONE));
[Severity: High]
Does this trigger a kernel warning and fail to create the property?

Looking at drm_plane_create_blend_mode_property() in drm_blend.c, the DRM
core explicitly enforces that DRM_MODE_BLEND_PREMULTI must be supported:

int drm_plane_create_blend_mode_property(struct drm_plane *plane,
                                         unsigned int supported_modes)
{
        ...
        if (WARN_ON((supported_modes & ~valid_mode_mask) ||
                    ((supported_modes & BIT(DRM_MODE_BLEND_PREMULTI)) == 0)))
                return -EINVAL;
        ...
}

Since amdgpu_dm_plane_init() now passes only BIT(DRM_MODE_BLEND_PIXEL_NONE),
this will trigger the WARN_ON and return -EINVAL during device probe,
meaning the property is not created at all.

No, you are probably looking at an outdated codebase.

Other blend modes are supported since:

9813e158d13d5 ("drm/drm_blend: allow blend mode property without PREMULTI") in drm-misc-next.

Melissa


+       } else if ((plane->type == DRM_PLANE_TYPE_OVERLAY ||
+                   plane->type == DRM_PLANE_TYPE_PRIMARY) &&
+                  plane_cap && plane_cap->per_pixel_alpha) {
                unsigned int blend_caps = BIT(DRM_MODE_BLEND_PIXEL_NONE) |
                                          BIT(DRM_MODE_BLEND_PREMULTI) |
                                          BIT(DRM_MODE_BLEND_COVERAGE);

Reply via email to