From 7f0cc043b5e3db5c7267c52ae30f8e3fa4feb1fc Mon Sep 17 00:00:00 2001 From: yxj Date: Tue, 28 Aug 2012 14:35:39 +0800 Subject: [PATCH] rkhdmi:modify to compatible for platform which have only one lcdc but need to implement dual display like rk2928 --- drivers/video/rockchip/hdmi/rk_hdmi_lcdc.c | 16 +++++++++------- drivers/video/rockchip/hdmi/rk_hdmi_task.c | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/drivers/video/rockchip/hdmi/rk_hdmi_lcdc.c b/drivers/video/rockchip/hdmi/rk_hdmi_lcdc.c index da445b953211..be2be8b72a9e 100755 --- a/drivers/video/rockchip/hdmi/rk_hdmi_lcdc.c +++ b/drivers/video/rockchip/hdmi/rk_hdmi_lcdc.c @@ -493,19 +493,21 @@ const char *hdmi_get_video_mode_name(unsigned char vic) int hdmi_switch_fb(struct hdmi *hdmi, int vic) { int rc = 0; - + rk_screen *screen; + + + screen = kzalloc(sizeof(struct rk29fb_screen), GFP_KERNEL); + if(screen == NULL) + return -1; + if(hdmi->vic == 0) hdmi->vic = HDMI_VIDEO_DEFAULT_MODE; - if(hdmi->lcdc == NULL || hdmi->lcdc->screen == NULL) { - dev_err(hdmi->dev, "lcdc %d not exist\n", HDMI_SOURCE_DEFAULT); - return -1; - } - rc = hdmi_set_info(hdmi->lcdc->screen, hdmi->vic); + rc = hdmi_set_info(screen, hdmi->vic); if(rc == 0) { - rk_fb_switch_screen(hdmi->lcdc->screen, 1, HDMI_SOURCE_DEFAULT); + rk_fb_switch_screen(screen, 1, HDMI_SOURCE_DEFAULT); rk_fb_disp_scale(hdmi->xscale, hdmi->yscale, HDMI_SOURCE_DEFAULT); } return rc; diff --git a/drivers/video/rockchip/hdmi/rk_hdmi_task.c b/drivers/video/rockchip/hdmi/rk_hdmi_task.c index 233d1757ff04..7bb6eb6c2628 100755 --- a/drivers/video/rockchip/hdmi/rk_hdmi_task.c +++ b/drivers/video/rockchip/hdmi/rk_hdmi_task.c @@ -80,7 +80,7 @@ void hdmi_sys_remove(void) memset(&hdmi->edid, 0, sizeof(struct hdmi_edid)); INIT_LIST_HEAD(&hdmi->edid.modelist); hdmi->display = HDMI_DISABLE; - rk_fb_switch_screen(hdmi->lcdc->screen, 0, HDMI_SOURCE_DEFAULT); + rk_fb_switch_screen(hdmi->lcdc->screen1, 0, HDMI_SOURCE_DEFAULT); kobject_uevent_env(&hdmi->dev->kobj, KOBJ_REMOVE, envp); #ifdef CONFIG_SWITCH switch_set_state(&(hdmi->switch_hdmi), 0); -- 2.34.1