From d69bea3c5eb4f2f1c393a2f7e59b49d451b60fae Mon Sep 17 00:00:00 2001 From: Phi Bang Nguyen Date: Wed, 4 Dec 2024 11:33:02 +0100 Subject: [PATCH] drivers: display: dcnano_elcdif: Fix RGB565/BGR565 format mismatch Format is incorrectly forced from RGB565 to BGR565. Fix it. Signed-off-by: Phi Bang Nguyen --- drivers/display/display_mcux_dcnano_lcdif.c | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/drivers/display/display_mcux_dcnano_lcdif.c b/drivers/display/display_mcux_dcnano_lcdif.c index 084cb11893e..f94f09b1853 100644 --- a/drivers/display/display_mcux_dcnano_lcdif.c +++ b/drivers/display/display_mcux_dcnano_lcdif.c @@ -133,16 +133,11 @@ static void mcux_dcnano_lcdif_get_capabilities(const struct device *dev, capabilities->y_resolution = config->dpi_config.panelHeight; capabilities->x_resolution = config->dpi_config.panelWidth; - capabilities->supported_pixel_formats = - (PIXEL_FORMAT_BGR_565 | PIXEL_FORMAT_ARGB_8888); + capabilities->supported_pixel_formats = (PIXEL_FORMAT_RGB_565 | PIXEL_FORMAT_ARGB_8888); capabilities->current_orientation = DISPLAY_ORIENTATION_NORMAL; switch (data->fb_config.format) { case kLCDIF_PixelFormatRGB565: - /* Zephyr stores RGB565 as big endian, and LCDIF - * expects little endian. Use BGR565 format to resolve - * this. - */ - capabilities->current_pixel_format = PIXEL_FORMAT_BGR_565; + capabilities->current_pixel_format = PIXEL_FORMAT_RGB_565; break; #if DT_ENUM_IDX_OR(DT_NODELABEL(lcdif), version, 0) == 1 case kLCDIF_PixelFormatARGB8888: @@ -185,11 +180,7 @@ static int mcux_dcnano_lcdif_set_pixel_format(const struct device *dev, struct mcux_dcnano_lcdif_data *data = dev->data; switch (pixel_format) { - case PIXEL_FORMAT_BGR_565: - /* Zephyr stores RGB565 as big endian, and LCDIF - * expects little endian. Use BGR565 format to resolve - * this. - */ + case PIXEL_FORMAT_RGB_565: data->fb_config.format = kLCDIF_PixelFormatRGB565; data->pixel_bytes = 2; break;