[PATCH] drm/amd/display: Only revalidate bandwidth on medium and fast updates

Alex Deucher alexdeucher at gmail.com
Mon Jun 29 21:58:55 UTC 2020


On Mon, Jun 29, 2020 at 4:49 PM Nicholas Kazlauskas
<nicholas.kazlauskas at amd.com> wrote:
>
> [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: e1995f0909e3 ("drm/amd/display: Revalidate bandwidth before commiting DC updates")
> Cc: Hersen Wu <hersenxs.wu at amd.com>
> Cc: Bhawanpreet Lakha <Bhawanpreet.Lakha at amd.com>
> Cc: Rodrigo Siqueira <Rodrigo.Siqueira at amd.com>
> Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas at amd.com>

Acked-by: Alex Deucher <alexander.deucher at amd.com>

> ---
>  drivers/gpu/drm/amd/display/dc/core/dc.c | 10 ++++++----
>  1 file changed, 6 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/display/dc/core/dc.c b/drivers/gpu/drm/amd/display/dc/core/dc.c
> index 67402d75e67e..942ceb0f6383 100644
> --- a/drivers/gpu/drm/amd/display/dc/core/dc.c
> +++ b/drivers/gpu/drm/amd/display/dc/core/dc.c
> @@ -2607,10 +2607,12 @@ void dc_commit_updates_for_stream(struct dc *dc,
>
>         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(
> --
> 2.25.1
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx


More information about the amd-gfx mailing list