This patch is Reviewed-by: Lyude Paul <lyude@xxxxxxxxxx> On Tue, 2018-10-30 at 18:09 -0400, Jerry (Fangzhi) Zuo wrote: > [why] > It is not correct to touch aconnector within atomic_check. > > [How] > It was added as workaround before, and no longer needed. > > Signed-off-by: Jerry (Fangzhi) Zuo <Jerry.Zuo@xxxxxxx> > --- > drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 15 +++------- > .../amd/display/amdgpu_dm/amdgpu_dm_mst_types.c | 34 ----------------- > ----- > .../amd/display/amdgpu_dm/amdgpu_dm_mst_types.h | 1 - > 3 files changed, 4 insertions(+), 46 deletions(-) > > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > index f8ec8a146663..6c2441bfce90 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c > @@ -2760,18 +2760,11 @@ create_stream_for_sink(struct amdgpu_dm_connector > *aconnector, > drm_connector = &aconnector->base; > > if (!aconnector->dc_sink) { > - /* > - * Create dc_sink when necessary to MST > - * Don't apply fake_sink to MST > - */ > - if (aconnector->mst_port) { > - dm_dp_mst_dc_sink_create(drm_connector); > - return stream; > + if (!aconnector->mst_port) { > + sink = create_fake_sink(aconnector); > + if (!sink) > + return stream; > } > - > - sink = create_fake_sink(aconnector); > - if (!sink) > - return stream; > } else { > sink = aconnector->dc_sink; > } > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c > b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c > index 67683645ce2c..744d97cc0d39 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.c > @@ -205,40 +205,6 @@ static const struct drm_connector_funcs > dm_dp_mst_connector_funcs = { > .atomic_get_property = amdgpu_dm_connector_atomic_get_property > }; > > -void dm_dp_mst_dc_sink_create(struct drm_connector *connector) > -{ > - struct amdgpu_dm_connector *aconnector = > to_amdgpu_dm_connector(connector); > - struct dc_sink *dc_sink; > - struct dc_sink_init_data init_params = { > - .link = aconnector->dc_link, > - .sink_signal = SIGNAL_TYPE_DISPLAY_PORT_MST }; > - > - /* FIXME none of this is safe. we shouldn't touch aconnector here in > - * atomic_check > - */ > - > - /* > - * TODO: Need to further figure out why ddc.algo is NULL while MST > port exists > - */ > - if (!aconnector->port || !aconnector->port->aux.ddc.algo) > - return; > - > - ASSERT(aconnector->edid); > - > - dc_sink = dc_link_add_remote_sink( > - aconnector->dc_link, > - (uint8_t *)aconnector->edid, > - (aconnector->edid->extensions + 1) * EDID_LENGTH, > - &init_params); > - > - dc_sink->priv = aconnector; > - aconnector->dc_sink = dc_sink; > - > - if (aconnector->dc_sink) > - amdgpu_dm_update_freesync_caps( > - connector, aconnector->edid); > -} > - > static int dm_dp_mst_get_modes(struct drm_connector *connector) > { > struct amdgpu_dm_connector *aconnector = > to_amdgpu_dm_connector(connector); > diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h > b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h > index 8cf51da26657..2da851b40042 100644 > --- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h > +++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm_mst_types.h > @@ -31,6 +31,5 @@ struct amdgpu_dm_connector; > > void amdgpu_dm_initialize_dp_connector(struct amdgpu_display_manager *dm, > struct amdgpu_dm_connector > *aconnector); > -void dm_dp_mst_dc_sink_create(struct drm_connector *connector); > > #endif -- Cheers, Lyude Paul _______________________________________________ amd-gfx mailing list amd-gfx@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/amd-gfx