Re: [PATCH 1/4] drm/ast: create blend mode property on cursor plane

From: 钦云谭

Date: Tue Sep 01 2026 - 04:11:36 EST


Hi Thomas,

在 2026/9/1 15:03, Thomas Zimmermann 写道:
> 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 <qinyuntan@xxxxxxxxxxxxxxxxx>
>> ---
>>   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.
>

Thanks for the correction.

I'll send a v2 that declares DRM_MODE_BLEND_COVERAGE for the ast
cursor plane instead.

> Best regards
> Thomas
>
>>         return 0;
>>   }
>