omap_vout: fix crash if no driver for a display

Message ID 1321259339-5202-1-git-send-email-tomi.valkeinen@ti.com (mailing list archive)
State Accepted, archived
Headers

Commit Message

Tomi Valkeinen Nov. 14, 2011, 8:28 a.m. UTC
  omap_vout crashes on start if a corresponding driver is not loaded for a
display device.

This patch changes omap_vout init sequence to skip devices without a
driver.

Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
---
 drivers/media/video/omap/omap_vout.c |    8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)
  

Comments

Hiremath, Vaibhav Nov. 16, 2011, 3:12 p.m. UTC | #1
> -----Original Message-----
> From: Valkeinen, Tomi
> Sent: Monday, November 14, 2011 1:59 PM
> To: linux-media@vger.kernel.org; Hiremath, Vaibhav
> Cc: Taneja, Archit; Valkeinen, Tomi
> Subject: [PATCH] omap_vout: fix crash if no driver for a display
> 
> omap_vout crashes on start if a corresponding driver is not loaded for a
> display device.
> 
> This patch changes omap_vout init sequence to skip devices without a
> driver.
> 
> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
> ---
>  drivers/media/video/omap/omap_vout.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/drivers/media/video/omap/omap_vout.c
> b/drivers/media/video/omap/omap_vout.c
> index 9c5c19f..2d2a136 100644
> --- a/drivers/media/video/omap/omap_vout.c
> +++ b/drivers/media/video/omap/omap_vout.c
> @@ -2169,6 +2169,14 @@ static int __init omap_vout_probe(struct
> platform_device *pdev)
>  	vid_dev->num_displays = 0;
>  	for_each_dss_dev(dssdev) {
>  		omap_dss_get_device(dssdev);
> +
> +		if (!dssdev->driver) {
> +			dev_warn(&pdev->dev, "no driver for display: %s\n",
> +					dssdev->name);
> +			omap_dss_put_device(dssdev);
> +			continue;
> +		}
> +
>  		vid_dev->displays[vid_dev->num_displays++] = dssdev;
>  	}
> 

Acked-by: Vaibhav Hiremath <hvaibhav@ti.com>

Thanks,
Vaibhav


> --
> 1.7.4.1

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
  

Patch

diff --git a/drivers/media/video/omap/omap_vout.c b/drivers/media/video/omap/omap_vout.c
index 9c5c19f..2d2a136 100644
--- a/drivers/media/video/omap/omap_vout.c
+++ b/drivers/media/video/omap/omap_vout.c
@@ -2169,6 +2169,14 @@  static int __init omap_vout_probe(struct platform_device *pdev)
 	vid_dev->num_displays = 0;
 	for_each_dss_dev(dssdev) {
 		omap_dss_get_device(dssdev);
+
+		if (!dssdev->driver) {
+			dev_warn(&pdev->dev, "no driver for display: %s\n",
+					dssdev->name);
+			omap_dss_put_device(dssdev);
+			continue;
+		}
+
 		vid_dev->displays[vid_dev->num_displays++] = dssdev;
 	}