Re: [PATCH v3 3/3] drm/amd/display: advertise PIXEL_NONE as blend mode for DCE generations
Melissa Wen <[email protected]>
| Newsgroups | dev.linux.lists.sashiko-reviews,org.freedesktop.lists.dri-devel |
|---|---|
| Message-ID | <[email protected]> |
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);