On Tue, Dec 20, 2022 at 05:11:34PM +0100, Thomas Zimmermann wrote: > RGB888 is different than the other formats as most of its pixels are > unaligned and therefore helper functions do not use endianness conversion > helpers. Comment on this in the source code. > > Signed-off-by: Thomas Zimmermann <tzimmerm...@suse.de>
Reviewed-by: José Expósito <jose.exposit...@gmail.com> > --- > drivers/gpu/drm/drm_format_helper.c | 1 + > drivers/gpu/drm/tests/drm_format_helper_test.c | 4 ++++ > 2 files changed, 5 insertions(+) > > diff --git a/drivers/gpu/drm/drm_format_helper.c > b/drivers/gpu/drm/drm_format_helper.c > index 74ff33c2ddaa..b98bd7c5caee 100644 > --- a/drivers/gpu/drm/drm_format_helper.c > +++ b/drivers/gpu/drm/drm_format_helper.c > @@ -404,6 +404,7 @@ static void drm_fb_xrgb8888_to_rgb888_line(void *dbuf, > const void *sbuf, unsigne > > for (x = 0; x < pixels; x++) { > pix = le32_to_cpu(sbuf32[x]); > + /* write blue-green-red to output in little endianness */ > *dbuf8++ = (pix & 0x000000FF) >> 0; > *dbuf8++ = (pix & 0x0000FF00) >> 8; > *dbuf8++ = (pix & 0x00FF0000) >> 16; > diff --git a/drivers/gpu/drm/tests/drm_format_helper_test.c > b/drivers/gpu/drm/tests/drm_format_helper_test.c > index 2191e57f2297..cd1d7da3483c 100644 > --- a/drivers/gpu/drm/tests/drm_format_helper_test.c > +++ b/drivers/gpu/drm/tests/drm_format_helper_test.c > @@ -407,6 +407,10 @@ static void drm_test_fb_xrgb8888_to_rgb888(struct kunit > *test) > KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xrgb8888); > iosys_map_set_vaddr(&src, xrgb8888); > > + /* > + * RGB888 expected results are already in little-endian > + * order, so there's no need to convert the test output. > + */ > drm_fb_xrgb8888_to_rgb888(&dst, &result->dst_pitch, &src, &fb, > ¶ms->clip); > KUNIT_EXPECT_EQ(test, memcmp(buf, result->expected, dst_size), 0); > } > -- > 2.39.0 >