Hi, On Fri, Mar 25, 2022 at 7:11 AM Sankeerth Billakanti (QUIC) <quic_sbillaka@xxxxxxxxxxx> wrote: > > > > @@ -114,10 +114,12 @@ struct drm_bridge *dp_bridge_init(struct > > msm_dp *dp_display, struct drm_device * > > > bridge->funcs = &dp_bridge_ops; > > > bridge->type = dp_display->connector_type; > > > > > > - bridge->ops = > > > - DRM_BRIDGE_OP_DETECT | > > > - DRM_BRIDGE_OP_HPD | > > > - DRM_BRIDGE_OP_MODES; > > > + if (bridge->type == DRM_MODE_CONNECTOR_DisplayPort) { > > > > Why can't eDP have bridge ops that are the same? > > > > eDP needs to be reported as always connected. Whichever bridge is setting these ops flags should provide the ops. > The farthest bridge from the encoder with the ops flag set should implement the ops. > drm_bridge_connector_detect reports always connected for eDP. So, we don't need DRM_BRIDGE_OP_DETECT > eDP panel bridge will add DRM_BRIDGE_OP_MODES in drm_panel_bridge_add_typed and will call panel_edp_get_modes. > As we are not supporting HPD for EDP, we are not setting the HPD ops flag. Right. It's Expected that eDP and DP would have different ops. If we define "detect" and "HPD" as whether the display is _physically_ connected, not the status of the poorly-named eDP "HPD" pin, then eDP is _supposed_ to be considered always connected and thus would never support DETECT / HPD. ...and right that the panel is expected to handle the modes. This matches how things have been progressing in Laurent's patches (taken over by Kieran) to add full DP support to sn65dsi86. For instance: https://lore.kernel.org/r/20220317131250.1481275-3-kieran.bingham+renesas@xxxxxxxxxxxxxxxx/ https://lore.kernel.org/r/20220317131250.1481275-4-kieran.bingham+renesas@xxxxxxxxxxxxxxxx/ -Doug