Commit 7ac3d3eb authored by Paul Mundt's avatar Paul Mundt

Merge branch 'fbdev-driver-fixes' of...

Merge branch 'fbdev-driver-fixes' of master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6 into fbdev-fixes-for-linus
parents a7bcf21e 5784fa52
...@@ -1071,6 +1071,10 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work) ...@@ -1071,6 +1071,10 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work)
if (!hdmi->info) if (!hdmi->info)
goto out; goto out;
hdmi->monspec.modedb_len = 0;
fb_destroy_modedb(hdmi->monspec.modedb);
hdmi->monspec.modedb = NULL;
acquire_console_sem(); acquire_console_sem();
/* HDMI disconnect */ /* HDMI disconnect */
...@@ -1078,7 +1082,6 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work) ...@@ -1078,7 +1082,6 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work)
release_console_sem(); release_console_sem();
pm_runtime_put(hdmi->dev); pm_runtime_put(hdmi->dev);
fb_destroy_modedb(hdmi->monspec.modedb);
} }
out: out:
......
...@@ -115,15 +115,16 @@ static const struct fb_videomode default_720p = { ...@@ -115,15 +115,16 @@ static const struct fb_videomode default_720p = {
.xres = 1280, .xres = 1280,
.yres = 720, .yres = 720,
.left_margin = 200, .left_margin = 220,
.right_margin = 88, .right_margin = 110,
.hsync_len = 48, .hsync_len = 40,
.upper_margin = 20, .upper_margin = 20,
.lower_margin = 5, .lower_margin = 5,
.vsync_len = 5, .vsync_len = 5,
.pixclock = 13468, .pixclock = 13468,
.refresh = 60,
.sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT, .sync = FB_SYNC_VERT_HIGH_ACT | FB_SYNC_HOR_HIGH_ACT,
}; };
...@@ -1197,6 +1198,7 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev) ...@@ -1197,6 +1198,7 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
const struct fb_videomode *mode = cfg->lcd_cfg; const struct fb_videomode *mode = cfg->lcd_cfg;
unsigned long max_size = 0; unsigned long max_size = 0;
int k; int k;
int num_cfg;
ch->info = framebuffer_alloc(0, &pdev->dev); ch->info = framebuffer_alloc(0, &pdev->dev);
if (!ch->info) { if (!ch->info) {
...@@ -1232,8 +1234,14 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev) ...@@ -1232,8 +1234,14 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
info->fix = sh_mobile_lcdc_fix; info->fix = sh_mobile_lcdc_fix;
info->fix.smem_len = max_size * (cfg->bpp / 8) * 2; info->fix.smem_len = max_size * (cfg->bpp / 8) * 2;
if (!mode) if (!mode) {
mode = &default_720p; mode = &default_720p;
num_cfg = 1;
} else {
num_cfg = ch->cfg.num_cfg;
}
fb_videomode_to_modelist(mode, num_cfg, &info->modelist);
fb_videomode_to_var(var, mode); fb_videomode_to_var(var, mode);
/* Default Y virtual resolution is 2x panel size */ /* Default Y virtual resolution is 2x panel size */
...@@ -1281,10 +1289,6 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev) ...@@ -1281,10 +1289,6 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
for (i = 0; i < j; i++) { for (i = 0; i < j; i++) {
struct sh_mobile_lcdc_chan *ch = priv->ch + i; struct sh_mobile_lcdc_chan *ch = priv->ch + i;
const struct fb_videomode *mode = ch->cfg.lcd_cfg;
if (!mode)
mode = &default_720p;
info = ch->info; info = ch->info;
...@@ -1297,7 +1301,6 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev) ...@@ -1297,7 +1301,6 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
} }
} }
fb_videomode_to_modelist(mode, ch->cfg.num_cfg, &info->modelist);
error = register_framebuffer(info); error = register_framebuffer(info);
if (error < 0) if (error < 0)
goto err1; goto err1;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment