On Sun, Jan 22, 2017 at 07:11:09PM +0100, Noralf Trønnes wrote: > Add a CMA version of drm_fb_helper_set_suspend_unlocked(). > > Cc: laurent.pinchart@xxxxxxxxxxxxxxxx > Signed-off-by: Noralf Trønnes <noralf@xxxxxxxxxxx> > --- > drivers/gpu/drm/drm_fb_cma_helper.c | 18 ++++++++++++++++++ > include/drm/drm_fb_cma_helper.h | 2 ++ > 2 files changed, 20 insertions(+) > > diff --git a/drivers/gpu/drm/drm_fb_cma_helper.c b/drivers/gpu/drm/drm_fb_cma_helper.c > index 4364abf..0ef8b28 100644 > --- a/drivers/gpu/drm/drm_fb_cma_helper.c > +++ b/drivers/gpu/drm/drm_fb_cma_helper.c > @@ -622,3 +622,21 @@ void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, int state) > drm_fb_helper_set_suspend(&fbdev_cma->fb_helper, state); > } > EXPORT_SYMBOL(drm_fbdev_cma_set_suspend); Random idea for a cleanup series: Getting rid of drm_fb_helper_set_suspend. I thinkf for almost all drivers we can use the unlocked one, which has the upside that it doesn't stall the resume path on the contended console_lock. Anyway, applied this one here, thanks. -Daniel > + > +/** > + * drm_fbdev_cma_set_suspend_unlocked - wrapper around > + * drm_fb_helper_set_suspend_unlocked > + * @fbdev_cma: The drm_fbdev_cma struct, may be NULL > + * @state: desired state, zero to resume, non-zero to suspend > + * > + * Calls drm_fb_helper_set_suspend, which is a wrapper around > + * fb_set_suspend implemented by fbdev core. > + */ > +void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma, > + int state) > +{ > + if (fbdev_cma) > + drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper, > + state); > +} > +EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked); > diff --git a/include/drm/drm_fb_cma_helper.h b/include/drm/drm_fb_cma_helper.h > index 9f4e34e..8dd6e55 100644 > --- a/include/drm/drm_fb_cma_helper.h > +++ b/include/drm/drm_fb_cma_helper.h > @@ -26,6 +26,8 @@ void drm_fbdev_cma_fini(struct drm_fbdev_cma *fbdev_cma); > void drm_fbdev_cma_restore_mode(struct drm_fbdev_cma *fbdev_cma); > void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma); > void drm_fbdev_cma_set_suspend(struct drm_fbdev_cma *fbdev_cma, int state); > +void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma, > + int state); > > void drm_fb_cma_destroy(struct drm_framebuffer *fb); > int drm_fb_cma_create_handle(struct drm_framebuffer *fb, > -- > 2.10.2 > > _______________________________________________ > dri-devel mailing list > dri-devel@xxxxxxxxxxxxxxxxxxxxx > https://lists.freedesktop.org/mailman/listinfo/dri-devel -- Daniel Vetter Software Engineer, Intel Corporation http://blog.ffwll.ch _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/dri-devel