Fix the selection of the fbdev emulation's color format and make XRGB8888 the only emulated color format. Resolves the blank screen in cases where video= specifies an unsupported color format. Also resolves the issues around current format-conversion helpers. Version 2 of the patchset fixes the format-helper test cases on big-endian platforms. This involves some changes to existing tests as well. DRM drivers usually pick a default format for their fbdev emulation. Via the kernel's video= parameter, users can specify a different format. If the given format is unsupported by the driver, the fbdev console screen remains dark. As the console is essential to many systems, not displaying anything is to be avoided. Patch 1 fixes the detection of the firmware's native color format. The meaning of several color parameters is inconsistent among Linux and various standards. Take this into account. Patches 2 to 5 fix the existing conversion helpers and test cases for big-endian platforms. These patches are new in version 2 of the patcheset. As drivers are supposed to provide XRGB8888 as a default fallback format, provide XRGB8888 conversion helpers in patches 6 to 9. The new helpers handle cases where the client uses a XRGB8888 frambuffer and the display scanout buffer uses a different format. All scanout formats of the simplefb infrastructure should now be covered. The patchse also extend the Kunit tests for the new formats. With format conversion in place, patches 10 and 11 fix the single-probe function's format selection. The helper now goes over the given video= parameters until it finds a compatible format. If none is found, the uses driver's default format. Patches 12 and 13 clean up DRM code in drivers and helpers. Tested on x86-64 with EFI output and x86 with various VESA color modes. Also tested on ppc64 with OF output. v2: * fix problems with big-endian platforms Thomas Zimmermann (13): firmware/sysfb: Fix EFI/VESA format selection drm/format-helper: Comment on RGB888 byte order drm/format-helper: Fix test-input format conversion drm/format-helper: Store RGB565 in little-endian order drm/format-helper: Type fixes in format-helper tests drm/format-helper: Flip src/dst-format branches in blit helper drm/format-helper: Add conversion from XRGB8888 to ARGB8888 drm/format-helper: Add conversion from XRGB8888 to ARGB2101010 drm/format-helper: Add conversion from XRGB8888 to 15-bit RGB555 formats drm/fh-helper: Split fbdev single-probe helper drm/fb-helper: Fix single-probe color-format selection drm/format-helper: Simplify drm_fb_build_fourcc_list() drm/format-helper: Remove unnecessary conversion helpers drivers/firmware/sysfb_simplefb.c | 43 +- drivers/gpu/drm/drm_fb_helper.c | 252 ++++++---- drivers/gpu/drm/drm_format_helper.c | 464 +++++++++++++----- .../gpu/drm/tests/drm_format_helper_test.c | 386 ++++++++++++++- drivers/gpu/drm/tiny/ofdrm.c | 20 - drivers/gpu/drm/tiny/simpledrm.c | 21 - include/drm/drm_format_helper.h | 16 +- 7 files changed, 898 insertions(+), 304 deletions(-) -- 2.39.0