lkml.org 
[lkml]   [2020]   [Jul]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.7 104/112] drm/amd/display: Only revalidate bandwidth on medium and fast updates
    Date
    From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>

    commit 6eb3cf2e06d22b2b08e6b0ab48cb9c05a8e1a107 upstream.

    [Why]
    Changes that are fast don't require updating DLG parameters making
    this call unnecessary. Considering this is an expensive call it should
    not be done on every flip.

    DML touches clocks, p-state support, DLG params and a few other DC
    internal flags and these aren't expected during fast. A hang has been
    reported with this change when called on every flip which suggests that
    modifying these fields is not recommended behavior on fast updates.

    [How]
    Guard the validation to only happen if update type isn't FAST.

    Bug: https://gitlab.freedesktop.org/drm/amd/-/issues/1191
    Fixes: a24eaa5c51255b ("drm/amd/display: Revalidate bandwidth before commiting DC updates")
    Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
    Acked-by: Alex Deucher <alexander.deucher@amd.com>
    Reviewed-by: Roman Li <Roman.Li@amd.com>
    Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
    Cc: stable@vger.kernel.org
    Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

    ---
    drivers/gpu/drm/amd/display/dc/core/dc.c | 10 ++++++----
    1 file changed, 6 insertions(+), 4 deletions(-)

    --- a/drivers/gpu/drm/amd/display/dc/core/dc.c
    +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
    @@ -2533,10 +2533,12 @@ void dc_commit_updates_for_stream(struct

    copy_stream_update_to_stream(dc, context, stream, stream_update);

    - if (!dc->res_pool->funcs->validate_bandwidth(dc, context, false)) {
    - DC_ERROR("Mode validation failed for stream update!\n");
    - dc_release_state(context);
    - return;
    + if (update_type > UPDATE_TYPE_FAST) {
    + if (!dc->res_pool->funcs->validate_bandwidth(dc, context, false)) {
    + DC_ERROR("Mode validation failed for stream update!\n");
    + dc_release_state(context);
    + return;
    + }
    }

    commit_planes_for_stream(

    \
     
     \ /
      Last update: 2020-07-07 17:27    [W:6.120 / U:0.004 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site