diff options
author | Paul Mundt <lethal@linux-sh.org> | 2011-01-06 04:27:34 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2011-01-06 04:27:34 -0500 |
commit | 1928e87bcf185f56008d0746f887b691c1cb8c4a (patch) | |
tree | bc8db9e9cb40b73742d05e2e68189bd647687249 /drivers/video/sh_mobile_hdmi.c | |
parent | ca9c20ce2b383032b71bdae9ec0b468d428ca8d4 (diff) | |
parent | 3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5 (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts:
drivers/video/sh_mobile_lcdcfb.c
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/video/sh_mobile_hdmi.c')
-rw-r--r-- | drivers/video/sh_mobile_hdmi.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/drivers/video/sh_mobile_hdmi.c b/drivers/video/sh_mobile_hdmi.c index 76f9fac9020f..8c59cc8c5a9c 100644 --- a/drivers/video/sh_mobile_hdmi.c +++ b/drivers/video/sh_mobile_hdmi.c | |||
@@ -845,6 +845,9 @@ static int sh_hdmi_read_edid(struct sh_hdmi *hdmi, unsigned long *hdmi_rate, | |||
845 | found_rate_error = rate_error; | 845 | found_rate_error = rate_error; |
846 | } | 846 | } |
847 | 847 | ||
848 | hdmi->var.width = hdmi->monspec.max_x * 10; | ||
849 | hdmi->var.height = hdmi->monspec.max_y * 10; | ||
850 | |||
848 | /* | 851 | /* |
849 | * TODO 1: if no ->info is present, postpone running the config until | 852 | * TODO 1: if no ->info is present, postpone running the config until |
850 | * after ->info first gets registered. | 853 | * after ->info first gets registered. |
@@ -1031,8 +1034,12 @@ static bool sh_hdmi_must_reconfigure(struct sh_hdmi *hdmi) | |||
1031 | dev_dbg(info->dev, "Old %ux%u, new %ux%u\n", | 1034 | dev_dbg(info->dev, "Old %ux%u, new %ux%u\n", |
1032 | mode1.xres, mode1.yres, mode2.xres, mode2.yres); | 1035 | mode1.xres, mode1.yres, mode2.xres, mode2.yres); |
1033 | 1036 | ||
1034 | if (fb_mode_is_equal(&mode1, &mode2)) | 1037 | if (fb_mode_is_equal(&mode1, &mode2)) { |
1038 | /* It can be a different monitor with an equal video-mode */ | ||
1039 | old_var->width = new_var->width; | ||
1040 | old_var->height = new_var->height; | ||
1035 | return false; | 1041 | return false; |
1042 | } | ||
1036 | 1043 | ||
1037 | dev_dbg(info->dev, "Switching %u -> %u lines\n", | 1044 | dev_dbg(info->dev, "Switching %u -> %u lines\n", |
1038 | mode1.yres, mode2.yres); | 1045 | mode1.yres, mode2.yres); |
@@ -1129,8 +1136,11 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work) | |||
1129 | * on, if we run a resume here, the logo disappears | 1136 | * on, if we run a resume here, the logo disappears |
1130 | */ | 1137 | */ |
1131 | if (lock_fb_info(hdmi->info)) { | 1138 | if (lock_fb_info(hdmi->info)) { |
1132 | sh_hdmi_display_on(hdmi, hdmi->info); | 1139 | struct fb_info *info = hdmi->info; |
1133 | unlock_fb_info(hdmi->info); | 1140 | info->var.width = hdmi->var.width; |
1141 | info->var.height = hdmi->var.height; | ||
1142 | sh_hdmi_display_on(hdmi, info); | ||
1143 | unlock_fb_info(info); | ||
1134 | } | 1144 | } |
1135 | } else { | 1145 | } else { |
1136 | /* New monitor or have to wake up */ | 1146 | /* New monitor or have to wake up */ |