diff options
Diffstat (limited to 'drivers/video/omap2/omapfb/omapfb-main.c')
-rw-r--r-- | drivers/video/omap2/omapfb/omapfb-main.c | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c index 4fdab8e9c496..505ec6672049 100644 --- a/drivers/video/omap2/omapfb/omapfb-main.c +++ b/drivers/video/omap2/omapfb/omapfb-main.c | |||
@@ -2090,7 +2090,7 @@ static int omapfb_set_def_mode(struct omapfb2_device *fbdev, | |||
2090 | { | 2090 | { |
2091 | int r; | 2091 | int r; |
2092 | u8 bpp; | 2092 | u8 bpp; |
2093 | struct omap_video_timings timings; | 2093 | struct omap_video_timings timings, temp_timings; |
2094 | 2094 | ||
2095 | r = omapfb_mode_to_timings(mode_str, &timings, &bpp); | 2095 | r = omapfb_mode_to_timings(mode_str, &timings, &bpp); |
2096 | if (r) | 2096 | if (r) |
@@ -2100,14 +2100,23 @@ static int omapfb_set_def_mode(struct omapfb2_device *fbdev, | |||
2100 | fbdev->bpp_overrides[fbdev->num_bpp_overrides].bpp = bpp; | 2100 | fbdev->bpp_overrides[fbdev->num_bpp_overrides].bpp = bpp; |
2101 | ++fbdev->num_bpp_overrides; | 2101 | ++fbdev->num_bpp_overrides; |
2102 | 2102 | ||
2103 | if (!display->driver->check_timings || !display->driver->set_timings) | 2103 | if (display->driver->check_timings) { |
2104 | return -EINVAL; | 2104 | r = display->driver->check_timings(display, &timings); |
2105 | if (r) | ||
2106 | return r; | ||
2107 | } else { | ||
2108 | /* If check_timings is not present compare xres and yres */ | ||
2109 | if (display->driver->get_timings) { | ||
2110 | display->driver->get_timings(display, &temp_timings); | ||
2105 | 2111 | ||
2106 | r = display->driver->check_timings(display, &timings); | 2112 | if (temp_timings.x_res != timings.x_res || |
2107 | if (r) | 2113 | temp_timings.y_res != timings.y_res) |
2108 | return r; | 2114 | return -EINVAL; |
2115 | } | ||
2116 | } | ||
2109 | 2117 | ||
2110 | display->driver->set_timings(display, &timings); | 2118 | if (display->driver->set_timings) |
2119 | display->driver->set_timings(display, &timings); | ||
2111 | 2120 | ||
2112 | return 0; | 2121 | return 0; |
2113 | } | 2122 | } |