mirror of https://gitee.com/openkylin/linux.git
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
This commit is contained in:
commit
6659145746
|
@ -987,7 +987,6 @@ int __devinit auok190x_common_probe(struct platform_device *pdev,
|
||||||
fb_dealloc_cmap(&info->cmap);
|
fb_dealloc_cmap(&info->cmap);
|
||||||
err_cmap:
|
err_cmap:
|
||||||
fb_deferred_io_cleanup(info);
|
fb_deferred_io_cleanup(info);
|
||||||
kfree(info->fbdefio);
|
|
||||||
err_defio:
|
err_defio:
|
||||||
vfree((void *)info->screen_base);
|
vfree((void *)info->screen_base);
|
||||||
err_irq:
|
err_irq:
|
||||||
|
@ -1022,7 +1021,6 @@ int __devexit auok190x_common_remove(struct platform_device *pdev)
|
||||||
fb_dealloc_cmap(&info->cmap);
|
fb_dealloc_cmap(&info->cmap);
|
||||||
|
|
||||||
fb_deferred_io_cleanup(info);
|
fb_deferred_io_cleanup(info);
|
||||||
kfree(info->fbdefio);
|
|
||||||
|
|
||||||
vfree((void *)info->screen_base);
|
vfree((void *)info->screen_base);
|
||||||
|
|
||||||
|
|
|
@ -162,7 +162,7 @@ static void bit_putcs(struct vc_data *vc, struct fb_info *info,
|
||||||
image.depth = 1;
|
image.depth = 1;
|
||||||
|
|
||||||
if (attribute) {
|
if (attribute) {
|
||||||
buf = kmalloc(cellsize, GFP_KERNEL);
|
buf = kmalloc(cellsize, GFP_ATOMIC);
|
||||||
if (!buf)
|
if (!buf)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -449,7 +449,7 @@ static int __init fb_console_setup(char *this_opt)
|
||||||
|
|
||||||
while ((options = strsep(&this_opt, ",")) != NULL) {
|
while ((options = strsep(&this_opt, ",")) != NULL) {
|
||||||
if (!strncmp(options, "font:", 5))
|
if (!strncmp(options, "font:", 5))
|
||||||
strcpy(fontname, options + 5);
|
strlcpy(fontname, options + 5, sizeof(fontname));
|
||||||
|
|
||||||
if (!strncmp(options, "scrollback:", 11)) {
|
if (!strncmp(options, "scrollback:", 11)) {
|
||||||
options += 11;
|
options += 11;
|
||||||
|
|
|
@ -328,6 +328,8 @@ static int mb862xxfb_ioctl(struct fb_info *fbi, unsigned int cmd,
|
||||||
case MB862XX_L1_SET_CFG:
|
case MB862XX_L1_SET_CFG:
|
||||||
if (copy_from_user(l1_cfg, argp, sizeof(*l1_cfg)))
|
if (copy_from_user(l1_cfg, argp, sizeof(*l1_cfg)))
|
||||||
return -EFAULT;
|
return -EFAULT;
|
||||||
|
if (l1_cfg->dh == 0 || l1_cfg->dw == 0)
|
||||||
|
return -EINVAL;
|
||||||
if ((l1_cfg->sw >= l1_cfg->dw) && (l1_cfg->sh >= l1_cfg->dh)) {
|
if ((l1_cfg->sw >= l1_cfg->dw) && (l1_cfg->sh >= l1_cfg->dh)) {
|
||||||
/* downscaling */
|
/* downscaling */
|
||||||
outreg(cap, GC_CAP_CSC,
|
outreg(cap, GC_CAP_CSC,
|
||||||
|
|
|
@ -107,8 +107,21 @@ int omapdss_sdi_display_enable(struct omap_dss_device *dssdev)
|
||||||
|
|
||||||
sdi_config_lcd_manager(dssdev);
|
sdi_config_lcd_manager(dssdev);
|
||||||
|
|
||||||
dss_sdi_init(sdi.datapairs);
|
/*
|
||||||
|
* LCLK and PCLK divisors are located in shadow registers, and we
|
||||||
|
* normally write them to DISPC registers when enabling the output.
|
||||||
|
* However, SDI uses pck-free as source clock for its PLL, and pck-free
|
||||||
|
* is affected by the divisors. And as we need the PLL before enabling
|
||||||
|
* the output, we need to write the divisors early.
|
||||||
|
*
|
||||||
|
* It seems just writing to the DISPC register is enough, and we don't
|
||||||
|
* need to care about the shadow register mechanism for pck-free. The
|
||||||
|
* exact reason for this is unknown.
|
||||||
|
*/
|
||||||
|
dispc_mgr_set_clock_div(dssdev->manager->id,
|
||||||
|
&sdi.mgr_config.clock_info);
|
||||||
|
|
||||||
|
dss_sdi_init(sdi.datapairs);
|
||||||
r = dss_sdi_enable();
|
r = dss_sdi_enable();
|
||||||
if (r)
|
if (r)
|
||||||
goto err_sdi_enable;
|
goto err_sdi_enable;
|
||||||
|
|
Loading…
Reference in New Issue