This RFC patchset implements various features required for DRM panic handling [1] and should (for now) be seen in that context. Most of all, the patchset replaces struct drm_framebuffer with struct drm_pixmap in the format-conversion helpers. DRM pixmap represents a source of pixel data for the blitting operations. Patches 1 to 19 update the interface, implementation and all of the callers. These patches could be useful even without DRM panic handling. With struct drm_pixmap in place, patches 20 to 22 implement rudimentary support for blitting font data. The pixmap refers to a character's glyph, which the blit routines write to the destination memory. An example on blitting strings is given in patch 20's commit description. Patch 23 adds rudimentary support for fill operations. The design is based on blitting, but blits the same color into each pixel. [1] https://patchwork.freedesktop.org/series/122244/ Thomas Zimmermann (23): drm/format-helper: Add struct drm_pixmap drm/format-helper: Use struct drm_pixmap for drm_fb_memcpy() drm/format-helper: Streamline drm_fb_xfrm() implementations drm/format-helper: Use struct drm_pixmap internally drm/format-helper: Use struct drm_pixmap for drm_fb_swab() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_rgb332() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_rgb565() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_xrgb1555() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_argb1555() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_rgba5551() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_rgb888() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_argb8888() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_abgr8888() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_xbgr8888() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_xrgb2101010() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_argb2101010() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_gray8() drm/format-helper: Use struct drm_pixmap for drm_fb_xrgb8888_to_mono() drm/format-helper: Use struct drm_pixmap for drm_fb_blit() [DO NOT MERGE] drm/format-helper: Add font-support for DRM pixmap [DO NOT MERGE] drm/format-helper: Add color palette [DO NOT MERGE] drm/format-helper: Support blitting from C1 to XRGB8888 [DO NOT MERGE] drm/format-helper: Add drm_fb_fill() to fill screen with color drivers/gpu/drm/ast/ast_mode.c | 4 +- drivers/gpu/drm/drm_format_helper.c | 678 ++++++++++++------ drivers/gpu/drm/drm_mipi_dbi.c | 9 +- drivers/gpu/drm/gud/gud_pipe.c | 24 +- drivers/gpu/drm/hyperv/hyperv_drm_modeset.c | 4 +- drivers/gpu/drm/mgag200/mgag200_mode.c | 4 +- drivers/gpu/drm/solomon/ssd130x.c | 12 +- .../gpu/drm/tests/drm_format_helper_test.c | 106 ++- drivers/gpu/drm/tiny/cirrus.c | 6 +- drivers/gpu/drm/tiny/ofdrm.c | 6 +- drivers/gpu/drm/tiny/repaper.c | 4 +- drivers/gpu/drm/tiny/simpledrm.c | 6 +- drivers/gpu/drm/tiny/st7586.c | 4 +- include/drm/drm_format_helper.h | 116 ++- 14 files changed, 678 insertions(+), 305 deletions(-) -- 2.43.0