video: rockchip: screen: add refresh mode for cmd mode screen
authorHuang Jiachai <hjc@rock-chips.com>
Wed, 12 Oct 2016 08:53:08 +0000 (16:53 +0800)
committerHuang Jiachai <hjc@rock-chips.com>
Wed, 26 Oct 2016 08:54:56 +0000 (16:54 +0800)
Change-Id: I4643eb1272a1f504ba4b36eb31a4125fa22390f3
Signed-off-by: Huang Jiachai <hjc@rock-chips.com>
drivers/video/of_display_timing.c
drivers/video/rockchip/rk_fb.c
include/linux/rk_screen.h
include/video/display_timing.h

index e393412faf6637788222a4e3f3c8adf473644c62..b253875e99c74aebe60172169d33a371fca076e9 100644 (file)
@@ -107,6 +107,10 @@ static int of_parse_display_timing(const struct device_node *np,
                dt->flags |= val ? DISPLAY_FLAGS_SWAP_RB : 0;
        if (!of_property_read_u32(np, "screen-type", &val))
                dt->screen_type = val;
+       if (!of_property_read_u32(np, "refresh-mode", &val))
+               dt->refresh_mode = val;
+       else
+               dt->refresh_mode = 0;
        if (!of_property_read_u32(np, "lvds-format", &val))
                dt->lvds_format = val;
        if (!of_property_read_u32(np, "out-face", &val))
index 4e0641876baf58d8548d58ea06ec3c329d88d74e..32625a8b113778dfc42844d7236783757b2dab62 100644 (file)
@@ -500,6 +500,7 @@ int rk_fb_video_mode_from_timing(const struct display_timing *dt,
        screen->mode.yres = dt->vactive.typ;
        screen->mode.vsync_len = dt->vsync_len.typ;
        screen->type = dt->screen_type;
+       screen->refresh_mode = dt->refresh_mode;
        screen->lvds_format = dt->lvds_format;
        screen->face = dt->face;
        screen->color_mode = dt->color_mode;
index af0ffe7d70d05adcd8b3ba6ccc8d61d4371358a3..5e5cd30d08ed517a9e86476b6a0ebc0a84c44064 100644 (file)
@@ -54,7 +54,7 @@ struct overscan {
        unsigned char bottom;
 };
 
-/* Screen description 
+/* Screen description
 *type:LVDS,RGB,MIPI,MCU
 *lvds_fromat:lvds data format,set it if the screen is lvds
 *face:thi display output face,18bit,24bit,etc
@@ -62,11 +62,12 @@ struct overscan {
 */
 struct rk_screen {
        u16 type;
-       u16 lvds_format; 
+       u16 refresh_mode;
+       u16 lvds_format;
        u16 face;
        u16 color_mode;
-       u8 lcdc_id;   
-       u8 screen_id; 
+       u8 lcdc_id;
+       u8 screen_id;
        struct fb_videomode mode;
        u32 post_dsp_stx;
        u32 post_dsp_sty;
index 0ff62c5e16f886405107fe6ba699167765004d8a..e9e168a56c5c78ac9bfdafc873bfd2e9e6c0bef1 100644 (file)
@@ -78,6 +78,7 @@ struct display_timing {
        enum display_flags flags;               /* display flags */
 #if defined(CONFIG_FB_ROCKCHIP)
        u16 screen_type;                        /*screen type*/
+       u16 refresh_mode;                       /* 0: video mode 1: cmd mode */
        u16 screen_widt;                        /* screen physical size */
        u16 screen_hight;
        u16 lvds_format;                        /*lvds data format for lvds screen*/