[Intel-gfx] [PATCH v3 2/2] drm/msm/dp: Implement oob_hotplug_event()
Bjorn Andersson
bjorn.andersson at linaro.org
Sat Apr 23 04:12:16 UTC 2022
On Fri 22 Apr 16:07 PDT 2022, Dmitry Baryshkov wrote:
> On 23/04/2022 01:32, Bjorn Andersson wrote:
[..]
> > diff --git a/drivers/gpu/drm/msm/dp/dp_drm.c b/drivers/gpu/drm/msm/dp/dp_drm.c
> > index 80f59cf99089..76904b1601b1 100644
> > --- a/drivers/gpu/drm/msm/dp/dp_drm.c
> > +++ b/drivers/gpu/drm/msm/dp/dp_drm.c
> > @@ -123,6 +123,14 @@ static enum drm_mode_status dp_connector_mode_valid(
> > return dp_display_validate_mode(dp_disp, mode->clock);
> > }
> > +static void dp_oob_hotplug_event(struct drm_connector *connector,
> > + enum drm_connector_hpd_state hpd_state)
> > +{
> > + struct msm_dp *dp_disp = to_dp_connector(connector)->dp_display;
> > +
> > + dp_display_oob_hotplug_event(dp_disp, hpd_state);
> > +}
> > +
> > static const struct drm_connector_funcs dp_connector_funcs = {
> > .detect = dp_connector_detect,
> > .fill_modes = drm_helper_probe_single_connector_modes,
> > @@ -130,6 +138,7 @@ static const struct drm_connector_funcs dp_connector_funcs = {
> > .reset = drm_atomic_helper_connector_reset,
> > .atomic_duplicate_state = drm_atomic_helper_connector_duplicate_state,
> > .atomic_destroy_state = drm_atomic_helper_connector_destroy_state,
> > + .oob_hotplug_event = dp_oob_hotplug_event,
>
> We were (are) going to switch dp driver to use drm_bridge_connector (to fix
> support for bridge chains, eDP panels, etc.
>
> So these changes must be ported to drm_bridge_connector (or we must
> abandon/defer the idea of using the bridge_connector).
>
> For the oob_hotplug_event() callback proper support might be as simple as
> calling drm_bridge_connector_hpd_cb().
>
Are you saying that you have code ready and being merged into linux-next
that I should redesign this on top of, or that you're planning to write
some code in the future and DisplayPort support have to wait until then?
> > };
> > static const struct drm_connector_helper_funcs dp_connector_helper_funcs = {
> > @@ -160,6 +169,8 @@ struct drm_connector *dp_drm_connector_init(struct msm_dp *dp_display)
> > if (ret)
> > return ERR_PTR(ret);
> > + connector->fwnode = fwnode_handle_get(dev_fwnode(dp_display->dev));
> > +
>
> This would be much more interesting. Supporting this in a generic way might
> be tricky. But we can still set the fwnode manually from the dp code.
>
There's a slight mishmash here, because the device used to initialize
the connector is the drm_dev, but we need the actual fwnode of the DP
device associated with the connector.
So I think this is how it needs to be done.
Regards,
Bjorn
More information about the Intel-gfx
mailing list