]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/bridge: Pass down connector to drm bridge detect hook
authorAndy Yan <andy.yan@rock-chips.com>
Thu, 3 Jul 2025 12:49:53 +0000 (20:49 +0800)
committerDmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Mon, 14 Jul 2025 15:23:18 +0000 (18:23 +0300)
In some application scenarios, we hope to get the corresponding
connector when the bridge's detect hook is invoked.

In most cases, we can get the connector by drm_atomic_get_connector_for_encoder
if the encoder attached to the bridge is enabled, however there will
still be some scenarios where the detect hook of the bridge is called
but the corresponding encoder has not been enabled yet. For instance,
this occurs when the device is hot plug in for the first time.

Since the call to bridge's detect is initiated by the connector, passing
down the corresponding connector directly will make things simpler.

Signed-off-by: Andy Yan <andy.yan@rock-chips.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20250703125027.311109-3-andyshrk@163.com
[DB: added the chunk to the cdn-dp driver]
Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
32 files changed:
drivers/gpu/drm/bridge/adv7511/adv7511_drv.c
drivers/gpu/drm/bridge/analogix/anx7625.c
drivers/gpu/drm/bridge/cadence/cdns-mhdp8546-core.c
drivers/gpu/drm/bridge/chrontel-ch7033.c
drivers/gpu/drm/bridge/display-connector.c
drivers/gpu/drm/bridge/ite-it6263.c
drivers/gpu/drm/bridge/ite-it6505.c
drivers/gpu/drm/bridge/ite-it66121.c
drivers/gpu/drm/bridge/lontium-lt8912b.c
drivers/gpu/drm/bridge/lontium-lt9611.c
drivers/gpu/drm/bridge/lontium-lt9611uxc.c
drivers/gpu/drm/bridge/megachips-stdpxxxx-ge-b850v3-fw.c
drivers/gpu/drm/bridge/sii902x.c
drivers/gpu/drm/bridge/simple-bridge.c
drivers/gpu/drm/bridge/synopsys/dw-hdmi-qp.c
drivers/gpu/drm/bridge/synopsys/dw-hdmi.c
drivers/gpu/drm/bridge/tc358767.c
drivers/gpu/drm/bridge/ti-sn65dsi86.c
drivers/gpu/drm/bridge/ti-tfp410.c
drivers/gpu/drm/bridge/ti-tpd12s015.c
drivers/gpu/drm/display/drm_bridge_connector.c
drivers/gpu/drm/drm_bridge.c
drivers/gpu/drm/mediatek/mtk_dp.c
drivers/gpu/drm/mediatek/mtk_hdmi.c
drivers/gpu/drm/msm/dp/dp_drm.c
drivers/gpu/drm/msm/hdmi/hdmi.h
drivers/gpu/drm/msm/hdmi/hdmi_bridge.c
drivers/gpu/drm/msm/hdmi/hdmi_hpd.c
drivers/gpu/drm/rockchip/cdn-dp-core.c
drivers/gpu/drm/rockchip/rk3066_hdmi.c
drivers/gpu/drm/xlnx/zynqmp_dp.c
include/drm/drm_bridge.h

index f59d19b4b81a81de9604da13cd00ba9280972205..00d6417c177b430cb1a81118800588b90c692018 100644 (file)
@@ -864,7 +864,8 @@ static int adv7511_bridge_attach(struct drm_bridge *bridge,
        return ret;
 }
 
-static enum drm_connector_status adv7511_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+adv7511_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct adv7511 *adv = bridge_to_adv7511(bridge);
 
index 0ac4a82c5a6e5e665d913674b664905a96c0d8e6..c0ad8f59e4839810b695b27e116193d2b227e1b3 100644 (file)
@@ -2448,7 +2448,7 @@ anx7625_audio_update_connector_status(struct anx7625_data *ctx,
                                      enum drm_connector_status status);
 
 static enum drm_connector_status
-anx7625_bridge_detect(struct drm_bridge *bridge)
+anx7625_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct anx7625_data *ctx = bridge_to_anx7625(bridge);
        struct device *dev = ctx->dev;
index cb5f5a8c539a471290df8435d4c2e3ed696b38d4..a614d1384f71523f60934d99da56e2233d710e22 100644 (file)
@@ -2143,7 +2143,8 @@ static int cdns_mhdp_atomic_check(struct drm_bridge *bridge,
        return 0;
 }
 
-static enum drm_connector_status cdns_mhdp_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+cdns_mhdp_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct cdns_mhdp_device *mhdp = bridge_to_mhdp(bridge);
 
index ab92747933568bfba77da45219e019408029f297..54d49d4882c857e30cfcd7ed924549a6bf2a4a8a 100644 (file)
@@ -215,7 +215,7 @@ static enum drm_connector_status ch7033_connector_detect(
 {
        struct ch7033_priv *priv = conn_to_ch7033_priv(connector);
 
-       return drm_bridge_detect(priv->next_bridge);
+       return drm_bridge_detect(priv->next_bridge, connector);
 }
 
 static const struct drm_connector_funcs ch7033_connector_funcs = {
index badd2c7f91a186e9a47c5a4ddc870d269f3798ab..52b7b5889e6fea9de01db8bf0ce807424ec51e22 100644 (file)
@@ -40,8 +40,7 @@ static int display_connector_attach(struct drm_bridge *bridge,
        return flags & DRM_BRIDGE_ATTACH_NO_CONNECTOR ? 0 : -EINVAL;
 }
 
-static enum drm_connector_status
-display_connector_detect(struct drm_bridge *bridge)
+static enum drm_connector_status display_connector_detect(struct drm_bridge *bridge)
 {
        struct display_connector *conn = to_display_connector(bridge);
 
@@ -82,6 +81,12 @@ display_connector_detect(struct drm_bridge *bridge)
        }
 }
 
+static enum drm_connector_status
+display_connector_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
+{
+       return display_connector_detect(bridge);
+}
+
 static const struct drm_edid *display_connector_edid_read(struct drm_bridge *bridge,
                                                          struct drm_connector *connector)
 {
@@ -172,7 +177,7 @@ static u32 *display_connector_get_input_bus_fmts(struct drm_bridge *bridge,
 
 static const struct drm_bridge_funcs display_connector_bridge_funcs = {
        .attach = display_connector_attach,
-       .detect = display_connector_detect,
+       .detect = display_connector_bridge_detect,
        .edid_read = display_connector_edid_read,
        .atomic_get_output_bus_fmts = display_connector_get_output_bus_fmts,
        .atomic_get_input_bus_fmts = display_connector_get_input_bus_fmts,
index c4eedf643f39e9b91efeb5a6214bf2fe6f2c040a..cf813672b4ffb8ab5c524c6414ee7b414cebc018 100644 (file)
@@ -693,7 +693,8 @@ static int it6263_bridge_attach(struct drm_bridge *bridge,
        return 0;
 }
 
-static enum drm_connector_status it6263_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+it6263_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct it6263 *it = bridge_to_it6263(bridge);
 
index b0dc9280d870c4864d43984999238e8a34bf47df..89649c17ffad95e8691fd3583aad22817027ef17 100644 (file)
@@ -3238,7 +3238,7 @@ static void it6505_bridge_atomic_post_disable(struct drm_bridge *bridge,
 }
 
 static enum drm_connector_status
-it6505_bridge_detect(struct drm_bridge *bridge)
+it6505_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct it6505 *it6505 = bridge_to_it6505(bridge);
 
index 6494f0842793829b7658b330338767e5b38a1115..aa7b1dcc5d70e5d15199e071e4cd96e08b4bda1b 100644 (file)
@@ -843,7 +843,8 @@ static enum drm_mode_status it66121_bridge_mode_valid(struct drm_bridge *bridge,
        return MODE_OK;
 }
 
-static enum drm_connector_status it66121_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+it66121_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct it66121_ctx *ctx = container_of(bridge, struct it66121_ctx, bridge);
 
index bd83228b0f0eb49062ee84f62f8ae50b78bbfb0e..342374cb8fc6b021821086b93926ace6715d13d3 100644 (file)
@@ -408,7 +408,7 @@ lt8912_connector_detect(struct drm_connector *connector, bool force)
        struct lt8912 *lt = connector_to_lt8912(connector);
 
        if (lt->hdmi_port->ops & DRM_BRIDGE_OP_DETECT)
-               return drm_bridge_detect(lt->hdmi_port);
+               return drm_bridge_detect(lt->hdmi_port, connector);
 
        return lt8912_check_cable_status(lt);
 }
@@ -607,12 +607,12 @@ lt8912_bridge_mode_valid(struct drm_bridge *bridge,
 }
 
 static enum drm_connector_status
-lt8912_bridge_detect(struct drm_bridge *bridge)
+lt8912_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct lt8912 *lt = bridge_to_lt8912(bridge);
 
        if (lt->hdmi_port->ops & DRM_BRIDGE_OP_DETECT)
-               return drm_bridge_detect(lt->hdmi_port);
+               return drm_bridge_detect(lt->hdmi_port, connector);
 
        return lt8912_check_cable_status(lt);
 }
index ff85ac8130b427f0f3c532ed57fda60365f77585..a2d032ee4744715b88eb66883edf69bab4c274b0 100644 (file)
@@ -543,7 +543,8 @@ static int lt9611_regulator_enable(struct lt9611 *lt9611)
        return 0;
 }
 
-static enum drm_connector_status lt9611_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+lt9611_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct lt9611 *lt9611 = bridge_to_lt9611(bridge);
        unsigned int reg_val = 0;
index 766da2cb45a7e2a79256185b8e2d3bd1eff3648f..38fb8776c0f441ae433c60a7680aaa6501a8956e 100644 (file)
@@ -353,7 +353,8 @@ static void lt9611uxc_bridge_mode_set(struct drm_bridge *bridge,
        lt9611uxc_unlock(lt9611uxc);
 }
 
-static enum drm_connector_status lt9611uxc_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+lt9611uxc_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct lt9611uxc *lt9611uxc = bridge_to_lt9611uxc(bridge);
        unsigned int reg_val = 0;
index 81dde9ed7bcf7cacae000d9da31a3a5c347ce037..de57f8a9e98c348355fefd4d84082388a43332f2 100644 (file)
@@ -120,7 +120,8 @@ drm_connector_helper_funcs ge_b850v3_lvds_connector_helper_funcs = {
        .get_modes = ge_b850v3_lvds_get_modes,
 };
 
-static enum drm_connector_status ge_b850v3_lvds_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+ge_b850v3_lvds_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct i2c_client *stdp4028_i2c =
                        ge_b850v3_lvds_ptr->stdp4028_i2c;
index 882973e900628c0d972d32cd4ff3588432daa8e9..d537b1d036fb09ce55a690a0809dcc28fc0f41be 100644 (file)
@@ -458,7 +458,8 @@ static int sii902x_bridge_attach(struct drm_bridge *bridge,
        return 0;
 }
 
-static enum drm_connector_status sii902x_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+sii902x_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct sii902x *sii902x = bridge_to_sii902x(bridge);
 
index c66bd913e33ae311a980251348199889ef5b99af..3d15ddd394703a351c1a537e7ab5f1487e024ee4 100644 (file)
@@ -90,7 +90,7 @@ simple_bridge_connector_detect(struct drm_connector *connector, bool force)
 {
        struct simple_bridge *sbridge = drm_connector_to_simple_bridge(connector);
 
-       return drm_bridge_detect(sbridge->next_bridge);
+       return drm_bridge_detect(sbridge->next_bridge, connector);
 }
 
 static const struct drm_connector_funcs simple_bridge_con_funcs = {
index f9438e39b94aa9726b98ef4b384093e6d563520d..39332c57f2c54296f39e27612544f4fbf923863f 100644 (file)
@@ -876,7 +876,7 @@ static void dw_hdmi_qp_bridge_atomic_disable(struct drm_bridge *bridge,
 }
 
 static enum drm_connector_status
-dw_hdmi_qp_bridge_detect(struct drm_bridge *bridge)
+dw_hdmi_qp_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct dw_hdmi_qp *hdmi = bridge->driver_private;
 
index 76c6570e2a85e17403cde6f84c6f91a1c9024b31..206b099a35e9a5730024b61d686d6c28bdb1b560 100644 (file)
@@ -2978,7 +2978,8 @@ static void dw_hdmi_bridge_atomic_enable(struct drm_bridge *bridge,
        mutex_unlock(&hdmi->mutex);
 }
 
-static enum drm_connector_status dw_hdmi_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+dw_hdmi_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct dw_hdmi *hdmi = bridge->driver_private;
 
index 562fea47b3ecf360e64a414e95ab5d645e610e9e..4097fef4b86b5fa87f9032fe55a8df4d9dfb3403 100644 (file)
@@ -1760,7 +1760,8 @@ static const struct drm_connector_helper_funcs tc_connector_helper_funcs = {
        .get_modes = tc_connector_get_modes,
 };
 
-static enum drm_connector_status tc_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+tc_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct tc_data *tc = bridge_to_tc(bridge);
        bool conn;
@@ -1785,7 +1786,7 @@ tc_connector_detect(struct drm_connector *connector, bool force)
        struct tc_data *tc = connector_to_tc(connector);
 
        if (tc->hpd_pin >= 0)
-               return tc_bridge_detect(&tc->bridge);
+               return tc_bridge_detect(&tc->bridge, connector);
 
        if (tc->panel_bridge)
                return connector_status_connected;
index 3d0b4bc5129dd48b79ac3dd9f3dfea61def34927..575dc2667592fc5bff1d409f1f38a346256c7d4d 100644 (file)
@@ -1155,7 +1155,8 @@ static void ti_sn_bridge_atomic_post_disable(struct drm_bridge *bridge,
        pm_runtime_put_sync(pdata->dev);
 }
 
-static enum drm_connector_status ti_sn_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+ti_sn_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct ti_sn65dsi86 *pdata = bridge_to_ti_sn65dsi86(bridge);
        int val = 0;
index 549e8e8edeb4f2f27d86a86fa0312e727380ecd9..b80ee089f88014ec683ac14cbbea8cf69b2d2424 100644 (file)
@@ -89,7 +89,7 @@ tfp410_connector_detect(struct drm_connector *connector, bool force)
 {
        struct tfp410 *dvi = drm_connector_to_tfp410(connector);
 
-       return drm_bridge_detect(dvi->next_bridge);
+       return drm_bridge_detect(dvi->next_bridge, connector);
 }
 
 static const struct drm_connector_funcs tfp410_con_funcs = {
index 0919364e80d1f69b95a99e76daa915bee0b43d45..dcf686c4e73d4084ae005e686a7429e565f55aa2 100644 (file)
@@ -77,6 +77,12 @@ static enum drm_connector_status tpd12s015_detect(struct drm_bridge *bridge)
                return connector_status_disconnected;
 }
 
+static enum drm_connector_status
+tpd12s015_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
+{
+       return tpd12s015_detect(bridge);
+}
+
 static void tpd12s015_hpd_enable(struct drm_bridge *bridge)
 {
        struct tpd12s015_device *tpd = to_tpd12s015(bridge);
@@ -94,7 +100,7 @@ static void tpd12s015_hpd_disable(struct drm_bridge *bridge)
 static const struct drm_bridge_funcs tpd12s015_bridge_funcs = {
        .attach                 = tpd12s015_attach,
        .detach                 = tpd12s015_detach,
-       .detect                 = tpd12s015_detect,
+       .detect                 = tpd12s015_bridge_detect,
        .hpd_enable             = tpd12s015_hpd_enable,
        .hpd_disable            = tpd12s015_hpd_disable,
 };
index 717d96530c3813f4736e5f7f1d9ca5e4702850b2..3e4d561a3a32343d5b31eaadb23fe3d4971de140 100644 (file)
@@ -210,7 +210,7 @@ drm_bridge_connector_detect(struct drm_connector *connector, bool force)
        enum drm_connector_status status;
 
        if (detect) {
-               status = detect->funcs->detect(detect);
+               status = detect->funcs->detect(detect, connector);
 
                if (hdmi)
                        drm_atomic_helper_connector_hdmi_hotplug(connector, status);
index 0b450b334afd82e0460f18fdd248f79d0a2b153d..dd45d9b504d8f2802f4ee93e4b4d893d8535abea 100644 (file)
@@ -1237,12 +1237,13 @@ EXPORT_SYMBOL(drm_atomic_bridge_chain_check);
  * The detection status on success, or connector_status_unknown if the bridge
  * doesn't support output detection.
  */
-enum drm_connector_status drm_bridge_detect(struct drm_bridge *bridge)
+enum drm_connector_status
+drm_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        if (!(bridge->ops & DRM_BRIDGE_OP_DETECT))
                return connector_status_unknown;
 
-       return bridge->funcs->detect(bridge);
+       return bridge->funcs->detect(bridge, connector);
 }
 EXPORT_SYMBOL_GPL(drm_bridge_detect);
 
index a5b10b2545dc64c3042836d8b48c5ea365ac870f..bef6eeb30d3ecc5e45208104e1b79c6fab857365 100644 (file)
@@ -2118,7 +2118,8 @@ static void mtk_dp_update_plugged_status(struct mtk_dp *mtk_dp)
        mutex_unlock(&mtk_dp->update_plugged_status_lock);
 }
 
-static enum drm_connector_status mtk_dp_bdg_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+mtk_dp_bdg_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct mtk_dp *mtk_dp = mtk_dp_from_bridge(bridge);
        enum drm_connector_status ret = connector_status_disconnected;
index 6943cdc77dec8b9eb131260c38ce2f43369d2f79..845fd8aa43c3c91659808d9e6bb78758d1f9b857 100644 (file)
@@ -1174,7 +1174,8 @@ static void mtk_hdmi_hpd_event(bool hpd, struct device *dev)
  * Bridge callbacks
  */
 
-static enum drm_connector_status mtk_hdmi_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+mtk_hdmi_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct mtk_hdmi *hdmi = hdmi_ctx_from_bridge(bridge);
 
index f222d7ccaa88b7d0a2365bdd11842ef88535f663..9a461ab2f32fcc8a1584ae20741679569bfc07ed 100644 (file)
@@ -20,7 +20,8 @@
  * @bridge: Pointer to drm bridge structure
  * Returns: Bridge's 'is connected' status
  */
-static enum drm_connector_status msm_dp_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+msm_dp_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct msm_dp *dp;
 
index 1d02d4e1ed5b30a07d047bf69c3935009acfae86..02cfd46df5940ca86c165f88164b17905b34a47c 100644 (file)
@@ -215,7 +215,7 @@ int msm_hdmi_bridge_init(struct hdmi *hdmi);
 
 void msm_hdmi_hpd_irq(struct drm_bridge *bridge);
 enum drm_connector_status msm_hdmi_bridge_detect(
-               struct drm_bridge *bridge);
+               struct drm_bridge *bridge, struct drm_connector *connector);
 void msm_hdmi_hpd_enable(struct drm_bridge *bridge);
 void msm_hdmi_hpd_disable(struct drm_bridge *bridge);
 
index 53a7ce8cc7bc7b6278eae2cbc42c3fda8d697f6d..46fd58646d32fd0611192595826a3aa680bd0d02 100644 (file)
@@ -475,7 +475,7 @@ msm_hdmi_hotplug_work(struct work_struct *work)
                container_of(work, struct hdmi_bridge, hpd_work);
        struct drm_bridge *bridge = &hdmi_bridge->base;
 
-       drm_bridge_hpd_notify(bridge, drm_bridge_detect(bridge));
+       drm_bridge_hpd_notify(bridge, drm_bridge_detect(bridge, hdmi_bridge->hdmi->connector));
 }
 
 /* initialize bridge */
index 407e6c449ee0d84628e4cae9dd43c1b1f2c0090f..114b0d50770016980631c596fc331d5e58b63446 100644 (file)
@@ -177,8 +177,8 @@ static enum drm_connector_status detect_gpio(struct hdmi *hdmi)
                        connector_status_disconnected;
 }
 
-enum drm_connector_status msm_hdmi_bridge_detect(
-               struct drm_bridge *bridge)
+enum drm_connector_status
+msm_hdmi_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct hdmi_bridge *hdmi_bridge = to_hdmi_bridge(bridge);
        struct hdmi *hdmi = hdmi_bridge->hdmi;
index c7e199ba123ec446899da9bf08f627e619a5b811..b7e3f5dcf8d55e169fc773c2a8fe76791bb7c4b7 100644 (file)
@@ -233,7 +233,7 @@ static bool cdn_dp_check_sink_connection(struct cdn_dp_device *dp)
 }
 
 static enum drm_connector_status
-cdn_dp_bridge_detect(struct drm_bridge *bridge)
+cdn_dp_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct cdn_dp_device *dp = bridge_to_dp(bridge);
        enum drm_connector_status status = connector_status_disconnected;
index e7875b52f298e404a2fea1a1599ba1b551981712..ae4a5ac2299a93a49f87df7604752f6b651c839c 100644 (file)
@@ -450,7 +450,7 @@ struct drm_encoder_helper_funcs rk3066_hdmi_encoder_helper_funcs = {
 };
 
 static enum drm_connector_status
-rk3066_hdmi_bridge_detect(struct drm_bridge *bridge)
+rk3066_hdmi_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct rk3066_hdmi *hdmi = bridge_to_rk3066_hdmi(bridge);
 
index 02e1feaa611596a24217136ee8ce7f5d2f1900a2..588dd5610fa5ab2ee10ed54d94b00326d38c2ee4 100644 (file)
@@ -1720,7 +1720,8 @@ disconnected:
        return connector_status_disconnected;
 }
 
-static enum drm_connector_status zynqmp_dp_bridge_detect(struct drm_bridge *bridge)
+static enum drm_connector_status
+zynqmp_dp_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector)
 {
        struct zynqmp_dp *dp = bridge_to_dp(bridge);
 
index ccead3edf59a18ecc2c0f207027193dcce4fb897..8ed80cad77ec4b40d0aa6159e802a2839d5b8792 100644 (file)
@@ -660,7 +660,8 @@ struct drm_bridge_funcs {
         *
         * drm_connector_status indicating the bridge output status.
         */
-       enum drm_connector_status (*detect)(struct drm_bridge *bridge);
+       enum drm_connector_status (*detect)(struct drm_bridge *bridge,
+                                           struct drm_connector *connector);
 
        /**
         * @get_modes:
@@ -1382,7 +1383,8 @@ drm_atomic_helper_bridge_propagate_bus_fmt(struct drm_bridge *bridge,
                                        u32 output_fmt,
                                        unsigned int *num_input_fmts);
 
-enum drm_connector_status drm_bridge_detect(struct drm_bridge *bridge);
+enum drm_connector_status
+drm_bridge_detect(struct drm_bridge *bridge, struct drm_connector *connector);
 int drm_bridge_get_modes(struct drm_bridge *bridge,
                         struct drm_connector *connector);
 const struct drm_edid *drm_bridge_edid_read(struct drm_bridge *bridge,