drm/panel: panel-simple: add default connector_type
authorSam Ravnborg <sam@ravnborg.org>
Sun, 26 Jul 2020 20:33:11 +0000 (22:33 +0200)
committerSam Ravnborg <sam@ravnborg.org>
Mon, 27 Jul 2020 15:18:52 +0000 (17:18 +0200)
All panels shall report a connector type.
panel-simple has a lot of panels with no connector_type,
and for these fall back to DPI as the default.

v2:
  - Rebased on top of validation of panel description

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Sam Ravnborg <sam@ravnborg.org>
Link: https://patchwork.freedesktop.org/patch/msgid/20200726203324.3722593-3-sam@ravnborg.org
drivers/gpu/drm/panel/panel-simple.c

index 2c972cc..5cba333 100644 (file)
@@ -500,6 +500,7 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
        struct panel_simple *panel;
        struct display_timing dt;
        struct device_node *ddc;
+       int connector_type;
        u32 bus_flags;
        int err;
 
@@ -550,10 +551,12 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
                        panel_simple_parse_panel_timing_node(dev, panel, &dt);
        }
 
+       connector_type = desc->connector_type;
        /* Catch common mistakes for panels. */
-       switch (desc->connector_type) {
+       switch (connector_type) {
        case 0:
                dev_warn(dev, "Specify missing connector_type\n");
+               connector_type = DRM_MODE_CONNECTOR_DPI;
                break;
        case DRM_MODE_CONNECTOR_LVDS:
                WARN_ON(desc->bus_flags &
@@ -600,11 +603,11 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
                break;
        default:
                dev_warn(dev, "Specify a valid connector_type: %d\n", desc->connector_type);
+               connector_type = DRM_MODE_CONNECTOR_DPI;
                break;
        }
 
-       drm_panel_init(&panel->base, dev, &panel_simple_funcs,
-                      desc->connector_type);
+       drm_panel_init(&panel->base, dev, &panel_simple_funcs, connector_type);
 
        err = drm_panel_of_backlight(&panel->base);
        if (err)