diff options
author | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2012-09-11 04:28:59 -0400 |
---|---|---|
committer | Tomi Valkeinen <tomi.valkeinen@ti.com> | 2012-09-11 04:28:59 -0400 |
commit | 6659145746bcf01ac650c76e5736c5003c2db230 (patch) | |
tree | d21884a7f7e20381e908f87c3682026ed6761efc /drivers | |
parent | 6cd05430eeab0668c55ff4693ab79ff559b2b5c7 (diff) | |
parent | c1c52848cef52e157468b8879fc3cae23b6f3a99 (diff) |
Merge branch 'fbdev-for-linus' of git://github.com/schandinat/linux-2.6
Merge omapfb and OMAP SDI fixes:
* OMAPFB: fix framebuffer console colors
* OMAPDSS: Fix SDI PLL locking
Conflicts:
drivers/video/omap2/dss/sdi.c
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/video/auo_k190x.c | 2 | ||||
-rw-r--r-- | drivers/video/console/bitblit.c | 2 | ||||
-rw-r--r-- | drivers/video/console/fbcon.c | 2 | ||||
-rw-r--r-- | drivers/video/mb862xx/mb862xxfbdrv.c | 2 | ||||
-rw-r--r-- | drivers/video/omap2/dss/sdi.c | 15 |
5 files changed, 18 insertions, 5 deletions
diff --git a/drivers/video/auo_k190x.c b/drivers/video/auo_k190x.c index 77da6a2f43dc..c03ecdd31e4c 100644 --- a/drivers/video/auo_k190x.c +++ b/drivers/video/auo_k190x.c | |||
@@ -987,7 +987,6 @@ err_regfb: | |||
987 | fb_dealloc_cmap(&info->cmap); | 987 | fb_dealloc_cmap(&info->cmap); |
988 | err_cmap: | 988 | err_cmap: |
989 | fb_deferred_io_cleanup(info); | 989 | fb_deferred_io_cleanup(info); |
990 | kfree(info->fbdefio); | ||
991 | err_defio: | 990 | err_defio: |
992 | vfree((void *)info->screen_base); | 991 | vfree((void *)info->screen_base); |
993 | err_irq: | 992 | err_irq: |
@@ -1022,7 +1021,6 @@ int __devexit auok190x_common_remove(struct platform_device *pdev) | |||
1022 | fb_dealloc_cmap(&info->cmap); | 1021 | fb_dealloc_cmap(&info->cmap); |
1023 | 1022 | ||
1024 | fb_deferred_io_cleanup(info); | 1023 | fb_deferred_io_cleanup(info); |
1025 | kfree(info->fbdefio); | ||
1026 | 1024 | ||
1027 | vfree((void *)info->screen_base); | 1025 | vfree((void *)info->screen_base); |
1028 | 1026 | ||
diff --git a/drivers/video/console/bitblit.c b/drivers/video/console/bitblit.c index 28b1a834906b..61b182bf32a2 100644 --- a/drivers/video/console/bitblit.c +++ b/drivers/video/console/bitblit.c | |||
@@ -162,7 +162,7 @@ static void bit_putcs(struct vc_data *vc, struct fb_info *info, | |||
162 | image.depth = 1; | 162 | image.depth = 1; |
163 | 163 | ||
164 | if (attribute) { | 164 | if (attribute) { |
165 | buf = kmalloc(cellsize, GFP_KERNEL); | 165 | buf = kmalloc(cellsize, GFP_ATOMIC); |
166 | if (!buf) | 166 | if (!buf) |
167 | return; | 167 | return; |
168 | } | 168 | } |
diff --git a/drivers/video/console/fbcon.c b/drivers/video/console/fbcon.c index 88e92041d8f0..fdefa8fd72c4 100644 --- a/drivers/video/console/fbcon.c +++ b/drivers/video/console/fbcon.c | |||
@@ -449,7 +449,7 @@ static int __init fb_console_setup(char *this_opt) | |||
449 | 449 | ||
450 | while ((options = strsep(&this_opt, ",")) != NULL) { | 450 | while ((options = strsep(&this_opt, ",")) != NULL) { |
451 | if (!strncmp(options, "font:", 5)) | 451 | if (!strncmp(options, "font:", 5)) |
452 | strcpy(fontname, options + 5); | 452 | strlcpy(fontname, options + 5, sizeof(fontname)); |
453 | 453 | ||
454 | if (!strncmp(options, "scrollback:", 11)) { | 454 | if (!strncmp(options, "scrollback:", 11)) { |
455 | options += 11; | 455 | options += 11; |
diff --git a/drivers/video/mb862xx/mb862xxfbdrv.c b/drivers/video/mb862xx/mb862xxfbdrv.c index 00ce1f34b496..57d940be5f3d 100644 --- a/drivers/video/mb862xx/mb862xxfbdrv.c +++ b/drivers/video/mb862xx/mb862xxfbdrv.c | |||
@@ -328,6 +328,8 @@ static int mb862xxfb_ioctl(struct fb_info *fbi, unsigned int cmd, | |||
328 | case MB862XX_L1_SET_CFG: | 328 | case MB862XX_L1_SET_CFG: |
329 | if (copy_from_user(l1_cfg, argp, sizeof(*l1_cfg))) | 329 | if (copy_from_user(l1_cfg, argp, sizeof(*l1_cfg))) |
330 | return -EFAULT; | 330 | return -EFAULT; |
331 | if (l1_cfg->dh == 0 || l1_cfg->dw == 0) | ||
332 | return -EINVAL; | ||
331 | if ((l1_cfg->sw >= l1_cfg->dw) && (l1_cfg->sh >= l1_cfg->dh)) { | 333 | if ((l1_cfg->sw >= l1_cfg->dw) && (l1_cfg->sh >= l1_cfg->dh)) { |
332 | /* downscaling */ | 334 | /* downscaling */ |
333 | outreg(cap, GC_CAP_CSC, | 335 | outreg(cap, GC_CAP_CSC, |
diff --git a/drivers/video/omap2/dss/sdi.c b/drivers/video/omap2/dss/sdi.c index c87e07ebb16d..66c8de4365d6 100644 --- a/drivers/video/omap2/dss/sdi.c +++ b/drivers/video/omap2/dss/sdi.c | |||
@@ -107,8 +107,21 @@ int omapdss_sdi_display_enable(struct omap_dss_device *dssdev) | |||
107 | 107 | ||
108 | sdi_config_lcd_manager(dssdev); | 108 | sdi_config_lcd_manager(dssdev); |
109 | 109 | ||
110 | dss_sdi_init(sdi.datapairs); | 110 | /* |
111 | * LCLK and PCLK divisors are located in shadow registers, and we | ||
112 | * normally write them to DISPC registers when enabling the output. | ||
113 | * However, SDI uses pck-free as source clock for its PLL, and pck-free | ||
114 | * is affected by the divisors. And as we need the PLL before enabling | ||
115 | * the output, we need to write the divisors early. | ||
116 | * | ||
117 | * It seems just writing to the DISPC register is enough, and we don't | ||
118 | * need to care about the shadow register mechanism for pck-free. The | ||
119 | * exact reason for this is unknown. | ||
120 | */ | ||
121 | dispc_mgr_set_clock_div(dssdev->manager->id, | ||
122 | &sdi.mgr_config.clock_info); | ||
111 | 123 | ||
124 | dss_sdi_init(sdi.datapairs); | ||
112 | r = dss_sdi_enable(); | 125 | r = dss_sdi_enable(); |
113 | if (r) | 126 | if (r) |
114 | goto err_sdi_enable; | 127 | goto err_sdi_enable; |