在 2026-09-03四的 16:42 +0800,Huacai Chen写道:
> After commit 860e748bddcc929 ("drm: ensure blend mode supported if
> pixel
> format with alpha exposed") we get warnings at boot:
>
> loongson 0000:00:06.1: [drm] [PLANE:41:ls-cursor-plane-0] pixel
> format with alpha exposed but blend mode not setup. Please fix.
> loongson 0000:00:06.1: [drm] [PLANE:46:ls-cursor-plane-1] pixel
> format with alpha exposed but blend mode not setup. Please fix.
>
> The reason is the cursor plane supports color formats with alpha but
> the
> driver doesn't create blend mode property, which triggers the warning
> in
> validate_blend_mode_for_alpha_formats().
>
> The loongson DC HW doesn't support DRM_MODE_BLEND_PREMULTI, so create
> blend mode property with DRM_MODE_BLEND_COVERAGE for cursor planes
> since
> it is the only one implemented in the driver.
>
> Signed-off-by: Huacai Chen <[email protected]>
Reviewed-by: Icenowy Zheng <[email protected]>
Thanks,
Icenowy
> ---
> drivers/gpu/drm/loongson/lsdc_plane.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/gpu/drm/loongson/lsdc_plane.c
> b/drivers/gpu/drm/loongson/lsdc_plane.c
> index bea42215796d..bcc0ffa17bdf 100644
> --- a/drivers/gpu/drm/loongson/lsdc_plane.c
> +++ b/drivers/gpu/drm/loongson/lsdc_plane.c
> @@ -7,6 +7,7 @@
>
> #include <drm/drm_atomic.h>
> #include <drm/drm_atomic_helper.h>
> +#include <drm/drm_blend.h>
> #include <drm/drm_framebuffer.h>
> #include <drm/drm_gem_atomic_helper.h>
> #include <drm/drm_print.h>
> @@ -765,7 +766,7 @@ int ls7a1000_cursor_plane_init(struct drm_device
> *ddev,
>
> drm_plane_helper_add(plane,
> &ls7a1000_cursor_plane_helper_funcs);
>
> - return 0;
> + return drm_plane_create_blend_mode_property(plane,
> BIT(DRM_MODE_BLEND_COVERAGE));
> }
>
> int ls7a2000_cursor_plane_init(struct drm_device *ddev,
> @@ -790,5 +791,5 @@ int ls7a2000_cursor_plane_init(struct drm_device
> *ddev,
>
> drm_plane_helper_add(plane,
> &ls7a2000_cursor_plane_helper_funcs);
>
> - return 0;
> + return drm_plane_create_blend_mode_property(plane,
> BIT(DRM_MODE_BLEND_COVERAGE));
> }