Message ID | 20201120211306.325841-1-l.stach@pengutronix.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm: mxsfb: fix fence synchronization | expand |
On Fr, 2020-11-20 at 22:13 +0100, Lucas Stach wrote: > The conversion away from the simple display pipeline helper missed > to convert the prepare_fb plane callback, so no fences are attached to > the atomic state, breaking synchronization with other devices. Fix > this by plugging in the drm_gem_fb_prepare_fb helper function. This is a regression in the 5.10 release series, so I would appreciate if someone could review/ack this patch so I can smash it into drm-misc-fixes. Regards, Lucas > Fixes: ae1ed009328 (drm: mxsfb: Stop using DRM simple display pipeline helper) > Signed-off-by: Lucas Stach <l.stach@pengutronix.de> > --- > drivers/gpu/drm/mxsfb/mxsfb_kms.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c > index b721b8b262ce..4d556532281a 100644 > --- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c > +++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c > @@ -22,6 +22,7 @@ > #include <drm/drm_fb_cma_helper.h> > #include <drm/drm_fourcc.h> > #include <drm/drm_gem_cma_helper.h> > +#include <drm/drm_gem_framebuffer_helper.h> > #include <drm/drm_plane.h> > #include <drm/drm_plane_helper.h> > #include <drm/drm_vblank.h> > @@ -485,11 +486,13 @@ static void mxsfb_plane_overlay_atomic_update(struct drm_plane *plane, > } > > static const struct drm_plane_helper_funcs mxsfb_plane_primary_helper_funcs = { > + .prepare_fb = drm_gem_fb_prepare_fb, > .atomic_check = mxsfb_plane_atomic_check, > .atomic_update = mxsfb_plane_primary_atomic_update, > }; > > static const struct drm_plane_helper_funcs mxsfb_plane_overlay_helper_funcs = { > + .prepare_fb = drm_gem_fb_prepare_fb, > .atomic_check = mxsfb_plane_atomic_check, > .atomic_update = mxsfb_plane_overlay_atomic_update, > };
On 2020-11-26 11:18, Lucas Stach wrote: > On Fr, 2020-11-20 at 22:13 +0100, Lucas Stach wrote: >> The conversion away from the simple display pipeline helper missed >> to convert the prepare_fb plane callback, so no fences are attached to >> the atomic state, breaking synchronization with other devices. Fix >> this by plugging in the drm_gem_fb_prepare_fb helper function. > > This is a regression in the 5.10 release series, so I would appreciate > if someone could review/ack this patch so I can smash it into > drm-misc-fixes. Reviewed-by: Stefan Agner <stefan@agner.ch> I'll push it today. -- Stefan > > Regards, > Lucas > >> Fixes: ae1ed009328 (drm: mxsfb: Stop using DRM simple display pipeline helper) >> Signed-off-by: Lucas Stach <l.stach@pengutronix.de> >> --- >> drivers/gpu/drm/mxsfb/mxsfb_kms.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c >> index b721b8b262ce..4d556532281a 100644 >> --- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c >> +++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c >> @@ -22,6 +22,7 @@ >> #include <drm/drm_fb_cma_helper.h> >> #include <drm/drm_fourcc.h> >> #include <drm/drm_gem_cma_helper.h> >> +#include <drm/drm_gem_framebuffer_helper.h> >> #include <drm/drm_plane.h> >> #include <drm/drm_plane_helper.h> >> #include <drm/drm_vblank.h> >> @@ -485,11 +486,13 @@ static void mxsfb_plane_overlay_atomic_update(struct drm_plane *plane, >> } >> >> static const struct drm_plane_helper_funcs mxsfb_plane_primary_helper_funcs = { >> + .prepare_fb = drm_gem_fb_prepare_fb, >> .atomic_check = mxsfb_plane_atomic_check, >> .atomic_update = mxsfb_plane_primary_atomic_update, >> }; >> >> static const struct drm_plane_helper_funcs mxsfb_plane_overlay_helper_funcs = { >> + .prepare_fb = drm_gem_fb_prepare_fb, >> .atomic_check = mxsfb_plane_atomic_check, >> .atomic_update = mxsfb_plane_overlay_atomic_update, >> };
diff --git a/drivers/gpu/drm/mxsfb/mxsfb_kms.c b/drivers/gpu/drm/mxsfb/mxsfb_kms.c index b721b8b262ce..4d556532281a 100644 --- a/drivers/gpu/drm/mxsfb/mxsfb_kms.c +++ b/drivers/gpu/drm/mxsfb/mxsfb_kms.c @@ -22,6 +22,7 @@ #include <drm/drm_fb_cma_helper.h> #include <drm/drm_fourcc.h> #include <drm/drm_gem_cma_helper.h> +#include <drm/drm_gem_framebuffer_helper.h> #include <drm/drm_plane.h> #include <drm/drm_plane_helper.h> #include <drm/drm_vblank.h> @@ -485,11 +486,13 @@ static void mxsfb_plane_overlay_atomic_update(struct drm_plane *plane, } static const struct drm_plane_helper_funcs mxsfb_plane_primary_helper_funcs = { + .prepare_fb = drm_gem_fb_prepare_fb, .atomic_check = mxsfb_plane_atomic_check, .atomic_update = mxsfb_plane_primary_atomic_update, }; static const struct drm_plane_helper_funcs mxsfb_plane_overlay_helper_funcs = { + .prepare_fb = drm_gem_fb_prepare_fb, .atomic_check = mxsfb_plane_atomic_check, .atomic_update = mxsfb_plane_overlay_atomic_update, };
The conversion away from the simple display pipeline helper missed to convert the prepare_fb plane callback, so no fences are attached to the atomic state, breaking synchronization with other devices. Fix this by plugging in the drm_gem_fb_prepare_fb helper function. Fixes: ae1ed009328 (drm: mxsfb: Stop using DRM simple display pipeline helper) Signed-off-by: Lucas Stach <l.stach@pengutronix.de> --- drivers/gpu/drm/mxsfb/mxsfb_kms.c | 3 +++ 1 file changed, 3 insertions(+)