diff options
author | Wayne Zou <b36644@freescale.com> | 2012-02-27 09:31:18 +0800 |
---|---|---|
committer | Wayne Zou <b36644@freescale.com> | 2012-03-07 10:56:30 +0800 |
commit | 78a818710abd22d762db2585ec9b874a7d0eecb4 (patch) | |
tree | 647c3063baa393aff0c309f97c7c4a83bad18ec4 /drivers/video/mxc | |
parent | 4e139efa57bf9a6c44ef31372c165261e0a53632 (diff) |
ENGR00175446 ldb: avoid NULL pointer when ldb driver is probed but not inited.
ldb: avoid NULL pointer when ldb driver is probed but not inited.
It can lead to kernel crash when framebuffer on LVDS panel is not inited.
Signed-off-by: Wayne Zou <b36644@freescale.com>
Diffstat (limited to 'drivers/video/mxc')
-rw-r--r-- | drivers/video/mxc/ldb.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/video/mxc/ldb.c b/drivers/video/mxc/ldb.c index 6172c0fa0775..dacb9b4bac34 100644 --- a/drivers/video/mxc/ldb.c +++ b/drivers/video/mxc/ldb.c @@ -728,6 +728,8 @@ static int ldb_suspend(struct platform_device *pdev, pm_message_t state) struct ldb_data *ldb = dev_get_drvdata(&pdev->dev); uint32_t data; + if (!ldb->inited) + return 0; data = readl(ldb->control_reg); ldb->control_reg_data = data; data &= ~(LDB_CH0_MODE_MASK | LDB_CH1_MODE_MASK); @@ -740,6 +742,8 @@ static int ldb_resume(struct platform_device *pdev) { struct ldb_data *ldb = dev_get_drvdata(&pdev->dev); + if (!ldb->inited) + return 0; writel(ldb->control_reg_data, ldb->control_reg); return 0; @@ -778,6 +782,8 @@ static int ldb_remove(struct platform_device *pdev) { struct ldb_data *ldb = dev_get_drvdata(&pdev->dev); + if (!ldb->inited) + return 0; mxc_dispdrv_puthandle(ldb->disp_ldb); mxc_dispdrv_unregister(ldb->disp_ldb); kfree(ldb); |