[RFC PATCH] drm/panel: simple: panel-dpi: use bus-format to set bpc and bus_format
Maxime Ripard
maxime at cerno.tech
Wed Feb 23 05:41:54 PST 2022
Hi,
On Tue, Feb 22, 2022 at 09:47:23AM +0100, Max Krummenacher wrote:
> 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 at toradex.com>
>
> ---
>
> 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@dh-electronics.com/
>
> 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;
> + }
> +
It doesn't seem right, really. We can't the bus format / bpc be inferred
from the compatible? I'd expect two panels that don't have the same bus
format to not be claimed as compatible.
Maxime
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 228 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20220223/9837124d/attachment-0001.sig>
More information about the linux-arm-kernel
mailing list