Message ID | 20170122181117.8210-2-noralf@tronnes.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@ideasonboard.com > Signed-off-by: Noralf Trønnes <noralf@tronnes.org> > --- > 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@lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/dri-devel
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); + +/** + * 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,
Add a CMA version of drm_fb_helper_set_suspend_unlocked(). Cc: laurent.pinchart@ideasonboard.com Signed-off-by: Noralf Trønnes <noralf@tronnes.org> --- drivers/gpu/drm/drm_fb_cma_helper.c | 18 ++++++++++++++++++ include/drm/drm_fb_cma_helper.h | 2 ++ 2 files changed, 20 insertions(+)