From: Louis Chauvet <louis.chauvet@bootlin.com>
To: "Maíra Canal" <mairacanal@riseup.net>
Cc: Rodrigo Siqueira <rodrigosiqueiramelo@gmail.com>,
Melissa Wen <melissa.srw@gmail.com>,
Haneen Mohammed <hamohammed.sa@gmail.com>,
Maarten Lankhorst <maarten.lankhorst@linux.intel.com>,
Maxime Ripard <mripard@kernel.org>,
Thomas Zimmermann <tzimmermann@suse.de>,
David Airlie <airlied@gmail.com>, Simona Vetter <simona@ffwll.ch>,
Simona Vetter <simona.vetter@ffwll.ch>,
dri-devel@lists.freedesktop.org, arthurgrillo@riseup.net,
linux-kernel@vger.kernel.org, jeremie.dautheribes@bootlin.com,
miquel.raynal@bootlin.com, thomas.petazzoni@bootlin.com,
seanpaul@google.com, marcheu@google.com,
nicolejadeyee@google.com,
20241007-yuv-v12-0-01c1ada6fec8@bootlin.com
Subject: Re: [PATCH RESEND v2 4/8] drm/vkms: Add support for RGB565 formats
Date: Mon, 28 Oct 2024 10:50:39 +0100 [thread overview]
Message-ID: <Zx9eby4wpmnYPc7Y@fedora> (raw)
In-Reply-To: <63f0bf12-4df8-48d1-b8c8-2ed27a860937@riseup.net>
On 26/10/24 - 11:17, Maíra Canal wrote:
> Hi Louis,
>
> On 07/10/24 13:46, Louis Chauvet wrote:
> > The format RGB565 was already supported. Add the support for:
> > - BGR565
> >
> > Signed-off-by: Louis Chauvet <louis.chauvet@bootlin.com>
> > ---
> > drivers/gpu/drm/vkms/vkms_formats.c | 25 ++++++++++++++++++++++++-
> > drivers/gpu/drm/vkms/vkms_plane.c | 1 +
> > 2 files changed, 25 insertions(+), 1 deletion(-)
> >
> > diff --git a/drivers/gpu/drm/vkms/vkms_formats.c b/drivers/gpu/drm/vkms/vkms_formats.c
> > index c03a481f5005..e34bea5da752 100644
> > --- a/drivers/gpu/drm/vkms/vkms_formats.c
> > +++ b/drivers/gpu/drm/vkms/vkms_formats.c
> > @@ -249,7 +249,7 @@ static struct pixel_argb_u16 argb_u16_from_RGB565(const __le16 *pixel)
> > return out_pixel;
> > }
> > -static struct pixel_argb_u16 argb_u16_from_gray8(u16 gray)
> > +static struct pixel_argb_u16 argb_u16_from_gray8(u8 gray)
>
> Again, fix the issue in the patch that introduce it.
Will do for the v2!
Thanks,
Louis Chauvet
> Best Regards,
> - Maíra
>
> > {
> > return argb_u16_from_u8888(255, gray, gray, gray);
> > }
> > @@ -259,6 +259,26 @@ static struct pixel_argb_u16 argb_u16_from_grayu16(u16 gray)
> > return argb_u16_from_u16161616(0xFFFF, gray, gray, gray);
> > }
> > +static struct pixel_argb_u16 argb_u16_from_BGR565(const __le16 *pixel)
> > +{
> > + struct pixel_argb_u16 out_pixel;
> > +
> > + s64 fp_rb_ratio = drm_fixp_div(drm_int2fixp(65535), drm_int2fixp(31));
> > + s64 fp_g_ratio = drm_fixp_div(drm_int2fixp(65535), drm_int2fixp(63));
> > +
> > + u16 rgb_565 = le16_to_cpu(*pixel);
> > + s64 fp_b = drm_int2fixp((rgb_565 >> 11) & 0x1f);
> > + s64 fp_g = drm_int2fixp((rgb_565 >> 5) & 0x3f);
> > + s64 fp_r = drm_int2fixp(rgb_565 & 0x1f);
> > +
> > + out_pixel.a = (u16)0xffff;
> > + out_pixel.b = drm_fixp2int_round(drm_fixp_mul(fp_b, fp_rb_ratio));
> > + out_pixel.g = drm_fixp2int_round(drm_fixp_mul(fp_g, fp_g_ratio));
> > + out_pixel.r = drm_fixp2int_round(drm_fixp_mul(fp_r, fp_rb_ratio));
> > +
> > + return out_pixel;
> > +}
> > +
> > VISIBLE_IF_KUNIT struct pixel_argb_u16 argb_u16_from_yuv888(u8 y, u8 channel_1, u8 channel_2,
> > const struct conversion_matrix *matrix)
> > {
> > @@ -447,6 +467,7 @@ READ_LINE_16161616(XRGB16161616_read_line, px, 0xFFFF, px[2], px[1], px[0])
> > READ_LINE_16161616(XBGR16161616_read_line, px, 0xFFFF, px[0], px[1], px[2])
> > READ_LINE(RGB565_read_line, px, __le16, argb_u16_from_RGB565, px)
> > +READ_LINE(BGR565_read_line, px, __le16, argb_u16_from_BGR565, px)
> > READ_LINE(R8_read_line, px, u8, argb_u16_from_gray8, *px)
> > @@ -668,6 +689,8 @@ pixel_read_line_t get_pixel_read_line_function(u32 format)
> > return &XBGR16161616_read_line;
> > case DRM_FORMAT_RGB565:
> > return &RGB565_read_line;
> > + case DRM_FORMAT_BGR565:
> > + return &BGR565_read_line;
> > case DRM_FORMAT_NV12:
> > case DRM_FORMAT_NV16:
> > case DRM_FORMAT_NV24:
> > diff --git a/drivers/gpu/drm/vkms/vkms_plane.c b/drivers/gpu/drm/vkms/vkms_plane.c
> > index 1e971c7760d9..a243a706459f 100644
> > --- a/drivers/gpu/drm/vkms/vkms_plane.c
> > +++ b/drivers/gpu/drm/vkms/vkms_plane.c
> > @@ -26,6 +26,7 @@ static const u32 vkms_formats[] = {
> > DRM_FORMAT_ARGB16161616,
> > DRM_FORMAT_ABGR16161616,
> > DRM_FORMAT_RGB565,
> > + DRM_FORMAT_BGR565,
> > DRM_FORMAT_NV12,
> > DRM_FORMAT_NV16,
> > DRM_FORMAT_NV24,
> >
next prev parent reply other threads:[~2024-10-28 9:51 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-07 16:46 [PATCH RESEND v2 0/8] drm/vkms: Add support for multiple plane formats Louis Chauvet
2024-10-07 16:46 ` [PATCH RESEND v2 1/8] drm/vkms: Create helpers macro to avoid code duplication in format callbacks Louis Chauvet
2024-10-26 14:29 ` Maíra Canal
2024-10-28 9:50 ` Louis Chauvet
2024-10-26 14:58 ` Maíra Canal
2024-10-28 9:50 ` Louis Chauvet
2024-10-07 16:46 ` [PATCH RESEND v2 2/8] drm/vkms: Add support for ARGB8888 formats Louis Chauvet
2024-10-26 14:11 ` Maíra Canal
2024-10-28 9:50 ` Louis Chauvet
2024-10-28 10:20 ` Maíra Canal
2024-10-28 10:39 ` Louis Chauvet
2024-10-07 16:46 ` [PATCH RESEND v2 3/8] drm/vkms: Add support for ARGB16161616 formats Louis Chauvet
2024-10-26 14:15 ` Maíra Canal
2024-10-28 9:50 ` Louis Chauvet
2024-10-07 16:46 ` [PATCH RESEND v2 4/8] drm/vkms: Add support for RGB565 formats Louis Chauvet
2024-10-26 14:17 ` Maíra Canal
2024-10-28 9:50 ` Louis Chauvet [this message]
2024-10-07 16:46 ` [PATCH RESEND v2 5/8] drm/vkms: Add support for RGB888 formats Louis Chauvet
2024-10-26 14:51 ` Maíra Canal
2024-10-28 9:50 ` Louis Chauvet
2024-10-28 10:39 ` Maíra Canal
2024-10-07 16:46 ` [PATCH RESEND v2 6/8] drm/vkms: Change YUV helpers to support u16 inputs for conversion Louis Chauvet
2024-10-07 16:46 ` [PATCH RESEND v2 7/8] drm/vkms: Create helper macro for YUV formats Louis Chauvet
2024-10-07 16:46 ` [PATCH RESEND v2 8/8] drm/vkms: Add P01* formats Louis Chauvet
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Zx9eby4wpmnYPc7Y@fedora \
--to=louis.chauvet@bootlin.com \
--cc=20241007-yuv-v12-0-01c1ada6fec8@bootlin.com \
--cc=airlied@gmail.com \
--cc=arthurgrillo@riseup.net \
--cc=dri-devel@lists.freedesktop.org \
--cc=hamohammed.sa@gmail.com \
--cc=jeremie.dautheribes@bootlin.com \
--cc=linux-kernel@vger.kernel.org \
--cc=maarten.lankhorst@linux.intel.com \
--cc=mairacanal@riseup.net \
--cc=marcheu@google.com \
--cc=melissa.srw@gmail.com \
--cc=miquel.raynal@bootlin.com \
--cc=mripard@kernel.org \
--cc=nicolejadeyee@google.com \
--cc=rodrigosiqueiramelo@gmail.com \
--cc=seanpaul@google.com \
--cc=simona.vetter@ffwll.ch \
--cc=simona@ffwll.ch \
--cc=thomas.petazzoni@bootlin.com \
--cc=tzimmermann@suse.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.