Hello Geert, On Thu, Apr 24, 2025 at 10:38:33AM +0200, Geert Uytterhoeven wrote:
[...] > > + /* > > + * As the display supports grayscale, all pixels > > must be written as two bits > > + * even if the format is monochrome. > > + * > > + * The bit values maps to the following grayscale: > > + * 0 0 = White > > + * 0 1 = Light gray > > + * 1 0 = Dark gray > > + * 1 1 = Black > > That is not R2, but D2? > include/uapi/drm/drm_fourcc.h: > > /* 2 bpp Red (direct relationship between channel value and brightness) */ > #define DRM_FORMAT_R2 fourcc_code('R', '2', ' ', ' ') > /* [7:0] R0:R1:R2:R3 2:2:2:2 four pixels/byte */ > > /* 2 bpp Darkness (inverse relationship between channel value and > brightness) */ > #define DRM_FORMAT_D2 fourcc_code('D', '2', ' ', ' ') > /* [7:0] D0:D1:D2:D3 2:2:2:2 four pixels/byte */ > > So the driver actually supports D1 and D2, and XRGB8888 should be > inverted while converting to monochrome (and grayscale, which is not > yet implemented). The display supports "reverse" grayscale, so the mapping becomes 1 1 = White 1 0 = Light gray 0 1 = Dark gray 0 0 = Black instead. So I will probably add support for D1 and D2 formats and invert the pixels for the R1, R2 and XRGB8888 formats. Could that work or are there any side effects that I should be aware of? Best regards, Marcus Folkesson
signature.asc
Description: PGP signature