Message ID | 20230919095659.10742-1-ville.syrjala@linux.intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Revert "drm/i915/mst: Populate connector->ddc" | expand |
On Tue, 19 Sep 2023, Ville Syrjala <ville.syrjala@linux.intel.com> wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > This reverts commit 959fb1a686528df1b8fb0cc7bec8ff851b1594a5. > > Looks like the core MST code might not call i2c_adapter() for us > in time, and thus creating the ddc symlink will fail. This will > in fact fail the entire connector registration, but the MST code > doesn't really seem to care about that and blindly plows ahead. > All we may get in the logs is a nearly back to back > register+unregister debug messages: > [drm:drm_dp_mst_connector_late_register [drm_display_helper]] registering DPMST remote bus for card0-DP-7 > [drm:intel_dp_hpd_pulse [i915]] DPRX ESI: 42 00 00 02 > [drm:drm_dp_mst_connector_early_unregister [drm_display_helper]] unregistering DPMST remote bus for card0-DP-7 > > Untangling the initialization order may take some real work, > so let's just revert the ddc symlink addition for now... > > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/9357 > Fixes: 959fb1a68652 ("drm/i915/mst: Populate connector->ddc") > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Acked-by: Jani Nikula <jani.nikula@intel.com> > --- > drivers/gpu/drm/i915/display/intel_dp_mst.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c > index 80411ce85fc0..ff3accebf0a8 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c > @@ -1110,10 +1110,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo > drm_dp_mst_get_port_malloc(port); > > connector = &intel_connector->base; > - ret = drm_connector_init_with_ddc(dev, connector, > - &intel_dp_mst_connector_funcs, > - DRM_MODE_CONNECTOR_DisplayPort, > - &port->aux.ddc); > + ret = drm_connector_init(dev, connector, &intel_dp_mst_connector_funcs, > + DRM_MODE_CONNECTOR_DisplayPort); > if (ret) { > drm_dp_mst_put_port_malloc(port); > intel_connector_free(intel_connector);
On 9/19/2023 3:26 PM, Ville Syrjala wrote: > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > This reverts commit 959fb1a686528df1b8fb0cc7bec8ff851b1594a5. > > Looks like the core MST code might not call i2c_adapter() for us > in time, and thus creating the ddc symlink will fail. This will > in fact fail the entire connector registration, but the MST code > doesn't really seem to care about that and blindly plows ahead. > All we may get in the logs is a nearly back to back > register+unregister debug messages: > [drm:drm_dp_mst_connector_late_register [drm_display_helper]] registering DPMST remote bus for card0-DP-7 > [drm:intel_dp_hpd_pulse [i915]] DPRX ESI: 42 00 00 02 > [drm:drm_dp_mst_connector_early_unregister [drm_display_helper]] unregistering DPMST remote bus for card0-DP-7 > > Untangling the initialization order may take some real work, > so let's just revert the ddc symlink addition for now... > > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/9357 > Fixes: 959fb1a68652 ("drm/i915/mst: Populate connector->ddc") > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Tested-by: Karthik B S <karthik.b.s@intel.com> > --- > drivers/gpu/drm/i915/display/intel_dp_mst.c | 6 ++---- > 1 file changed, 2 insertions(+), 4 deletions(-) > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c > index 80411ce85fc0..ff3accebf0a8 100644 > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c > @@ -1110,10 +1110,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo > drm_dp_mst_get_port_malloc(port); > > connector = &intel_connector->base; > - ret = drm_connector_init_with_ddc(dev, connector, > - &intel_dp_mst_connector_funcs, > - DRM_MODE_CONNECTOR_DisplayPort, > - &port->aux.ddc); > + ret = drm_connector_init(dev, connector, &intel_dp_mst_connector_funcs, > + DRM_MODE_CONNECTOR_DisplayPort); > if (ret) { > drm_dp_mst_put_port_malloc(port); > intel_connector_free(intel_connector);
On Thu, Sep 21, 2023 at 12:28:53PM +0530, Karthik B S wrote: > > On 9/19/2023 3:26 PM, Ville Syrjala wrote: > > From: Ville Syrjälä <ville.syrjala@linux.intel.com> > > > > This reverts commit 959fb1a686528df1b8fb0cc7bec8ff851b1594a5. > > > > Looks like the core MST code might not call i2c_adapter() for us > > in time, and thus creating the ddc symlink will fail. This will > > in fact fail the entire connector registration, but the MST code > > doesn't really seem to care about that and blindly plows ahead. > > All we may get in the logs is a nearly back to back > > register+unregister debug messages: > > [drm:drm_dp_mst_connector_late_register [drm_display_helper]] registering DPMST remote bus for card0-DP-7 > > [drm:intel_dp_hpd_pulse [i915]] DPRX ESI: 42 00 00 02 > > [drm:drm_dp_mst_connector_early_unregister [drm_display_helper]] unregistering DPMST remote bus for card0-DP-7 > > > > Untangling the initialization order may take some real work, > > so let's just revert the ddc symlink addition for now... > > > > Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/9357 > > Fixes: 959fb1a68652 ("drm/i915/mst: Populate connector->ddc") > > Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> > Tested-by: Karthik B S <karthik.b.s@intel.com> I assume that means it helped with the actual problem -> pushed to din Thanks. > > --- > > drivers/gpu/drm/i915/display/intel_dp_mst.c | 6 ++---- > > 1 file changed, 2 insertions(+), 4 deletions(-) > > > > diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c > > index 80411ce85fc0..ff3accebf0a8 100644 > > --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c > > +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c > > @@ -1110,10 +1110,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo > > drm_dp_mst_get_port_malloc(port); > > > > connector = &intel_connector->base; > > - ret = drm_connector_init_with_ddc(dev, connector, > > - &intel_dp_mst_connector_funcs, > > - DRM_MODE_CONNECTOR_DisplayPort, > > - &port->aux.ddc); > > + ret = drm_connector_init(dev, connector, &intel_dp_mst_connector_funcs, > > + DRM_MODE_CONNECTOR_DisplayPort); > > if (ret) { > > drm_dp_mst_put_port_malloc(port); > > intel_connector_free(intel_connector);
diff --git a/drivers/gpu/drm/i915/display/intel_dp_mst.c b/drivers/gpu/drm/i915/display/intel_dp_mst.c index 80411ce85fc0..ff3accebf0a8 100644 --- a/drivers/gpu/drm/i915/display/intel_dp_mst.c +++ b/drivers/gpu/drm/i915/display/intel_dp_mst.c @@ -1110,10 +1110,8 @@ static struct drm_connector *intel_dp_add_mst_connector(struct drm_dp_mst_topolo drm_dp_mst_get_port_malloc(port); connector = &intel_connector->base; - ret = drm_connector_init_with_ddc(dev, connector, - &intel_dp_mst_connector_funcs, - DRM_MODE_CONNECTOR_DisplayPort, - &port->aux.ddc); + ret = drm_connector_init(dev, connector, &intel_dp_mst_connector_funcs, + DRM_MODE_CONNECTOR_DisplayPort); if (ret) { drm_dp_mst_put_port_malloc(port); intel_connector_free(intel_connector);