Skip to content

Commit

Permalink
fbdev: sh-mobile: retrieve and propagate display sizes from EDID
Browse files Browse the repository at this point in the history
Monitor EDID contains information about physical display sizes. Retrieve
it and propagate to the framebuffer driver.

Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
  • Loading branch information
Guennadi Liakhovetski authored and Paul Mundt committed Dec 22, 2010
1 parent e0b9fb2 commit 8c1ac08
Showing 1 changed file with 13 additions and 3 deletions.
16 changes: 13 additions & 3 deletions drivers/video/sh_mobile_hdmi.c
Original file line number Diff line number Diff line change
Expand Up @@ -787,6 +787,9 @@ static int sh_hdmi_read_edid(struct sh_hdmi *hdmi)
found_rate_error = rate_error;
}

hdmi->var.width = hdmi->monspec.max_x * 10;
hdmi->var.height = hdmi->monspec.max_y * 10;

/*
* TODO 1: if no ->info is present, postpone running the config until
* after ->info first gets registered.
Expand Down Expand Up @@ -960,8 +963,12 @@ static bool sh_hdmi_must_reconfigure(struct sh_hdmi *hdmi)
dev_dbg(info->dev, "Old %ux%u, new %ux%u\n",
mode1.xres, mode1.yres, mode2.xres, mode2.yres);

if (fb_mode_is_equal(&mode1, &mode2))
if (fb_mode_is_equal(&mode1, &mode2)) {
/* It can be a different monitor with an equal video-mode */
old_var->width = new_var->width;
old_var->height = new_var->height;
return false;
}

dev_dbg(info->dev, "Switching %u -> %u lines\n",
mode1.yres, mode2.yres);
Expand Down Expand Up @@ -1057,8 +1064,11 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work)
* on, if we run a resume here, the logo disappears
*/
if (lock_fb_info(hdmi->info)) {
sh_hdmi_display_on(hdmi, hdmi->info);
unlock_fb_info(hdmi->info);
struct fb_info *info = hdmi->info;
info->var.width = hdmi->var.width;
info->var.height = hdmi->var.height;
sh_hdmi_display_on(hdmi, info);
unlock_fb_info(info);
}
} else {
/* New monitor or have to wake up */
Expand Down

0 comments on commit 8c1ac08

Please sign in to comment.