Re: [PATCH v5 06/11] drm/rockchip: Use dirtyfb helper

Daniel Vetter
2019-06-11T17:39:38Z

On Tue, Jun 11, 2019 at 12:08:20PM -0400, Sean Paul wrote:
> From: Sean Paul <seanpaul@chromium.org>
>
> Instead of flushing all vops every time we get a dirtyfb call, use the
> damage helper to kick off an atomic commit. Even though we don't use
> damage clips, the helper commit will force us through the normal
> psr_inhibit_get/put sequence.
>
> Changes in v3:
> - Added to the set
> Changes in v4:
> - None
> Changes in v5:
> - None
>
> Link to v3: https://patchwork.freedesktop.org/patch/msgid/20190502194956.218441-7-sean@poorly.run
> Link to v4: https://patchwork.freedesktop.org/patch/msgid/20190508160920.144739-7-sean@poorly.run
>
> Suggested-by: Daniel Vetter <daniel@ffwll.ch>
> Tested-by: Heiko Stuebner <heiko@sntech.de>
> Signed-off-by: Sean Paul <seanpaul@chromium.org>

Reviewed-by: Daniel Vetter <daniel.vetter@ffwll.ch>

btw somewhat bigger fish to fry, but imo also very much worth it:
Switching over to the generic fbdev emulation.

Also, since everything up to this one is reviewed I think would be good to
land that part already. So I can go around and haggle this to other
drivers :-)
-Daniel

> ---
> drivers/gpu/drm/rockchip/rockchip_drm_fb.c | 13 ++-----------
> 1 file changed, 2 insertions(+), 11 deletions(-)
>
> diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> index 31030cf81bc97..a888e31aa545a 100644
> --- a/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> +++ b/drivers/gpu/drm/rockchip/rockchip_drm_fb.c
> @@ -16,6 +16,7 @@
> #include <drm/drm.h>
> #include <drm/drmP.h>
> #include <drm/drm_atomic.h>
> +#include <drm/drm_damage_helper.h>
> #include <drm/drm_fb_helper.h>
> #include <drm/drm_gem_framebuffer_helper.h>
> #include <drm/drm_probe_helper.h>
> @@ -25,20 +26,10 @@
> #include "rockchip_drm_gem.h"
> #include "rockchip_drm_psr.h"
>
> -static int rockchip_drm_fb_dirty(struct drm_framebuffer *fb,
> - struct drm_file *file,
> - unsigned int flags, unsigned int color,
> - struct drm_clip_rect *clips,
> - unsigned int num_clips)
> -{
> - rockchip_drm_psr_flush_all(fb->dev);
> - return 0;
> -}
> -
> static const struct drm_framebuffer_funcs rockchip_drm_fb_funcs = {
> .destroy = drm_gem_fb_destroy,
> .create_handle = drm_gem_fb_create_handle,
> - .dirty = rockchip_drm_fb_dirty,
> + .dirty = drm_atomic_helper_dirtyfb,
> };
>
> static struct drm_framebuffer *
> --
> Sean Paul, Software Engineer, Google / Chromium OS
>

--
Daniel Vetter
Software Engineer, Intel Corporation