Message ID | 20190611160844.257498-7-sean@poorly.run (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
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 >
On Tue, Jun 11, 2019 at 07:39:12PM +0200, Daniel Vetter wrote: > 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> Thanks! > > btw somewhat bigger fish to fry, but imo also very much worth it: > Switching over to the generic fbdev emulation. Agreed, this tends to get swept under the rug on CrOS devices since we don't use fbdev :/ > > 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 :-) Sounds good to me, it'll be nice to offload some of the patches I've been carrying. Thanks again for the reviews, Sean > -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 > http://blog.ffwll.ch
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 *