lkml.org 
[lkml]   [2019]   [Aug]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.2 069/144] drm/amd/display: put back front end initialization sequence
    Date
    [ Upstream commit feb7eb522e0a7a22c1e60d386bd3c3bfa1d5e4f7 ]

    [Why]
    Seamless boot optimization removed proper front end power off sequence.
    In driver disable enable case, this causes driver to power gate hubp
    and dpp while there is still memory fetching going on, this can cause
    invalid memory requests to be generated which will hang data fabric.

    [How]
    Put back proper front end power off sequence

    Signed-off-by: Eric Yang <Eric.Yang2@amd.com>
    Reviewed-by: Anthony Koo <Anthony.Koo@amd.com>
    Acked-by: Leo Li <sunpeng.li@amd.com>
    Acked-by: Tony Cheng <Tony.Cheng@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    .../drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c | 15 +--------------
    1 file changed, 1 insertion(+), 14 deletions(-)

    diff --git a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
    index c7b4c3048b71d..5cc5dabf4d652 100644
    --- a/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
    +++ b/drivers/gpu/drm/amd/display/dc/dcn10/dcn10_hw_sequencer.c
    @@ -1120,16 +1120,7 @@ static void dcn10_init_hw(struct dc *dc)
    * everything down.
    */
    if (dcb->funcs->is_accelerated_mode(dcb) || dc->config.power_down_display_on_boot) {
    - for (i = 0; i < dc->res_pool->pipe_count; i++) {
    - struct hubp *hubp = dc->res_pool->hubps[i];
    - struct dpp *dpp = dc->res_pool->dpps[i];
    -
    - hubp->funcs->hubp_init(hubp);
    - dc->res_pool->opps[i]->mpc_tree_params.opp_id = dc->res_pool->opps[i]->inst;
    - plane_atomic_power_down(dc, dpp, hubp);
    - }
    -
    - apply_DEGVIDCN10_253_wa(dc);
    + dc->hwss.init_pipes(dc, dc->current_state);
    }

    for (i = 0; i < dc->res_pool->audio_count; i++) {
    @@ -1298,10 +1289,6 @@ static bool dcn10_set_input_transfer_func(struct pipe_ctx *pipe_ctx,
    return result;
    }

    -
    -
    -
    -
    static bool
    dcn10_set_output_transfer_func(struct pipe_ctx *pipe_ctx,
    const struct dc_stream_state *stream)
    --
    2.20.1


    \
     
     \ /
      Last update: 2019-08-14 19:26    [W:5.105 / U:0.012 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site