Use the new property bus-format to set the enum bus_format and bpc. Completes: commit 4a1d0dbc8332 ("drm/panel: simple: add panel-dpi support") Signed-off-by: Max Krummenacher <max.krummenacher@xxxxxxxxxxx> --- drivers/gpu/drm/panel/panel-simple.c | 32 ++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) Relates to the discussion: https://lore.kernel.org/all/20220201110717.3585-1-cniedermaier@xxxxxxxxxxxxxxxxxx/ Max diff --git a/drivers/gpu/drm/panel/panel-simple.c b/drivers/gpu/drm/panel/panel-simple.c index c5f133667a2d..5c07260de71c 100644 --- a/drivers/gpu/drm/panel/panel-simple.c +++ b/drivers/gpu/drm/panel/panel-simple.c @@ -453,6 +453,7 @@ static int panel_dpi_probe(struct device *dev, struct panel_desc *desc; unsigned int bus_flags; struct videomode vm; + const char *format = ""; int ret; np = dev->of_node; @@ -477,6 +478,37 @@ 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, "bus-format", &format); + if (!strcmp(format, "BGR888_1X24")) { + desc->bpc = 8; + desc->bus_format = MEDIA_BUS_FMT_BGR888_1X24; + } else if (!strcmp(format, "GBR888_1X24")) { + desc->bpc = 8; + desc->bus_format = MEDIA_BUS_FMT_GBR888_1X24; + } else if (!strcmp(format, "RBG888_1X24")) { + desc->bpc = 8; + desc->bus_format = MEDIA_BUS_FMT_RBG888_1X24; + } else if (!strcmp(format, "RGB444_1X12")) { + desc->bpc = 6; + desc->bus_format = MEDIA_BUS_FMT_RGB444_1X12; + } else if (!strcmp(format, "RGB565_1X16")) { + desc->bpc = 6; + desc->bus_format = MEDIA_BUS_FMT_RGB565_1X16; + } else if (!strcmp(format, "RGB666_1X18")) { + desc->bpc = 6; + desc->bus_format = MEDIA_BUS_FMT_RGB666_1X18; + } else if (!strcmp(format, "RGB666_1X24_CPADHI")) { + desc->bpc = 6; + desc->bus_format = MEDIA_BUS_FMT_RGB666_1X24_CPADHI; + } else if (!strcmp(format, "RGB888_1X24")) { + desc->bpc = 8; + desc->bus_format = MEDIA_BUS_FMT_RGB888_1X24; + } else { + dev_err(dev, "%pOF: missing or unknown bus-format property\n", + np); + return -EINVAL; + } + /* Extract bus_flags from display_timing */ bus_flags = 0; vm.flags = timing->flags; -- 2.20.1