summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIcenowy Zheng <zhengxingda@iscas.ac.cn>2026-05-07 01:56:09 +0800
committerIcenowy Zheng <zhengxingda@iscas.ac.cn>2026-05-22 19:19:21 +0800
commit9637867d78a7bc5e76b17fe6cb0be5e054fce973 (patch)
tree961907d077c67b3d47f0651efbde7173badcfe2b
parent4f2e625f3d5d27242f0f18ba106b9442d29a51ad (diff)
downloadlinux-9637867d78a7bc5e76b17fe6cb0be5e054fce973.tar.gz
linux-9637867d78a7bc5e76b17fe6cb0be5e054fce973.zip
drm: verisilicon: add max cursor size to HWDB
Different display controller variants support different maximum cursor size. All known DC8200 variants support both 32x32 and 64x64, but some DC8000 variants support either only 32x32 or up to 256x256. The minimum size is fixed at 32 and only PoT square sizes are supported. Add the max cursor size field to HWDB and fill all entries with 64. Signed-off-by: Icenowy Zheng <zhengxingda@iscas.ac.cn> Reviewed-by: Thomas Zimmermann <tzimmermann@suse.de> Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com> Link: https://patch.msgid.link/20260506175610.2542888-2-zhengxingda@iscas.ac.cn
-rw-r--r--drivers/gpu/drm/verisilicon/vs_hwdb.c4
-rw-r--r--drivers/gpu/drm/verisilicon/vs_hwdb.h5
2 files changed, 9 insertions, 0 deletions
diff --git a/drivers/gpu/drm/verisilicon/vs_hwdb.c b/drivers/gpu/drm/verisilicon/vs_hwdb.c
index 09336af0900a..2a0f7c59afa3 100644
--- a/drivers/gpu/drm/verisilicon/vs_hwdb.c
+++ b/drivers/gpu/drm/verisilicon/vs_hwdb.c
@@ -95,6 +95,7 @@ static struct vs_chip_identity vs_chip_identities[] = {
.customer_id = ~0U,
.display_count = 2,
+ .max_cursor_size = 64,
.formats = &vs_formats_no_yuv444,
},
{
@@ -103,6 +104,7 @@ static struct vs_chip_identity vs_chip_identities[] = {
.customer_id = 0x30B,
.display_count = 2,
+ .max_cursor_size = 64,
.formats = &vs_formats_no_yuv444,
},
{
@@ -111,6 +113,7 @@ static struct vs_chip_identity vs_chip_identities[] = {
.customer_id = 0x310,
.display_count = 2,
+ .max_cursor_size = 64,
.formats = &vs_formats_with_yuv444,
},
{
@@ -119,6 +122,7 @@ static struct vs_chip_identity vs_chip_identities[] = {
.customer_id = 0x311,
.display_count = 2,
+ .max_cursor_size = 64,
.formats = &vs_formats_no_yuv444,
},
};
diff --git a/drivers/gpu/drm/verisilicon/vs_hwdb.h b/drivers/gpu/drm/verisilicon/vs_hwdb.h
index 92192e4fa086..2065ecb73043 100644
--- a/drivers/gpu/drm/verisilicon/vs_hwdb.h
+++ b/drivers/gpu/drm/verisilicon/vs_hwdb.h
@@ -20,6 +20,11 @@ struct vs_chip_identity {
u32 customer_id;
u32 display_count;
+ /*
+ * The hardware only supports square cursor planes, so this field
+ * is both the maximum width and height in pixels.
+ */
+ int32_t max_cursor_size;
const struct vs_formats *formats;
};