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