drm/rcar-du: Convert drm_atomic_helper_suspend/resume()
convert drm_atomic_helper_suspend/resume() to use drm_mode_config_helper_suspend/resume(). remove suspend_state field from the rcar_du_device structure as it is no more required. With this conversion, also drm_fbdev_cma_set_suspend_unlocked() will left with no consumer. So this function can be removed. Signed-off-by: Souptick Joarder <jrdr.linux@gmail.com> Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch> Link: https://patchwork.freedesktop.org/patch/msgid/20180918163903.GA11172@jordon-HP-15-Notebook-PC
This commit is contained in:
parent
43cf1fc0e2
commit
8dc830e4cf
|
@ -221,21 +221,3 @@ void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma)
|
||||||
drm_fb_helper_hotplug_event(&fbdev_cma->fb_helper);
|
drm_fb_helper_hotplug_event(&fbdev_cma->fb_helper);
|
||||||
}
|
}
|
||||||
EXPORT_SYMBOL_GPL(drm_fbdev_cma_hotplug_event);
|
EXPORT_SYMBOL_GPL(drm_fbdev_cma_hotplug_event);
|
||||||
|
|
||||||
/**
|
|
||||||
* 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,
|
|
||||||
bool state)
|
|
||||||
{
|
|
||||||
if (fbdev_cma)
|
|
||||||
drm_fb_helper_set_suspend_unlocked(&fbdev_cma->fb_helper,
|
|
||||||
state);
|
|
||||||
}
|
|
||||||
EXPORT_SYMBOL(drm_fbdev_cma_set_suspend_unlocked);
|
|
||||||
|
|
|
@ -404,32 +404,15 @@ static struct drm_driver rcar_du_driver = {
|
||||||
static int rcar_du_pm_suspend(struct device *dev)
|
static int rcar_du_pm_suspend(struct device *dev)
|
||||||
{
|
{
|
||||||
struct rcar_du_device *rcdu = dev_get_drvdata(dev);
|
struct rcar_du_device *rcdu = dev_get_drvdata(dev);
|
||||||
struct drm_atomic_state *state;
|
|
||||||
|
|
||||||
drm_kms_helper_poll_disable(rcdu->ddev);
|
return drm_mode_config_helper_suspend(rcdu->ddev);
|
||||||
drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, true);
|
|
||||||
|
|
||||||
state = drm_atomic_helper_suspend(rcdu->ddev);
|
|
||||||
if (IS_ERR(state)) {
|
|
||||||
drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
|
|
||||||
drm_kms_helper_poll_enable(rcdu->ddev);
|
|
||||||
return PTR_ERR(state);
|
|
||||||
}
|
|
||||||
|
|
||||||
rcdu->suspend_state = state;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static int rcar_du_pm_resume(struct device *dev)
|
static int rcar_du_pm_resume(struct device *dev)
|
||||||
{
|
{
|
||||||
struct rcar_du_device *rcdu = dev_get_drvdata(dev);
|
struct rcar_du_device *rcdu = dev_get_drvdata(dev);
|
||||||
|
|
||||||
drm_atomic_helper_resume(rcdu->ddev, rcdu->suspend_state);
|
return drm_mode_config_helper_resume(rcdu->ddev);
|
||||||
drm_fbdev_cma_set_suspend_unlocked(rcdu->fbdev, false);
|
|
||||||
drm_kms_helper_poll_enable(rcdu->ddev);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -79,7 +79,6 @@ struct rcar_du_device {
|
||||||
|
|
||||||
struct drm_device *ddev;
|
struct drm_device *ddev;
|
||||||
struct drm_fbdev_cma *fbdev;
|
struct drm_fbdev_cma *fbdev;
|
||||||
struct drm_atomic_state *suspend_state;
|
|
||||||
|
|
||||||
struct rcar_du_crtc crtcs[RCAR_DU_MAX_CRTCS];
|
struct rcar_du_crtc crtcs[RCAR_DU_MAX_CRTCS];
|
||||||
unsigned int num_crtcs;
|
unsigned int num_crtcs;
|
||||||
|
|
|
@ -26,8 +26,6 @@ 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_restore_mode(struct drm_fbdev_cma *fbdev_cma);
|
||||||
void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
|
void drm_fbdev_cma_hotplug_event(struct drm_fbdev_cma *fbdev_cma);
|
||||||
void drm_fbdev_cma_set_suspend_unlocked(struct drm_fbdev_cma *fbdev_cma,
|
|
||||||
bool state);
|
|
||||||
|
|
||||||
struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
|
struct drm_gem_cma_object *drm_fb_cma_get_gem_obj(struct drm_framebuffer *fb,
|
||||||
unsigned int plane);
|
unsigned int plane);
|
||||||
|
|
Loading…
Reference in New Issue