lkml.org 
[lkml]   [2022]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v2 RFC 09/10] drm/fourcc: Add DRM_FORMAT_R[124]
    Date
    Introduce fourcc codes for single-channel light-on-dark frame buffer
    formats with two, four, and sixteen intensity levels.

    As the number of bits per pixel is less than eight, these rely on proper
    block handling for the calculation of bits per pixel and pitch.

    Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
    ---
    RFC, as I have no immediate need for these formats.

    v2:
    - Improve pixel descriptions.
    ---
    drivers/gpu/drm/drm_fourcc.c | 6 ++++++
    include/uapi/drm/drm_fourcc.h | 11 ++++++++++-
    2 files changed, 16 insertions(+), 1 deletion(-)

    diff --git a/drivers/gpu/drm/drm_fourcc.c b/drivers/gpu/drm/drm_fourcc.c
    index 29f4fe199c4ddcf0..05e65e9ab0c69c6a 100644
    --- a/drivers/gpu/drm/drm_fourcc.c
    +++ b/drivers/gpu/drm/drm_fourcc.c
    @@ -154,6 +154,12 @@ const struct drm_format_info *__drm_format_info(u32 format)
    { .format = DRM_FORMAT_C4, .depth = 4, .num_planes = 1,
    .char_per_block = { 1, }, .block_w = { 2, }, .block_h = { 1, }, .hsub = 1, .vsub = 1, .is_color_indexed = true },
    { .format = DRM_FORMAT_C8, .depth = 8, .num_planes = 1, .cpp = { 1, 0, 0 }, .hsub = 1, .vsub = 1, .is_color_indexed = true },
    + { .format = DRM_FORMAT_R1, .depth = 1, .num_planes = 1,
    + .char_per_block = { 1, }, .block_w = { 8, }, .block_h = { 1, }, .hsub = 1, .vsub = 1 },
    + { .format = DRM_FORMAT_R2, .depth = 2, .num_planes = 1,
    + .char_per_block = { 1, }, .block_w = { 4, }, .block_h = { 1, }, .hsub = 1, .vsub = 1 },
    + { .format = DRM_FORMAT_R4, .depth = 4, .num_planes = 1,
    + .char_per_block = { 1, }, .block_w = { 2, }, .block_h = { 1, }, .hsub = 1, .vsub = 1 },
    { .format = DRM_FORMAT_R8, .depth = 8, .num_planes = 1, .cpp = { 1, 0, 0 }, .hsub = 1, .vsub = 1 },
    { .format = DRM_FORMAT_R10, .depth = 10, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
    { .format = DRM_FORMAT_R12, .depth = 12, .num_planes = 1, .cpp = { 2, 0, 0 }, .hsub = 1, .vsub = 1 },
    diff --git a/include/uapi/drm/drm_fourcc.h b/include/uapi/drm/drm_fourcc.h
    index f0187cf20e4619d2..def0a73620dc86d2 100644
    --- a/include/uapi/drm/drm_fourcc.h
    +++ b/include/uapi/drm/drm_fourcc.h
    @@ -104,8 +104,17 @@ extern "C" {
    #define DRM_FORMAT_C4 fourcc_code('C', '4', ' ', ' ') /* [7:0] C0:C1 4:4 two pixels/byte */
    #define DRM_FORMAT_C8 fourcc_code('C', '8', ' ', ' ') /* [7:0] C 8 one pixel/byte */

    +/* 1 bpp Red (or monochrome light-on-dark) */
    +#define DRM_FORMAT_R1 fourcc_code('R', '1', ' ', ' ') /* [7:0] R0:R1:R2:R3:R4:R5:R6:R7 1:1:1:1:1:1:1:1 eight pixels/byte */
    +
    +/* 2 bpp Red (or generic light-on-dark) */
    +#define DRM_FORMAT_R2 fourcc_code('R', '2', ' ', ' ') /* [7:0] R0:R1:R2:R3 2:2:2:2 four pixels/byte */
    +
    +/* 4 bpp Red (or generic light-on-dark) */
    +#define DRM_FORMAT_R4 fourcc_code('R', '4', ' ', ' ') /* [7:0] R0:R1 4:4 two pixels/byte */
    +
    /* 8 bpp Red (or generic light-on-dark) */
    -#define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ') /* [7:0] R */
    +#define DRM_FORMAT_R8 fourcc_code('R', '8', ' ', ' ') /* [7:0] R 8 one pixel/byte */

    /* 10 bpp Red (or generic light-on-dark) */
    #define DRM_FORMAT_R10 fourcc_code('R', '1', '0', ' ') /* [15:0] x:R 6:10 little endian */
    --
    2.25.1
    \
     
     \ /
      Last update: 2022-03-07 21:57    [W:2.071 / U:0.036 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site