aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/sh_mobile_hdmi.c
diff options
context:
space:
mode:
authorGuennadi Liakhovetski <g.liakhovetski@gmx.de>2010-09-03 03:19:53 -0400
committerPaul Mundt <lethal@linux-sh.org>2010-09-14 04:22:18 -0400
commit6ee4845270d9b1e7ea348f9e3b6347f54f986abb (patch)
tree6fe1ff937cd019341b95a480d64b6ee2f929ce58 /drivers/video/sh_mobile_hdmi.c
parent14177a5e56904a584f3777f36b50c8d7bfde5810 (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.c23
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
558static void sh_hdmi_read_edid(struct sh_hdmi *hdmi) 558static 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