On Fri,  7 Dec 2018 14:47:57 +0100
Paul Kocialkowski <paul.kocialkow...@bootlin.com> wrote:


> diff --git a/drivers/gpu/drm/vc4/vc4_kms.c b/drivers/gpu/drm/vc4/vc4_kms.c
> index f3fd34faa812..e80b1ad5c938 100644
> --- a/drivers/gpu/drm/vc4/vc4_kms.c
> +++ b/drivers/gpu/drm/vc4/vc4_kms.c
> @@ -479,6 +479,7 @@ static const struct drm_private_state_funcs 
> vc4_load_tracker_state_funcs = {
>  static int
>  vc4_atomic_check(struct drm_device *dev, struct drm_atomic_state *state)
>  {
> +     struct vc4_dev *vc4 = to_vc4_dev(dev);
>       int ret;
>  
>       ret = vc4_ctm_atomic_check(dev, state);
> @@ -489,7 +490,10 @@ vc4_atomic_check(struct drm_device *dev, struct 
> drm_atomic_state *state)
>       if (ret)
>               return ret;
>  
> -     return vc4_load_tracker_atomic_check(state);
> +     if (vc4->load_tracker_enabled)
> +             return vc4_load_tracker_atomic_check(state);

Even if we don't return an error when ->load_tracker_enabled is false,
we should keep updating the ->{hvs,membus}_load state, otherwise those
fields will contain bad values if we activate the load tracker after
the planes have been enabled.

I suggest moving this test in vc4_load_tracker_atomic_check() just
before

        if (load_state->membus_load > SZ_1G + SZ_512M)
_______________________________________________
dri-devel mailing list
dri-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/dri-devel

Reply via email to