modify config for rkfb dual display

This commit is contained in:
yxj
2012-09-12 19:01:21 +08:00
parent 02e12a22b0
commit 753fa6e9e9
2 changed files with 24 additions and 10 deletions

View File

@@ -7,18 +7,32 @@ config FB_ROCKCHIP
---help---
Framebuffer driver for rockchip based platform
config DUAL_DISP_IN_KERNEL
bool "implement dual display in kernel"
choice
bool "Dual display ploy select"
depends on FB_ROCKCHIP
default NO_DUAL_DISP
help
If you use dual lcdc for dual display ,select "implement dual display in kernel with dual lcdc"
If you use one lcdc like rk2928 or one lcdc with RK Jetta,select "one lcdc dual output display interface support"
config DUAL_LCDC_DUAL_DISP_IN_KERNEL
bool "implement dual display in kernel with dual lcdc"
depends on FB_ROCKCHIP
default y if HDMI_RK30
help
select y will implement dual screen display in kernel
config ONE_LCDC_DUAL_OUTPUT_INF
bool "one lcdc dual output display interface support"
depends on FB_ROCKCHIP
default y if ARCH_RK2928
help
select y if on platform like rk2928 which have one lcdc but two output interface
config NO_DUAL_DISP
bool "NO dual display needed"
depends on FB_ROCKCHIP
help
No dual display needed
endchoice
config THREE_FB_BUFFER
bool "Three fb buffer support"
depends on FB_ROCKCHIP

View File

@@ -199,7 +199,7 @@ static int rk_pan_display(struct fb_var_screeninfo *var, struct fb_info *info)
}
#if defined(CONFIG_HDMI_RK30)
#if defined(CONFIG_DUAL_DISP_IN_KERNEL)
#if defined(CONFIG_DUAL_LCDC_DUAL_DISP_IN_KERNEL)
if(hdmi_get_hotplug() == HDMI_HPD_ACTIVED)
{
if(inf->num_fb >= 2)
@@ -363,7 +363,7 @@ static int rk_fb_set_par(struct fb_info *info)
var->pixclock = dev_drv->pixclock;
#if defined(CONFIG_HDMI_RK30)
#if defined(CONFIG_DUAL_DISP_IN_KERNEL)
#if defined(CONFIG_DUAL_LCDC_DUAL_DISP_IN_KERNEL)
if(hdmi_get_hotplug() == HDMI_HPD_ACTIVED)
{
if(inf->num_fb >= 2)
@@ -488,7 +488,7 @@ static int rk_fb_set_par(struct fb_info *info)
par->yvir = var->yres_virtual;
#if defined(CONFIG_HDMI_RK30)
#if defined(CONFIG_DUAL_DISP_IN_KERNEL)
#if defined(CONFIG_DUAL_LCDC_DUAL_DISP_IN_KERNEL)
if(hdmi_get_hotplug() == HDMI_HPD_ACTIVED)
{
if(info != info2)
@@ -701,7 +701,7 @@ int rk_fb_switch_screen(rk_screen *screen ,int enable ,int lcdc_id)
hdmi_var = &info->var;
hdmi_fix = &info->fix;
#if defined(CONFIG_DUAL_DISP_IN_KERNEL)
#if defined(CONFIG_DUAL_LCDC_DUAL_DISP_IN_KERNEL)
if(likely(inf->num_lcdc == 2))
{
pmy_var = &inf->fb[0]->var;
@@ -731,7 +731,7 @@ int rk_fb_switch_screen(rk_screen *screen ,int enable ,int lcdc_id)
ret = info->fbops->fb_open(info,1);
ret = dev_drv->load_screen(dev_drv,1);
ret = info->fbops->fb_set_par(info);
#if defined(CONFIG_DUAL_DISP_IN_KERNEL)
#if defined(CONFIG_DUAL_LCDC_DUAL_DISP_IN_KERNEL)
if(likely(inf->num_lcdc == 2))
{
pmy_info = inf->fb[0];
@@ -1204,7 +1204,7 @@ static int __devinit rk_fb_probe (struct platform_device *pdev)
}
platform_set_drvdata(pdev,fb_inf);
#if defined(CONFIG_HDMI_RK30)
#if defined(CONFIG_DUAL_DISP_IN_KERNEL)
#if defined(CONFIG_DUAL_LCDC_DUAL_DISP_IN_KERNEL)
fb_inf->workqueue = create_singlethread_workqueue("hdmi_post");
INIT_DELAYED_WORK(&(fb_inf->delay_work), hdmi_post_work);
#endif