summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLiu Ying <Ying.Liu@freescale.com>2015-11-06 22:42:45 +0800
committerPhilipp Zabel <p.zabel@pengutronix.de>2015-11-19 12:51:39 +0100
commita7ed3c2b151e7581ed6022d0fe65903ccb502dc5 (patch)
treeef9a93abd4409b5ad465ecc0a7656adf574e1cae
parent4389559980599ad99f39a004d6e9aaf9c2180ab8 (diff)
downloadlinux-a7ed3c2b151e7581ed6022d0fe65903ccb502dc5.tar.gz
linux-a7ed3c2b151e7581ed6022d0fe65903ccb502dc5.tar.bz2
linux-a7ed3c2b151e7581ed6022d0fe65903ccb502dc5.zip
drm/imx: ipuv3-crtc: Return error if ipu_plane_init() fails for primary plane
For primary plane initialization failure cases, ipu_plane_init() may return a pointer encoded by ERR_PTR(). So, we should bailout instead of using that pointer blindly. Signed-off-by: Liu Ying <Ying.Liu@freescale.com> Signed-off-by: Philipp Zabel <p.zabel@pengutronix.de>
-rw-r--r--drivers/gpu/drm/imx/ipuv3-crtc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/gpu/drm/imx/ipuv3-crtc.c b/drivers/gpu/drm/imx/ipuv3-crtc.c
index f11284d06538..4cbc3df8ac96 100644
--- a/drivers/gpu/drm/imx/ipuv3-crtc.c
+++ b/drivers/gpu/drm/imx/ipuv3-crtc.c
@@ -361,6 +361,10 @@ static int ipu_crtc_init(struct ipu_crtc *ipu_crtc,
dp = IPU_DP_FLOW_SYNC_BG;
ipu_crtc->plane[0] = ipu_plane_init(drm, ipu, pdata->dma[0], dp, 0,
DRM_PLANE_TYPE_PRIMARY);
+ if (IS_ERR(ipu_crtc->plane[0])) {
+ ret = PTR_ERR(ipu_crtc->plane[0]);
+ goto err_put_resources;
+ }
ret = imx_drm_add_crtc(drm, &ipu_crtc->base, &ipu_crtc->imx_crtc,
&ipu_crtc->plane[0]->base, &ipu_crtc_helper_funcs,