diff options
author | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2014-01-24 16:58:56 +0100 |
---|---|---|
committer | Marcel Ziswiler <marcel.ziswiler@toradex.com> | 2014-01-24 16:58:56 +0100 |
commit | 3a6fc5303b9e798295caa01d2cfe75b05fdccf55 (patch) | |
tree | 3df4b7a3d8cb0c09ed26380b96ba03dfc2f5c374 | |
parent | 139f77a7efd40d2eb2a4a8b2d8041b80dd3965b8 (diff) |
video: tegra: fb: apalis/colibri_t30: hack avoid 24 Hz mode
Hack to avoid 24 Hz mode in X resulting in no display at all. This has
been encountered using e.g. a Samsung SyncMaster F2380 if connected by
HDMI.
root@apalis-t30:~# xrandr
Screen 0: minimum 256 x 128, current 1920 x 1080, maximum 2048 x 2048
LVDS-1 connected 1920x1080+0+0 (normal left inverted right x axis y
axis) 0mm x 0mm
1920x1080 58.6*+
HDMI-1 connected 1920x1080+0+0 (normal left inverted right x axis y
axis) 160mm x 90mm
1920x1080 60.0*+
1680x1050 59.9
1280x1024 75.0 60.0
1440x900 75.0 59.9
1280x960 60.0
1280x800 59.9
1152x864 75.0
1280x720 60.0 50.0
1024x768 75.0 70.1 60.0
832x624 74.6
800x600 72.2 75.0 60.3 56.2
720x576 50.0
720x480 59.9
640x480 75.0 72.8 66.7 59.9
720x400 70.1
This is basically a revamp of the following commit which got scrapped
by the modedb changes:
8174d21e5fe0d086cb5824161c58eb065f412281
-rw-r--r-- | drivers/video/tegra/fb.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/drivers/video/tegra/fb.c b/drivers/video/tegra/fb.c index b687382d1dd4..a4f21c54dde6 100644 --- a/drivers/video/tegra/fb.c +++ b/drivers/video/tegra/fb.c @@ -72,10 +72,16 @@ static int tegra_fb_check_var(struct fb_var_screeninfo *var, info->screen_size) return -EINVAL; + fb_var_to_videomode(&mode, var); + +#if defined(CONFIG_MACH_APALIS_T30) || defined(CONFIG_MACH_COLIBRI_T30) + /* Hack: avoid 24 Hz mode in X resulting in no display at all */ + if (mode.refresh < 50) + return -EINVAL; +#endif /* CONFIG_MACH_APALIS_T30 | CONFIG_MACH_COLIBRI_T30 */ + /* Apply mode filter for HDMI only -LVDS supports only fix mode */ if (ops && ops->mode_filter) { - - fb_var_to_videomode(&mode, var); if (!ops->mode_filter(dc, &mode)) return -EINVAL; |