linux/drivers/gpu/drm/qxl
Qinyun Tan b67f408a0c drm/qxl: create blend mode property on primary and cursor planes
Since commit 860e748bdd ("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. Both the qxl primary and cursor planes expose ARGB8888 and
trip this on driver load.

qxl submits cursors as SPICE_CURSOR_TYPE_ALPHA, which the SPICE
protocol explicitly defines as a "pre-multiplied ARGB8888 pixmap"
(Spice Protocol, "Cursor channel definition" section [1]). This
matches the blend mode userspace has always assumed when the property
is not attached. Expose a "pixel blend mode" property advertising only
DRM_MODE_BLEND_PREMULTI to make these semantics explicit and silence
the warning. The primary plane is the bottom-most plane so its blend
mode has no visible effect; advertise the same value there for
consistency. No functional change.

[1] https://www.spice-space.org/spice-protocol.html

Fixes: 860e748bdd ("drm: ensure blend mode supported if pixel format with alpha exposed")
Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de>
Signed-off-by: Qinyun Tan <qinyuntan@linux.alibaba.com>
Signed-off-by: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patch.msgid.link/20260901083234.1828755-3-qinyuntan@linux.alibaba.com
2026-09-08 15:12:26 +02:00
..
Kconfig PCI: Add CONFIG_MMU dependency 2025-04-23 15:40:30 -05:00
Makefile
qxl_cmd.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
qxl_debugfs.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
qxl_dev.h drm/qxl: use flexible-array member instead of zero-length array 2020-12-22 13:43:29 +01:00
qxl_display.c drm/qxl: create blend mode property on primary and cursor planes 2026-09-08 15:12:26 +02:00
qxl_draw.c drm: Drop drm_framebuffer.h from drm_crtc.h 2022-06-20 23:53:55 +03:00
qxl_drv.c drm: Consistently define pci_device_ids using named initializers 2026-06-17 11:07:01 +02:00
qxl_drv.h drm: remove driver date from struct drm_driver and all drivers 2024-12-05 12:35:42 +02:00
qxl_dumb.c drm/qxl: fix UAF on handle creation 2023-08-18 06:57:38 +10:00
qxl_gem.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
qxl_image.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
qxl_ioctl.c Merge branch 'nocache-cleanup' 2026-04-13 08:39:51 -07:00
qxl_irq.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
qxl_kms.c drm: include drm_print.h where needed 2025-10-31 10:34:52 +02:00
qxl_object.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
qxl_object.h drm/qxl: Pin buffer objects for internal mappings 2024-07-10 09:12:42 +02:00
qxl_prime.c drm/gem: Acquire reservation lock in drm_gem_{pin/unpin}() 2024-03-11 13:33:50 +01:00
qxl_release.c dma-buf: inline spinlock for fence protection v5 2026-02-23 16:14:19 +01:00
qxl_ttm.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00