iosys_map_set_vaddr(&src, xrgb8888);
  
        drm_fb_xrgb8888_to_rgb565(&dst, &result->dst_pitch, &src, &fb, ¶ms->clip, false);
 -      KUNIT_EXPECT_EQ(test, memcmp(buf, result->expected, dst_size), 0);
+       buf = le16buf_to_cpu(test, (__force const __le16 *)buf, dst_size / sizeof(__le16));
 +      KUNIT_EXPECT_MEMEQ(test, buf, result->expected, dst_size);
  
+       buf = dst.vaddr; /* restore original value of buf */
        drm_fb_xrgb8888_to_rgb565(&dst, &result->dst_pitch, &src, &fb, ¶ms->clip, true);
 -      KUNIT_EXPECT_EQ(test, memcmp(buf, result->expected_swab, dst_size), 0);
+       buf = le16buf_to_cpu(test, (__force const __le16 *)buf, dst_size / sizeof(__le16));
 +      KUNIT_EXPECT_MEMEQ(test, buf, result->expected_swab, dst_size);
  }
  
+ static void drm_test_fb_xrgb8888_to_xrgb1555(struct kunit *test)
+ {
+       const struct convert_xrgb8888_case *params = test->param_value;
+       const struct convert_to_xrgb1555_result *result = ¶ms->xrgb1555_result;
+       size_t dst_size;
+       u16 *buf = NULL;
+       __le32 *xrgb8888 = NULL;
+       struct iosys_map dst, src;
+ 
+       struct drm_framebuffer fb = {
+               .format = drm_format_info(DRM_FORMAT_XRGB8888),
+               .pitches = { params->pitch, 0, 0 },
+       };
+ 
+       dst_size = conversion_buf_size(DRM_FORMAT_XRGB1555, result->dst_pitch,
+                                      ¶ms->clip);
+       KUNIT_ASSERT_GT(test, dst_size, 0);
+ 
+       buf = kunit_kzalloc(test, dst_size, GFP_KERNEL);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf);
+       iosys_map_set_vaddr(&dst, buf);
+ 
+       xrgb8888 = cpubuf_to_le32(test, params->xrgb8888, TEST_BUF_SIZE);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xrgb8888);
+       iosys_map_set_vaddr(&src, xrgb8888);
+ 
+       drm_fb_xrgb8888_to_xrgb1555(&dst, &result->dst_pitch, &src, &fb, ¶ms->clip);
+       buf = le16buf_to_cpu(test, (__force const __le16 *)buf, dst_size / sizeof(__le16));
+       KUNIT_EXPECT_EQ(test, memcmp(buf, result->expected, dst_size), 0);
+ }
+ 
+ static void drm_test_fb_xrgb8888_to_argb1555(struct kunit *test)
+ {
+       const struct convert_xrgb8888_case *params = test->param_value;
+       const struct convert_to_argb1555_result *result = ¶ms->argb1555_result;
+       size_t dst_size;
+       u16 *buf = NULL;
+       __le32 *xrgb8888 = NULL;
+       struct iosys_map dst, src;
+ 
+       struct drm_framebuffer fb = {
+               .format = drm_format_info(DRM_FORMAT_XRGB8888),
+               .pitches = { params->pitch, 0, 0 },
+       };
+ 
+       dst_size = conversion_buf_size(DRM_FORMAT_ARGB1555, result->dst_pitch,
+                                      ¶ms->clip);
+       KUNIT_ASSERT_GT(test, dst_size, 0);
+ 
+       buf = kunit_kzalloc(test, dst_size, GFP_KERNEL);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf);
+       iosys_map_set_vaddr(&dst, buf);
+ 
+       xrgb8888 = cpubuf_to_le32(test, params->xrgb8888, TEST_BUF_SIZE);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xrgb8888);
+       iosys_map_set_vaddr(&src, xrgb8888);
+ 
+       drm_fb_xrgb8888_to_argb1555(&dst, &result->dst_pitch, &src, &fb, ¶ms->clip);
+       buf = le16buf_to_cpu(test, (__force const __le16 *)buf, dst_size / sizeof(__le16));
+       KUNIT_EXPECT_EQ(test, memcmp(buf, result->expected, dst_size), 0);
+ }
+ 
+ static void drm_test_fb_xrgb8888_to_rgba5551(struct kunit *test)
+ {
+       const struct convert_xrgb8888_case *params = test->param_value;
+       const struct convert_to_rgba5551_result *result = ¶ms->rgba5551_result;
+       size_t dst_size;
+       u16 *buf = NULL;
+       __le32 *xrgb8888 = NULL;
+       struct iosys_map dst, src;
+ 
+       struct drm_framebuffer fb = {
+               .format = drm_format_info(DRM_FORMAT_XRGB8888),
+               .pitches = { params->pitch, 0, 0 },
+       };
+ 
+       dst_size = conversion_buf_size(DRM_FORMAT_RGBA5551, result->dst_pitch,
+                                      ¶ms->clip);
+       KUNIT_ASSERT_GT(test, dst_size, 0);
+ 
+       buf = kunit_kzalloc(test, dst_size, GFP_KERNEL);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf);
+       iosys_map_set_vaddr(&dst, buf);
+ 
+       xrgb8888 = cpubuf_to_le32(test, params->xrgb8888, TEST_BUF_SIZE);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xrgb8888);
+       iosys_map_set_vaddr(&src, xrgb8888);
+ 
+       drm_fb_xrgb8888_to_rgba5551(&dst, &result->dst_pitch, &src, &fb, ¶ms->clip);
+       buf = le16buf_to_cpu(test, (__force const __le16 *)buf, dst_size / sizeof(__le16));
+       KUNIT_EXPECT_EQ(test, memcmp(buf, result->expected, dst_size), 0);
+ }
+ 
  static void drm_test_fb_xrgb8888_to_rgb888(struct kunit *test)
  {
        const struct convert_xrgb8888_case *params = test->param_value;
        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);
 +      KUNIT_EXPECT_MEMEQ(test, buf, result->expected, dst_size);
  }
  
+ static void drm_test_fb_xrgb8888_to_argb8888(struct kunit *test)
+ {
+       const struct convert_xrgb8888_case *params = test->param_value;
+       const struct convert_to_argb8888_result *result = ¶ms->argb8888_result;
+       size_t dst_size;
+       u32 *buf = NULL;
+       __le32 *xrgb8888 = NULL;
+       struct iosys_map dst, src;
+ 
+       struct drm_framebuffer fb = {
+               .format = drm_format_info(DRM_FORMAT_XRGB8888),
+               .pitches = { params->pitch, 0, 0 },
+       };
+ 
+       dst_size = conversion_buf_size(DRM_FORMAT_ARGB8888,
+                                      result->dst_pitch, ¶ms->clip);
+       KUNIT_ASSERT_GT(test, dst_size, 0);
+ 
+       buf = kunit_kzalloc(test, dst_size, GFP_KERNEL);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf);
+       iosys_map_set_vaddr(&dst, buf);
+ 
+       xrgb8888 = cpubuf_to_le32(test, params->xrgb8888, TEST_BUF_SIZE);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xrgb8888);
+       iosys_map_set_vaddr(&src, xrgb8888);
+ 
+       drm_fb_xrgb8888_to_argb8888(&dst, &result->dst_pitch, &src, &fb, ¶ms->clip);
+       buf = le32buf_to_cpu(test, (__force const __le32 *)buf, dst_size / sizeof(u32));
+       KUNIT_EXPECT_EQ(test, memcmp(buf, result->expected, dst_size), 0);
+ }
+ 
  static void drm_test_fb_xrgb8888_to_xrgb2101010(struct kunit *test)
  {
        const struct convert_xrgb8888_case *params = test->param_value;
        iosys_map_set_vaddr(&src, xrgb8888);
  
        drm_fb_xrgb8888_to_xrgb2101010(&dst, &result->dst_pitch, &src, &fb, ¶ms->clip);
 -      buf = le32buf_to_cpu(test, (__force const __le32 *)buf, dst_size / sizeof(u32));
 -      KUNIT_EXPECT_EQ(test, memcmp(buf, result->expected, dst_size), 0);
 +      buf = le32buf_to_cpu(test, buf, dst_size / sizeof(u32));
 +      KUNIT_EXPECT_MEMEQ(test, buf, result->expected, dst_size);
  }
  
+ static void drm_test_fb_xrgb8888_to_argb2101010(struct kunit *test)
+ {
+       const struct convert_xrgb8888_case *params = test->param_value;
+       const struct convert_to_argb2101010_result *result = ¶ms->argb2101010_result;
+       size_t dst_size;
+       u32 *buf = NULL;
+       __le32 *xrgb8888 = NULL;
+       struct iosys_map dst, src;
+ 
+       struct drm_framebuffer fb = {
+               .format = drm_format_info(DRM_FORMAT_XRGB8888),
+               .pitches = { params->pitch, 0, 0 },
+       };
+ 
+       dst_size = conversion_buf_size(DRM_FORMAT_ARGB2101010,
+                                      result->dst_pitch, ¶ms->clip);
+       KUNIT_ASSERT_GT(test, dst_size, 0);
+ 
+       buf = kunit_kzalloc(test, dst_size, GFP_KERNEL);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, buf);
+       iosys_map_set_vaddr(&dst, buf);
+ 
+       xrgb8888 = cpubuf_to_le32(test, params->xrgb8888, TEST_BUF_SIZE);
+       KUNIT_ASSERT_NOT_ERR_OR_NULL(test, xrgb8888);
+       iosys_map_set_vaddr(&src, xrgb8888);
+ 
+       drm_fb_xrgb8888_to_argb2101010(&dst, &result->dst_pitch, &src, &fb, ¶ms->clip);
+       buf = le32buf_to_cpu(test, (__force const __le32 *)buf, dst_size / sizeof(u32));
+       KUNIT_EXPECT_EQ(test, memcmp(buf, result->expected, dst_size), 0);
+ }
+ 
  static struct kunit_case drm_format_helper_test_cases[] = {
        KUNIT_CASE_PARAM(drm_test_fb_xrgb8888_to_gray8, convert_xrgb8888_gen_params),
        KUNIT_CASE_PARAM(drm_test_fb_xrgb8888_to_rgb332, convert_xrgb8888_gen_params),