diff options
author | Paul Mundt <lethal@linux-sh.org> | 2011-01-06 04:27:34 -0500 |
---|---|---|
committer | Paul Mundt <lethal@linux-sh.org> | 2011-01-06 04:27:34 -0500 |
commit | 1928e87bcf185f56008d0746f887b691c1cb8c4a (patch) | |
tree | bc8db9e9cb40b73742d05e2e68189bd647687249 /drivers/video | |
parent | ca9c20ce2b383032b71bdae9ec0b468d428ca8d4 (diff) | |
parent | 3c0eee3fe6a3a1c745379547c7e7c904aa64f6d5 (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.c | 1 | ||||
-rw-r--r-- | drivers/video/fbmem.c | 2 | ||||
-rw-r--r-- | drivers/video/sh_mobile_hdmi.c | 16 | ||||
-rw-r--r-- | drivers/video/sh_mobile_lcdcfb.c | 4 |
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; |