diff options
| author | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2009-12-08 10:30:24 -0500 |
|---|---|---|
| committer | Tomi Valkeinen <tomi.valkeinen@nokia.com> | 2010-01-08 08:32:19 -0500 |
| commit | 7475e44246e8a7c435a7ed8fe1e94fc8898685d9 (patch) | |
| tree | 43b5322121e82a09c2507d2b85b7b9ed6cf2ef99 | |
| parent | dfc0fd8d8850ef11951ba6c251e06096d1b5a0bd (diff) | |
OMAP: DSS2: Fix crash when panel doesn't define enable_te()
DSI driver didn't check if the panel driver actually implements
enable_te().
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| -rw-r--r-- | drivers/video/omap2/dss/dsi.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/drivers/video/omap2/dss/dsi.c b/drivers/video/omap2/dss/dsi.c index 03f85df70749..e32a53c0889f 100644 --- a/drivers/video/omap2/dss/dsi.c +++ b/drivers/video/omap2/dss/dsi.c | |||
| @@ -2932,11 +2932,15 @@ static int dsi_set_update_mode(struct omap_dss_device *dssdev, | |||
| 2932 | 2932 | ||
| 2933 | static int dsi_set_te(struct omap_dss_device *dssdev, bool enable) | 2933 | static int dsi_set_te(struct omap_dss_device *dssdev, bool enable) |
| 2934 | { | 2934 | { |
| 2935 | int r; | 2935 | int r = 0; |
| 2936 | r = dssdev->driver->enable_te(dssdev, enable); | 2936 | |
| 2937 | /* XXX for some reason, DSI TE breaks if we don't wait here. | 2937 | if (dssdev->driver->enable_te) { |
| 2938 | * Panel bug? Needs more studying */ | 2938 | r = dssdev->driver->enable_te(dssdev, enable); |
| 2939 | msleep(100); | 2939 | /* XXX for some reason, DSI TE breaks if we don't wait here. |
| 2940 | * Panel bug? Needs more studying */ | ||
| 2941 | msleep(100); | ||
| 2942 | } | ||
| 2943 | |||
| 2940 | return r; | 2944 | return r; |
| 2941 | } | 2945 | } |
| 2942 | 2946 | ||
