[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <7dcf09b4c09f3bfb3650219d9d174f65dce17970.camel@icenowy.me>
Date: Thu, 22 Jan 2026 17:52:04 +0800
From: Icenowy Zheng <uwu@...nowy.me>
To: Thomas Zimmermann <tzimmermann@...e.de>, Andrzej Hajda
<andrzej.hajda@...el.com>, Neil Armstrong <neil.armstrong@...aro.org>,
Robert Foss <rfoss@...nel.org>, Laurent Pinchart
<Laurent.pinchart@...asonboard.com>, Jonas Karlman <jonas@...boo.se>,
Jernej Skrabec <jernej.skrabec@...il.com>, Maarten Lankhorst
<maarten.lankhorst@...ux.intel.com>, Maxime Ripard <mripard@...nel.org>,
David Airlie <airlied@...il.com>, Simona Vetter <simona@...ll.ch>, Rob
Herring <robh@...nel.org>, Krzysztof Kozlowski <krzk+dt@...nel.org>, Conor
Dooley <conor+dt@...nel.org>, Drew Fustini <fustini@...nel.org>, Guo Ren
<guoren@...nel.org>, Fu Wei <wefu@...hat.com>
Cc: Philipp Zabel <p.zabel@...gutronix.de>, Dmitry Baryshkov
<lumag@...nel.org>, Michal Wilczynski <m.wilczynski@...sung.com>, Luca
Ceresoli <luca.ceresoli@...tlin.com>, Han Gao <rabenda.cn@...il.com>, Yao
Zi <ziyao@...root.org>, linux-kernel@...r.kernel.org,
dri-devel@...ts.freedesktop.org, devicetree@...r.kernel.org,
linux-riscv@...ts.infradead.org, Han Gao <gaohan@...as.ac.cn>
Subject: Re: [PATCH v5 3/9] drm: verisilicon: add a driver for Verisilicon
display controllers
在 2026-01-22星期四的 17:47 +0800,Icenowy Zheng写道:
> 在 2026-01-21星期三的 13:56 +0100,Thomas Zimmermann写道:
>
> =================== 8< ====================
> > > +void drm_format_to_vs_format(u32 drm_format, struct vs_format
> > > *vs_format)
> > > +{
> > > + switch (drm_format) {
> > > + case DRM_FORMAT_XRGB4444:
> > > + case DRM_FORMAT_RGBX4444:
> > > + case DRM_FORMAT_XBGR4444:
> > > + case DRM_FORMAT_BGRX4444:
> > > + vs_format->color = VSDC_COLOR_FORMAT_X4R4G4B4;
> > > + break;
> > > + case DRM_FORMAT_ARGB4444:
> > > + case DRM_FORMAT_RGBA4444:
> > > + case DRM_FORMAT_ABGR4444:
> > > + case DRM_FORMAT_BGRA4444:
> > > + vs_format->color = VSDC_COLOR_FORMAT_A4R4G4B4;
> > > + break;
> > > + case DRM_FORMAT_XRGB1555:
> > > + case DRM_FORMAT_RGBX5551:
> > > + case DRM_FORMAT_XBGR1555:
> > > + case DRM_FORMAT_BGRX5551:
> > > + vs_format->color = VSDC_COLOR_FORMAT_X1R5G5B5;
> > > + break;
> > > + case DRM_FORMAT_ARGB1555:
> > > + case DRM_FORMAT_RGBA5551:
> > > + case DRM_FORMAT_ABGR1555:
> > > + case DRM_FORMAT_BGRA5551:
> > > + vs_format->color = VSDC_COLOR_FORMAT_A1R5G5B5;
> > > + break;
> > > + case DRM_FORMAT_RGB565:
> > > + case DRM_FORMAT_BGR565:
> > > + vs_format->color = VSDC_COLOR_FORMAT_R5G6B5;
> > > + break;
> > > + case DRM_FORMAT_XRGB8888:
> > > + case DRM_FORMAT_RGBX8888:
> > > + case DRM_FORMAT_XBGR8888:
> > > + case DRM_FORMAT_BGRX8888:
> > > + vs_format->color = VSDC_COLOR_FORMAT_X8R8G8B8;
> > > + break;
> > > + case DRM_FORMAT_ARGB8888:
> > > + case DRM_FORMAT_RGBA8888:
> > > + case DRM_FORMAT_ABGR8888:
> > > + case DRM_FORMAT_BGRA8888:
> > > + vs_format->color = VSDC_COLOR_FORMAT_A8R8G8B8;
> > > + break;
> > > + case DRM_FORMAT_ARGB2101010:
> > > + case DRM_FORMAT_RGBA1010102:
> > > + case DRM_FORMAT_ABGR2101010:
> > > + case DRM_FORMAT_BGRA1010102:
> > > + vs_format->color = VSDC_COLOR_FORMAT_A2R10G10B10;
> > > + break;
> > > + default:
> > > + DRM_WARN("Unexpected drm format!\n");
> >
> > drm_warn(). If this can be invoked from user space,easily, better
> > use
> > drm_dbg()
Ah, by the way, this function currently takes no parameter that
contains the struct drm_device pointer. Should I rework the function
prototype to use drm_warn() in this case (I didn't see use of
drm_warn(NULL, xxx) in the kernel currently), or should I switch back
to pr_warn() or keep DRM_WARN() ?
>
> This function is called during atomic_update of planes, and I think
> in
> this case the unknown formats should already be rejected because
> they're not advertised for any planes.
>
> Did I get it right on this?
>
> >
> > > + }
> > > +
> > > + switch (drm_format) {
> > > + case DRM_FORMAT_RGBX4444:
> > > + case DRM_FORMAT_RGBA4444:
> > > + case DRM_FORMAT_RGBX5551:
> > > + case DRM_FORMAT_RGBA5551:
> > > + case DRM_FORMAT_RGBX8888:
> > > + case DRM_FORMAT_RGBA8888:
> > > + case DRM_FORMAT_RGBA1010102:
> > > + vs_format->swizzle = VSDC_SWIZZLE_RGBA;
> > > + break;
> > > + case DRM_FORMAT_XBGR4444:
> > > + case DRM_FORMAT_ABGR4444:
> > > + case DRM_FORMAT_XBGR1555:
> > > + case DRM_FORMAT_ABGR1555:
> > > + case DRM_FORMAT_BGR565:
> > > + case DRM_FORMAT_XBGR8888:
> > > + case DRM_FORMAT_ABGR8888:
> > > + case DRM_FORMAT_ABGR2101010:
> > > + vs_format->swizzle = VSDC_SWIZZLE_ABGR;
> > > + break;
> > > + case DRM_FORMAT_BGRX4444:
> > > + case DRM_FORMAT_BGRA4444:
> > > + case DRM_FORMAT_BGRX5551:
> > > + case DRM_FORMAT_BGRA5551:
> > > + case DRM_FORMAT_BGRX8888:
> > > + case DRM_FORMAT_BGRA8888:
> > > + case DRM_FORMAT_BGRA1010102:
> > > + vs_format->swizzle = VSDC_SWIZZLE_BGRA;
> > > + break;
> > > + default:
> > > + /* N/A for YUV formats */
> > > + vs_format->swizzle = VSDC_SWIZZLE_ARGB;
> > > + }
> > > +
> > > + /* N/A for non-YUV formats */
> > > + vs_format->uv_swizzle = false;
> > > +}
Powered by blists - more mailing lists