diff options
Diffstat (limited to 'drivers/gpu/drm/arm/hdlcd_drv.c')
| -rw-r--r-- | drivers/gpu/drm/arm/hdlcd_drv.c | 9 | 
1 files changed, 6 insertions, 3 deletions
| diff --git a/drivers/gpu/drm/arm/hdlcd_drv.c b/drivers/gpu/drm/arm/hdlcd_drv.c index 764d0c83710c..0afb53b1f4e9 100644 --- a/drivers/gpu/drm/arm/hdlcd_drv.c +++ b/drivers/gpu/drm/arm/hdlcd_drv.c @@ -13,6 +13,7 @@  #include <linux/spinlock.h>  #include <linux/clk.h>  #include <linux/component.h> +#include <linux/console.h>  #include <linux/list.h>  #include <linux/of_graph.h>  #include <linux/of_reserved_mem.h> @@ -354,7 +355,7 @@ err_unload:  err_free:  	drm_mode_config_cleanup(drm);  	dev_set_drvdata(dev, NULL); -	drm_dev_unref(drm); +	drm_dev_put(drm);  	return ret;  } @@ -379,7 +380,7 @@ static void hdlcd_drm_unbind(struct device *dev)  	pm_runtime_disable(drm->dev);  	of_reserved_mem_device_release(drm->dev);  	drm_mode_config_cleanup(drm); -	drm_dev_unref(drm); +	drm_dev_put(drm);  	drm->dev_private = NULL;  	dev_set_drvdata(dev, NULL);  } @@ -432,9 +433,11 @@ static int __maybe_unused hdlcd_pm_suspend(struct device *dev)  		return 0;  	drm_kms_helper_poll_disable(drm); +	drm_fbdev_cma_set_suspend_unlocked(hdlcd->fbdev, 1);  	hdlcd->state = drm_atomic_helper_suspend(drm);  	if (IS_ERR(hdlcd->state)) { +		drm_fbdev_cma_set_suspend_unlocked(hdlcd->fbdev, 0);  		drm_kms_helper_poll_enable(drm);  		return PTR_ERR(hdlcd->state);  	} @@ -451,8 +454,8 @@ static int __maybe_unused hdlcd_pm_resume(struct device *dev)  		return 0;  	drm_atomic_helper_resume(drm, hdlcd->state); +	drm_fbdev_cma_set_suspend_unlocked(hdlcd->fbdev, 0);  	drm_kms_helper_poll_enable(drm); -	pm_runtime_set_active(dev);  	return 0;  } |