diff options
| -rw-r--r-- | drivers/video/omap2/displays/panel-acx565akm.c | 13 | ||||
| -rw-r--r-- | drivers/video/omap2/dss/sdi.c | 17 | ||||
| -rw-r--r-- | include/video/omapdss.h | 2 |
3 files changed, 20 insertions, 12 deletions
diff --git a/drivers/video/omap2/displays/panel-acx565akm.c b/drivers/video/omap2/displays/panel-acx565akm.c index eaeed4340e0..11bdc883e46 100644 --- a/drivers/video/omap2/displays/panel-acx565akm.c +++ b/drivers/video/omap2/displays/panel-acx565akm.c | |||
| @@ -731,18 +731,7 @@ static int acx_panel_resume(struct omap_dss_device *dssdev) | |||
| 731 | static void acx_panel_set_timings(struct omap_dss_device *dssdev, | 731 | static void acx_panel_set_timings(struct omap_dss_device *dssdev, |
| 732 | struct omap_video_timings *timings) | 732 | struct omap_video_timings *timings) |
| 733 | { | 733 | { |
| 734 | int r; | 734 | omapdss_sdi_set_timings(dssdev, timings); |
| 735 | |||
| 736 | if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) | ||
| 737 | omapdss_sdi_display_disable(dssdev); | ||
| 738 | |||
| 739 | dssdev->panel.timings = *timings; | ||
| 740 | |||
| 741 | if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) { | ||
| 742 | r = omapdss_sdi_display_enable(dssdev); | ||
| 743 | if (r) | ||
| 744 | dev_err(&dssdev->dev, "%s enable failed\n", __func__); | ||
| 745 | } | ||
| 746 | } | 735 | } |
| 747 | 736 | ||
| 748 | static int acx_panel_check_timings(struct omap_dss_device *dssdev, | 737 | static int acx_panel_check_timings(struct omap_dss_device *dssdev, |
diff --git a/drivers/video/omap2/dss/sdi.c b/drivers/video/omap2/dss/sdi.c index 5d31699fbd3..0474962571c 100644 --- a/drivers/video/omap2/dss/sdi.c +++ b/drivers/video/omap2/dss/sdi.c | |||
| @@ -146,6 +146,23 @@ void omapdss_sdi_display_disable(struct omap_dss_device *dssdev) | |||
| 146 | } | 146 | } |
| 147 | EXPORT_SYMBOL(omapdss_sdi_display_disable); | 147 | EXPORT_SYMBOL(omapdss_sdi_display_disable); |
| 148 | 148 | ||
| 149 | void omapdss_sdi_set_timings(struct omap_dss_device *dssdev, | ||
| 150 | struct omap_video_timings *timings) | ||
| 151 | { | ||
| 152 | int r; | ||
| 153 | |||
| 154 | dssdev->panel.timings = *timings; | ||
| 155 | |||
| 156 | if (dssdev->state == OMAP_DSS_DISPLAY_ACTIVE) { | ||
| 157 | omapdss_sdi_display_disable(dssdev); | ||
| 158 | |||
| 159 | r = omapdss_sdi_display_enable(dssdev); | ||
| 160 | if (r) | ||
| 161 | DSSERR("failed to set new timings\n"); | ||
| 162 | } | ||
| 163 | } | ||
| 164 | EXPORT_SYMBOL(omapdss_sdi_set_timings); | ||
| 165 | |||
| 149 | static int __init sdi_init_display(struct omap_dss_device *dssdev) | 166 | static int __init sdi_init_display(struct omap_dss_device *dssdev) |
| 150 | { | 167 | { |
| 151 | DSSDBG("SDI init\n"); | 168 | DSSDBG("SDI init\n"); |
diff --git a/include/video/omapdss.h b/include/video/omapdss.h index 0898c2fad9a..a06a9ba3872 100644 --- a/include/video/omapdss.h +++ b/include/video/omapdss.h | |||
| @@ -744,6 +744,8 @@ int dpi_check_timings(struct omap_dss_device *dssdev, | |||
| 744 | 744 | ||
| 745 | int omapdss_sdi_display_enable(struct omap_dss_device *dssdev); | 745 | int omapdss_sdi_display_enable(struct omap_dss_device *dssdev); |
| 746 | void omapdss_sdi_display_disable(struct omap_dss_device *dssdev); | 746 | void omapdss_sdi_display_disable(struct omap_dss_device *dssdev); |
| 747 | void omapdss_sdi_set_timings(struct omap_dss_device *dssdev, | ||
| 748 | struct omap_video_timings *timings); | ||
| 747 | 749 | ||
| 748 | int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev); | 750 | int omapdss_rfbi_display_enable(struct omap_dss_device *dssdev); |
| 749 | void omapdss_rfbi_display_disable(struct omap_dss_device *dssdev); | 751 | void omapdss_rfbi_display_disable(struct omap_dss_device *dssdev); |
