mirror of https://gitee.com/openkylin/linux.git
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>
This commit is contained in:
parent
14177a5e56
commit
6ee4845270
|
@ -557,10 +557,9 @@ static void sh_hdmi_configure(struct sh_hdmi *hdmi)
|
||||||
|
|
||||||
static void sh_hdmi_read_edid(struct sh_hdmi *hdmi)
|
static void sh_hdmi_read_edid(struct sh_hdmi *hdmi)
|
||||||
{
|
{
|
||||||
struct fb_var_screeninfo *var = &hdmi->var;
|
struct fb_var_screeninfo tmpvar;
|
||||||
struct sh_mobile_hdmi_info *pdata = hdmi->dev->platform_data;
|
/* TODO: When we are ready to use EDID, use this to fill &hdmi->var */
|
||||||
struct fb_videomode *lcd_cfg = &pdata->lcd_chan->lcd_cfg;
|
struct fb_var_screeninfo *var = &tmpvar;
|
||||||
unsigned long height = var->height, width = var->width;
|
|
||||||
int i;
|
int i;
|
||||||
u8 edid[128];
|
u8 edid[128];
|
||||||
|
|
||||||
|
@ -586,22 +585,6 @@ static void sh_hdmi_read_edid(struct sh_hdmi *hdmi)
|
||||||
var->upper_margin, var->yres, var->lower_margin, var->vsync_len,
|
var->upper_margin, var->yres, var->lower_margin, var->vsync_len,
|
||||||
PICOS2KHZ(var->pixclock));
|
PICOS2KHZ(var->pixclock));
|
||||||
|
|
||||||
/* FIXME: Use user-provided configuration instead of EDID */
|
|
||||||
var->width = width;
|
|
||||||
var->xres = lcd_cfg->xres;
|
|
||||||
var->xres_virtual = lcd_cfg->xres;
|
|
||||||
var->left_margin = lcd_cfg->left_margin;
|
|
||||||
var->right_margin = lcd_cfg->right_margin;
|
|
||||||
var->hsync_len = lcd_cfg->hsync_len;
|
|
||||||
var->height = height;
|
|
||||||
var->yres = lcd_cfg->yres;
|
|
||||||
var->yres_virtual = lcd_cfg->yres * 2;
|
|
||||||
var->upper_margin = lcd_cfg->upper_margin;
|
|
||||||
var->lower_margin = lcd_cfg->lower_margin;
|
|
||||||
var->vsync_len = lcd_cfg->vsync_len;
|
|
||||||
var->sync = lcd_cfg->sync;
|
|
||||||
var->pixclock = lcd_cfg->pixclock;
|
|
||||||
|
|
||||||
hdmi_external_video_param(hdmi);
|
hdmi_external_video_param(hdmi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue