summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Krummenacher <max.krummenacher@toradex.com>2022-09-01 14:04:50 +0200
committerMax Krummenacher <max.krummenacher@toradex.com>2022-09-06 14:04:43 +0200
commitf7336b9a2f057ee8a07953fb1eacc12251f1f3ae (patch)
treea13203cc4e6f785f978a0afa7fdd030bda928909
parentc60bdac0f5e8ca17040d4ffdcd54997fd3efc54e (diff)
Revert "drm/panel-simple: drop use of data-mapping property"
This reverts commit d021d751c14752a0266865700f6f212fab40a18c. Re-enable the data-mapping property which was already used in the 5.4-2.3.0 downstream kernel. In addition to the revert set bpc from the data-mapping value as a WARN_ON is printed if missing. Upstream-Status: denied [Alternative solution being discused] https://lore.kernel.org/all/20220628181838.2031-1-max.oss.09@gmail.com/ Signed-off-by: Max Krummenacher <max.krummenacher@toradex.com>
-rw-r--r--drivers/gpu/drm/panel/panel-simple.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c
index 41a75993e839..7623fbd9f543 100644
--- a/drivers/gpu/drm/panel/panel-simple.c
+++ b/drivers/gpu/drm/panel/panel-simple.c
@@ -575,6 +575,7 @@ static int panel_dpi_probe(struct device *dev,
struct panel_desc *desc;
unsigned int bus_flags;
struct videomode vm;
+ const char *mapping;
int ret;
np = dev->of_node;
@@ -599,6 +600,21 @@ static int panel_dpi_probe(struct device *dev,
of_property_read_u32(np, "width-mm", &desc->size.width);
of_property_read_u32(np, "height-mm", &desc->size.height);
+ of_property_read_string(np, "data-mapping", &mapping);
+ if (!strcmp(mapping, "rgb24")) {
+ desc->bus_format = MEDIA_BUS_FMT_RGB888_1X24;
+ desc->bpc = 8;
+ } else if (!strcmp(mapping, "rgb565")) {
+ desc->bus_format = MEDIA_BUS_FMT_RGB565_1X16;
+ desc->bpc = 6;
+ } else if (!strcmp(mapping, "bgr666")) {
+ desc->bus_format = MEDIA_BUS_FMT_RGB666_1X18;
+ desc->bpc = 6;
+ } else if (!strcmp(mapping, "lvds666")) {
+ desc->bus_format = MEDIA_BUS_FMT_RGB666_1X24_CPADHI;
+ desc->bpc = 6;
+ }
+
/* Extract bus_flags from display_timing */
bus_flags = 0;
vm.flags = timing->flags;