rk screen:add interface to calculator fb size by screen resolution
authoryxj <yxj@rock-chips.com>
Wed, 23 Jan 2013 03:34:26 +0000 (11:34 +0800)
committeryxj <yxj@rock-chips.com>
Wed, 23 Jan 2013 03:39:30 +0000 (11:39 +0800)
drivers/video/display/screen/lcd_LP097QX1.c
drivers/video/display/screen/lcd_b101ew05.c
drivers/video/display/screen/lcd_ds1006h.c
include/linux/rk_screen.h

index 27b9ed821077857ec59269e09c7a15965c37a359..1b93c87bf45df7d11f86f7c255baf2cc557d66fc 100644 (file)
@@ -117,3 +117,15 @@ void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info )
     screen->standby = NULL;\r
     screen->dsp_lut = dsp_lut;\r
 }\r
+\r
+size_t get_fb_size(void)\r
+{\r
+       size_t size = 0;\r
+       #if defined(CONFIG_THREE_FB_BUFFER)\r
+               size = ((H_VD)*(V_VD)<<2)* 3; //three buffer\r
+       #else\r
+               size = ((H_VD)*(V_VD)<<2)<<1; //two buffer\r
+       #endif\r
+       return ALIGN(size,SZ_1M);\r
+}\r
+\r
index c667c5453c2c849149d8c3a47f17bf5030c1db08..89494ec81df96fab0ccc249892bd328d8f82cb1d 100755 (executable)
@@ -340,3 +340,14 @@ void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info )
        screen->sscreen_set = rk610_lcd_scaler_set_param;
 #endif
 }
+
+size_t get_fb_size(void)
+{
+       size_t size = 0;
+       #if defined(CONFIG_THREE_FB_BUFFER)
+               size = ((H_VD)*(V_VD)<<2)* 3; //three buffer
+       #else
+               size = ((H_VD)*(V_VD)<<2)<<1; //two buffer
+       #endif
+       return ALIGN(size,SZ_1M);
+}
index fb8ee356ce755a3a0f71dc778b063245f0fec10c..2ad348da37f3dddc5a8a42c3351ec4037fc5d240 100755 (executable)
@@ -333,3 +333,15 @@ void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info )
        screen->sscreen_set = rk610_lcd_scaler_set_param;
 #endif
 }
+
+size_t get_fb_size(void)
+{
+       size_t size = 0;
+       #if defined(CONFIG_THREE_FB_BUFFER)
+               size = ((H_VD)*(V_VD)<<2)* 3; //three buffer
+       #else
+               size = ((H_VD)*(V_VD)<<2)<<1; //two buffer
+       #endif
+       return ALIGN(size,SZ_1M);
+}
+
index ef3688cb4201165562a9e218e3fefb0ab342f317..700a157eca3bba1b05b9b37f279a17c718962e7b 100644 (file)
@@ -154,6 +154,7 @@ struct rk29fb_info {
 static inline void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info) {}
 #else
 extern void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info);
+extern size_t get_fb_size(void);
 #endif
 extern void set_tv_info(struct rk29fb_screen *screen);
 extern void set_hdmi_info(struct rk29fb_screen *screen);