summaryrefslogtreecommitdiff
path: root/drivers/media/platform/omap
diff options
context:
space:
mode:
authorTomi Valkeinen <tomi.valkeinen@ti.com>2013-05-23 13:07:50 +0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2013-05-23 13:54:21 +0400
commit591a0ac7f14aae6bf11b1cb6b5a68480bd644ddb (patch)
treecb2b4707ecd8aaac1eff6901b311d4f839c69383 /drivers/media/platform/omap
parentb358c6cf029cb67b3ed9cc367fb46f1fa3228c5b (diff)
downloadlinux-591a0ac7f14aae6bf11b1cb6b5a68480bd644ddb.tar.xz
OMAPDSS: Fix crash with DT boot
When booting with DT, there's a crash when omapfb is probed. This is caused by the fact that omapdss+DT is not yet supported, and thus omapdss is not probed at all. On the other hand, omapfb is always probed. When omapfb tries to use omapdss, there's a NULL pointer dereference crash. The same error should most likely happen with omapdrm and omap_vout also. To fix this, add an "initialized" state to omapdss. When omapdss has been probed, it's marked as initialized. omapfb, omapdrm and omap_vout check this state when they are probed to see that omapdss is actually there. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com> Tested-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Diffstat (limited to 'drivers/media/platform/omap')
-rw-r--r--drivers/media/platform/omap/omap_vout.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/media/platform/omap/omap_vout.c b/drivers/media/platform/omap/omap_vout.c
index 96c4a17e4280..0a489bd29d6b 100644
--- a/drivers/media/platform/omap/omap_vout.c
+++ b/drivers/media/platform/omap/omap_vout.c
@@ -2144,6 +2144,9 @@ static int __init omap_vout_probe(struct platform_device *pdev)
struct omap_dss_device *def_display;
struct omap2video_device *vid_dev = NULL;
+ if (omapdss_is_initialized() == false)
+ return -EPROBE_DEFER;
+
ret = omapdss_compat_init();
if (ret) {
dev_err(&pdev->dev, "failed to init dss\n");