summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorWayne Zou <b36644@freescale.com>2012-02-27 09:31:18 +0800
committerWayne Zou <b36644@freescale.com>2012-03-07 10:56:30 +0800
commit78a818710abd22d762db2585ec9b874a7d0eecb4 (patch)
tree647c3063baa393aff0c309f97c7c4a83bad18ec4 /drivers
parent4e139efa57bf9a6c44ef31372c165261e0a53632 (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')
-rw-r--r--drivers/video/mxc/ldb.c6
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);