summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSandy Huang <hjc@rock-chips.com>2018-03-19 14:52:13 +0800
committerSandy Huang <hjc@rock-chips.com>2018-03-19 15:06:37 +0800
commit2f4dee491099602afc7600d2f99e92fca9e097e8 (patch)
tree27c809120a44efeb5dbb766f520fe6a5bc0a90fe
parent5b1eeb664602af1529b22b3d68aa6020a8248e30 (diff)
drm/rockchip: fix kernel panic when drm driver probe failed
For some reason drm driver maybe probe failed, so the drm_dev is null. this will lead to kernel panic when enter suspend function. Change-Id: Ic529ba9103d27b0766189285bd6cf8e43b23b912 Signed-off-by: Sandy Huang <hjc@rock-chips.com>
-rw-r--r--drivers/gpu/drm/rockchip/rockchip_drm_drv.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
index 7ae1a2341849..88b149375f10 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c
@@ -1669,9 +1669,16 @@ static void rockchip_drm_fb_resume(struct drm_device *drm)
static int rockchip_drm_sys_suspend(struct device *dev)
{
- struct drm_device *drm = dev_get_drvdata(dev);
- struct rockchip_drm_private *priv = drm->dev_private;
+ struct drm_device *drm;
+ struct rockchip_drm_private *priv;
+
+ drm = dev_get_drvdata(dev);
+ if (!drm) {
+ DRM_ERROR("%s: Failed to get drm device!\n", __func__);
+ return 0;
+ }
+ priv = drm->dev_private;
drm_kms_helper_poll_disable(drm);
rockchip_drm_fb_suspend(drm);