aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2011-01-06 04:27:34 -0500
committerPaul Mundt <lethal@linux-sh.org>2011-01-06 04:27:34 -0500
commit1928e87bcf185f56008d0746f887b691c1cb8c4a (patch)
treebc8db9e9cb40b73742d05e2e68189bd647687249 /drivers/video
parentca9c20ce2b383032b71bdae9ec0b468d428ca8d4 (diff)
parent3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5 (diff)
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts: drivers/video/sh_mobile_lcdcfb.c Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'drivers/video')
-rw-r--r--drivers/video/backlight/cr_bllcd.c1
-rw-r--r--drivers/video/fbmem.c2
-rw-r--r--drivers/video/sh_mobile_hdmi.c16
-rw-r--r--drivers/video/sh_mobile_lcdcfb.c4
4 files changed, 18 insertions, 5 deletions
diff --git a/drivers/video/backlight/cr_bllcd.c b/drivers/video/backlight/cr_bllcd.c
index a4f4546f0be..397d15eb1ea 100644
--- a/drivers/video/backlight/cr_bllcd.c
+++ b/drivers/video/backlight/cr_bllcd.c
@@ -242,6 +242,7 @@ static int cr_backlight_remove(struct platform_device *pdev)
242 backlight_device_unregister(crp->cr_backlight_device); 242 backlight_device_unregister(crp->cr_backlight_device);
243 lcd_device_unregister(crp->cr_lcd_device); 243 lcd_device_unregister(crp->cr_lcd_device);
244 pci_dev_put(lpc_dev); 244 pci_dev_put(lpc_dev);
245 kfree(crp);
245 246
246 return 0; 247 return 0;
247} 248}
diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
index 0e6aa3d96a4..4ac1201ad6c 100644
--- a/drivers/video/fbmem.c
+++ b/drivers/video/fbmem.c
@@ -1458,7 +1458,7 @@ static bool apertures_overlap(struct aperture *gen, struct aperture *hw)
1458 if (gen->base == hw->base) 1458 if (gen->base == hw->base)
1459 return true; 1459 return true;
1460 /* is the generic aperture base inside the hw base->hw base+size */ 1460 /* is the generic aperture base inside the hw base->hw base+size */
1461 if (gen->base > hw->base && gen->base <= hw->base + hw->size) 1461 if (gen->base > hw->base && gen->base < hw->base + hw->size)
1462 return true; 1462 return true;
1463 return false; 1463 return false;
1464} 1464}
diff --git a/drivers/video/sh_mobile_hdmi.c b/drivers/video/sh_mobile_hdmi.c
index 76f9fac9020..8c59cc8c5a9 100644
--- a/drivers/video/sh_mobile_hdmi.c
+++ b/drivers/video/sh_mobile_hdmi.c
@@ -845,6 +845,9 @@ static int sh_hdmi_read_edid(struct sh_hdmi *hdmi, unsigned long *hdmi_rate,
845 found_rate_error = rate_error; 845 found_rate_error = rate_error;
846 } 846 }
847 847
848 hdmi->var.width = hdmi->monspec.max_x * 10;
849 hdmi->var.height = hdmi->monspec.max_y * 10;
850
848 /* 851 /*
849 * TODO 1: if no ->info is present, postpone running the config until 852 * TODO 1: if no ->info is present, postpone running the config until
850 * after ->info first gets registered. 853 * after ->info first gets registered.
@@ -1031,8 +1034,12 @@ static bool sh_hdmi_must_reconfigure(struct sh_hdmi *hdmi)
1031 dev_dbg(info->dev, "Old %ux%u, new %ux%u\n", 1034 dev_dbg(info->dev, "Old %ux%u, new %ux%u\n",
1032 mode1.xres, mode1.yres, mode2.xres, mode2.yres); 1035 mode1.xres, mode1.yres, mode2.xres, mode2.yres);
1033 1036
1034 if (fb_mode_is_equal(&mode1, &mode2)) 1037 if (fb_mode_is_equal(&mode1, &mode2)) {
1038 /* It can be a different monitor with an equal video-mode */
1039 old_var->width = new_var->width;
1040 old_var->height = new_var->height;
1035 return false; 1041 return false;
1042 }
1036 1043
1037 dev_dbg(info->dev, "Switching %u -> %u lines\n", 1044 dev_dbg(info->dev, "Switching %u -> %u lines\n",
1038 mode1.yres, mode2.yres); 1045 mode1.yres, mode2.yres);
@@ -1129,8 +1136,11 @@ static void sh_hdmi_edid_work_fn(struct work_struct *work)
1129 * on, if we run a resume here, the logo disappears 1136 * on, if we run a resume here, the logo disappears
1130 */ 1137 */
1131 if (lock_fb_info(hdmi->info)) { 1138 if (lock_fb_info(hdmi->info)) {
1132 sh_hdmi_display_on(hdmi, hdmi->info); 1139 struct fb_info *info = hdmi->info;
1133 unlock_fb_info(hdmi->info); 1140 info->var.width = hdmi->var.width;
1141 info->var.height = hdmi->var.height;
1142 sh_hdmi_display_on(hdmi, info);
1143 unlock_fb_info(info);
1134 } 1144 }
1135 } else { 1145 } else {
1136 /* New monitor or have to wake up */ 1146 /* New monitor or have to wake up */
diff --git a/drivers/video/sh_mobile_lcdcfb.c b/drivers/video/sh_mobile_lcdcfb.c
index cffec90afa9..bd4840a8a6b 100644
--- a/drivers/video/sh_mobile_lcdcfb.c
+++ b/drivers/video/sh_mobile_lcdcfb.c
@@ -1280,12 +1280,14 @@ static int __devinit sh_mobile_lcdc_probe(struct platform_device *pdev)
1280 mode = &default_720p; 1280 mode = &default_720p;
1281 num_cfg = 1; 1281 num_cfg = 1;
1282 } else { 1282 } else {
1283 num_cfg = ch->cfg.num_cfg; 1283 num_cfg = cfg->num_cfg;
1284 } 1284 }
1285 1285
1286 fb_videomode_to_modelist(mode, num_cfg, &info->modelist); 1286 fb_videomode_to_modelist(mode, num_cfg, &info->modelist);
1287 1287
1288 fb_videomode_to_var(var, mode); 1288 fb_videomode_to_var(var, mode);
1289 var->width = cfg->lcd_size_cfg.width;
1290 var->height = cfg->lcd_size_cfg.height;
1289 /* Default Y virtual resolution is 2x panel size */ 1291 /* Default Y virtual resolution is 2x panel size */
1290 var->yres_virtual = var->yres * 2; 1292 var->yres_virtual = var->yres * 2;
1291 var->activate = FB_ACTIVATE_NOW; 1293 var->activate = FB_ACTIVATE_NOW;