diff options
author | Guennadi Liakhovetski <g.liakhovetski@gmx.de> | 2010-09-03 03:19:53 -0400 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2010-09-14 04:22:18 -0400 |
commit | 6ee4845270d9b1e7ea348f9e3b6347f54f986abb (patch) | |
tree | 6fe1ff937cd019341b95a480d64b6ee2f929ce58 /drivers/video/sh_mobile_hdmi.c | |
parent | 14177a5e56904a584f3777f36b50c8d7bfde5810 (diff) |
fbdev: sh_mobile_hdmi: simplify the EDID reading procedure
The present SH-Mobile HDMI driver reads and parses the EDID block into a
variable screeninfo object, but since it is still unable to dynamically
reconfigure the framebuffer, it overwrites the EDID information with preset
values again. This patch just uses a temporary variable to store the EDID
timing information instead.
Signed-off-by: Guennadi Liakhovetski <g.liakhovetski@gmx.de>
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 | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/drivers/video/sh_mobile_hdmi.c b/drivers/video/sh_mobile_hdmi.c index afebe809975e..a8117c33e75f 100644 --- a/drivers/video/sh_mobile_hdmi.c +++ b/drivers/video/sh_mobile_hdmi.c | |||
@@ -557,10 +557,9 @@ static void sh_hdmi_configure(struct sh_hdmi *hdmi) | |||
557 | 557 | ||
558 | static void sh_hdmi_read_edid(struct sh_hdmi *hdmi) | 558 | static void sh_hdmi_read_edid(struct sh_hdmi *hdmi) |
559 | { | 559 | { |
560 | struct fb_var_screeninfo *var = &hdmi->var; | 560 | struct fb_var_screeninfo tmpvar; |
561 | struct sh_mobile_hdmi_info *pdata = hdmi->dev->platform_data; | 561 | /* TODO: When we are ready to use EDID, use this to fill &hdmi->var */ |
562 | struct fb_videomode *lcd_cfg = &pdata->lcd_chan->lcd_cfg; | 562 | struct fb_var_screeninfo *var = &tmpvar; |
563 | unsigned long height = var->height, width = var->width; | ||
564 | int i; | 563 | int i; |
565 | u8 edid[128]; | 564 | u8 edid[128]; |
566 | 565 | ||
@@ -586,22 +585,6 @@ static void sh_hdmi_read_edid(struct sh_hdmi *hdmi) | |||
586 | var->upper_margin, var->yres, var->lower_margin, var->vsync_len, | 585 | var->upper_margin, var->yres, var->lower_margin, var->vsync_len, |
587 | PICOS2KHZ(var->pixclock)); | 586 | PICOS2KHZ(var->pixclock)); |
588 | 587 | ||
589 | /* FIXME: Use user-provided configuration instead of EDID */ | ||
590 | var->width = width; | ||
591 | var->xres = lcd_cfg->xres; | ||
592 | var->xres_virtual = lcd_cfg->xres; | ||
593 | var->left_margin = lcd_cfg->left_margin; | ||
594 | var->right_margin = lcd_cfg->right_margin; | ||
595 | var->hsync_len = lcd_cfg->hsync_len; | ||
596 | var->height = height; | ||
597 | var->yres = lcd_cfg->yres; | ||
598 | var->yres_virtual = lcd_cfg->yres * 2; | ||
599 | var->upper_margin = lcd_cfg->upper_margin; | ||
600 | var->lower_margin = lcd_cfg->lower_margin; | ||
601 | var->vsync_len = lcd_cfg->vsync_len; | ||
602 | var->sync = lcd_cfg->sync; | ||
603 | var->pixclock = lcd_cfg->pixclock; | ||
604 | |||
605 | hdmi_external_video_param(hdmi); | 588 | hdmi_external_video_param(hdmi); |
606 | } | 589 | } |
607 | 590 | ||