Hi

Am 01.09.26 um 08:50 schrieb Qinyun Tan:
Since commit 860e748bddcc ("drm: ensure blend mode supported if pixel
format with alpha exposed"), drm_mode_config_validate() warns when a
plane exposes an alpha pixel format but not the "pixel blend mode"
property. The ast cursor plane (ARGB4444, ARGB8888) trips this on
driver load:

   [PLANE:37:plane-1] pixel format with alpha exposed but blend mode not setup
   WARNING: drivers/gpu/drm/drm_mode_config.c:872 at 
drm_mode_config_validate+0x48f/0x510 [drm]
   ...
   Call Trace:
    drm_dev_register+0x1ce/0x290 [drm]
    ast_pci_probe+0x19d/0x3f0 [ast]
    local_pci_probe+0x41/0x90

The hardware cursor has always blended with pre-multiplied alpha and
userspace assumes that blend mode when the property is not attached.
Expose a "pixel blend mode" property advertising only
DRM_MODE_BLEND_PREMULTI to make the existing semantics explicit and
silence the warning. No functional change.

Fixes: 860e748bddcc ("drm: ensure blend mode supported if pixel format with alpha 
exposed")
Signed-off-by: Qinyun Tan <[email protected]>
---
  drivers/gpu/drm/ast/ast_cursor.c | 3 +++
  1 file changed, 3 insertions(+)

diff --git a/drivers/gpu/drm/ast/ast_cursor.c b/drivers/gpu/drm/ast/ast_cursor.c
index fd19c45f2abe2..08d93ac7f7cb8 100644
--- a/drivers/gpu/drm/ast/ast_cursor.c
+++ b/drivers/gpu/drm/ast/ast_cursor.c
@@ -25,6 +25,7 @@
  #include <linux/sizes.h>
#include <drm/drm_atomic.h>
+#include <drm/drm_blend.h>
  #include <drm/drm_damage_helper.h>
  #include <drm/drm_format_helper.h>
  #include <drm/drm_gem_atomic_helper.h>
@@ -355,6 +356,8 @@ int ast_cursor_plane_init(struct ast_device *ast)
        }
        drm_plane_helper_add(cursor_plane, &ast_cursor_plane_helper_funcs);
        drm_plane_enable_fb_damage_clips(cursor_plane);
+       drm_plane_create_blend_mode_property(cursor_plane,
+                                            BIT(DRM_MODE_BLEND_PREMULTI));

AFAIU the available documentation, AST hardware corresponds to DRM_MODE_BLEND_COVERAGE.

Best regards
Thomas

return 0;
  }

--
--
Thomas Zimmermann
Graphics Driver Developer
SUSE Software Solutions Germany GmbH
Frankenstr. 146, 90461 Nürnberg, Germany, www.suse.com
GF: Jochen Jaser, Andrew McDonald, (HRB 36809, AG Nürnberg)


Reply via email to