This patch is

Reviewed-by: Lyude Paul <ly...@redhat.com>

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....@amd.com>
> ---
>  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@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/amd-gfx

Reply via email to