From: yxj Date: Tue, 28 Aug 2012 06:35:39 +0000 (+0800) Subject: rkhdmi:modify to compatible for platform which have only one lcdc but need to impleme... X-Git-Tag: firefly_0821_release~8795 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=7f0cc043b5e3db5c7267c52ae30f8e3fa4feb1fc;p=firefly-linux-kernel-4.4.55.git rkhdmi:modify to compatible for platform which have only one lcdc but need to implement dual display like rk2928 --- 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);