]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commitdiff
drm/bridge: megachips: enable detect bridge operation
authorSam Ravnborg <sam@ravnborg.org>
Sun, 26 Jul 2020 20:33:20 +0000 (22:33 +0200)
committerSam Ravnborg <sam@ravnborg.org>
Mon, 27 Jul 2020 15:24:08 +0000 (17:24 +0200)
To prepare for use in a chained bridge setup enable the
detect operation.

Signed-off-by: Sam Ravnborg <sam@ravnborg.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Cc: Peter Senna Tschudin <peter.senna@gmail.com>
Cc: Martin Donnelly <martin.donnelly@ge.com>
Cc: Martyn Welch <martyn.welch@collabora.co.uk>
Cc: Andrzej Hajda <a.hajda@samsung.com>
Cc: Neil Armstrong <narmstrong@baylibre.com>
Cc: Laurent Pinchart <Laurent.pinchart@ideasonboard.com>
Cc: Jonas Karlman <jonas@kwiboo.se>
Cc: Jernej Skrabec <jernej.skrabec@siol.net>
Link: https://patchwork.freedesktop.org/patch/msgid/20200726203324.3722593-12-sam@ravnborg.org
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c

index cf1dfbc88acf05c2510ce081d463631163c96946..450dca33ea48f94723ed088fa67e9d58db901048 100644 (file)
@@ -163,8 +163,7 @@ drm_connector_helper_funcs ge_b850v3_lvds_connector_helper_funcs = {
        .mode_valid = ge_b850v3_lvds_mode_valid,
 };
 
-static enum drm_connector_status ge_b850v3_lvds_detect(
-               struct drm_connector *connector, bool force)
+static enum drm_connector_status ge_b850v3_lvds_bridge_detect(struct drm_bridge *bridge)
 {
        struct i2c_client *stdp4028_i2c =
                        ge_b850v3_lvds_ptr->stdp4028_i2c;
@@ -182,6 +181,12 @@ static enum drm_connector_status ge_b850v3_lvds_detect(
        return connector_status_unknown;
 }
 
+static enum drm_connector_status ge_b850v3_lvds_detect(struct drm_connector *connector,
+                                                      bool force)
+{
+       return ge_b850v3_lvds_bridge_detect(&ge_b850v3_lvds_ptr->bridge);
+}
+
 static const struct drm_connector_funcs ge_b850v3_lvds_connector_funcs = {
        .fill_modes = drm_helper_probe_single_connector_modes,
        .detect = ge_b850v3_lvds_detect,
@@ -263,6 +268,7 @@ static int ge_b850v3_lvds_attach(struct drm_bridge *bridge,
 
 static const struct drm_bridge_funcs ge_b850v3_lvds_funcs = {
        .attach = ge_b850v3_lvds_attach,
+       .detect = ge_b850v3_lvds_bridge_detect,
 };
 
 static int ge_b850v3_lvds_init(struct device *dev)
@@ -317,6 +323,7 @@ static int stdp4028_ge_b850v3_fw_probe(struct i2c_client *stdp4028_i2c,
 
        /* drm bridge initialization */
        ge_b850v3_lvds_ptr->bridge.funcs = &ge_b850v3_lvds_funcs;
+       ge_b850v3_lvds_ptr->bridge.ops = DRM_BRIDGE_OP_DETECT;
        ge_b850v3_lvds_ptr->bridge.of_node = dev->of_node;
        drm_bridge_add(&ge_b850v3_lvds_ptr->bridge);