modify fb hdmi for default output device
authorzyw <zyw@rock-chips.com>
Mon, 18 Apr 2011 07:42:44 +0000 (15:42 +0800)
committerzyw <zyw@rock-chips.com>
Mon, 18 Apr 2011 07:43:49 +0000 (15:43 +0800)
drivers/video/display/screen/Kconfig
drivers/video/display/screen/Makefile
drivers/video/display/screen/hdmi_anx7150.c [deleted file]
drivers/video/display/screen/hdmi_null.c [deleted file]
drivers/video/display/screen/lcd_anx7150_720p.c [deleted file]
drivers/video/display/screen/tv_null.c [deleted file]
drivers/video/hdmi/hdmi-fb.c
drivers/video/rk29_fb.c
include/linux/hdmi.h

index 31e879c5db6cc411a2b9acc64b24f3fa000fac1f..1f72231dd9d83ef75709b2333cd6b378644f27d1 100755 (executable)
@@ -43,10 +43,11 @@ config LCD_IPS1P5680_V1_E
     bool "MCU IPS1P5680_V1_E"
 config LCD_MCU_TFT480800_25_E
     bool "MCU TFT480800_25_E"
-config LCD_ANX7150_720P
-       bool "anx7150 720p for default panel"
+config DEFAULT_OUT_HDMI
+       bool "HDMI for default panel"
+       depends on HDMI
        ---help---
-       if you want set anx7150(720p 50hz) for default panel, android UI size is 1280x720.
+       if you want set HDMI for default panel, android UI size is HDMI default resolution.
 config LCD_AT070TNA2
        bool "RGB AT070TNA2"
 endchoice
index c5fa779e199d9e11470b7909410936558109db7a..62e0fac8ae2dd1ac6afa04edc89bda13abe7f1bd 100755 (executable)
@@ -1,7 +1,4 @@
 obj-$(CONFIG_LCD_NULL) += lcd_null.o
-obj-$(CONFIG_TV_NULL) += tv_null.o
-obj-$(CONFIG_HDMI_NULL) += hdmi_null.o
-
 
 
 obj-$(CONFIG_LCD_TD043MGEA1) += lcd_td043mgea1.o
@@ -19,12 +16,10 @@ obj-$(CONFIG_LCD_RGB_TFT480800_25_E) += lcd_rgb_tft480800_25_e.o
 obj-$(CONFIG_LCD_MCU_TFT480800_25_E) += lcd_mcu_tft480800_25_e.o
 obj-$(CONFIG_LCD_LS035Y8DX02A) += lcd_ls035y8dx02a.o
 
-obj-$(CONFIG_HDMI_ANX7150) += hdmi_anx7150.o
 
 obj-$(CONFIG_LCD_HX8357) += lcd_hx8357.o
 obj-$(CONFIG_LCD_HSD100PXN) += lcd_hsd100pxn.o
 obj-$(CONFIG_LCD_B101AW06) += lcd_B101AW06.o
-obj-$(CONFIG_LCD_ANX7150_720P) += lcd_anx7150_720p.o
 obj-$(CONFIG_LCD_ILI9803_CPT4_3) += lcd_ili9803_cpt4_3.o
 obj-$(CONFIG_LCD_RGB_TFT480800_25_E) += lcd_rgb_tft480800_25_e.o
 obj-$(CONFIG_LCD_LS035Y8DX02A) += lcd_ls035y8dx02a.o
diff --git a/drivers/video/display/screen/hdmi_anx7150.c b/drivers/video/display/screen/hdmi_anx7150.c
deleted file mode 100755 (executable)
index eed53ae..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-#include <linux/fb.h>
-#include <linux/delay.h>
-#include "../../rk29_fb.h"
-#include <mach/gpio.h>
-#include <mach/iomux.h>
-#include "screen.h"
-
-
-/* Base */
-#define OUT_TYPE               SCREEN_RGB
-#define OUT_FACE               OUT_P888
-#define DCLK_POL               0
-#define SWAP_RB                        0
-
-/* 576p Timing */
-#define OUT_CLK                        27
-#define H_PW                   64
-#define H_BP                   132
-#define H_VD                   720
-#define H_FP                   12
-#define V_PW                   5
-#define V_BP                   44
-#define V_VD                   576
-#define V_FP                   5
-
-/* 720p Timing */
-#define OUT_CLK2           74
-#define H_PW2                  40
-#define H_BP2                  260
-#define H_VD2                  1280
-#define H_FP2                  440
-#define V_PW2                  5
-#define V_BP2                  25
-#define V_VD2                  720
-#define V_FP2                  5
-
-
-int anx7150_init(void);
-int anx7150_standby(u8 enable);
-
-
-void set_hdmi_info(struct rk29fb_screen *screen)
-{
-    struct rk29fb_screen *screen2 = screen + 1;
-
-    /* ****************** 576p ******************* */
-    /* screen type & face */
-    screen->type = OUT_TYPE;
-    screen->face = OUT_FACE;
-
-    /* Screen size */
-    screen->x_res = H_VD;
-    screen->y_res = V_VD;
-
-    /* Timing */
-    screen->pixclock = OUT_CLK;
-       screen->left_margin = H_BP;
-       screen->right_margin = H_FP;
-       screen->hsync_len = H_PW;
-       screen->upper_margin = V_BP;
-       screen->lower_margin = V_FP;
-       screen->vsync_len = V_PW;
-
-       /* Pin polarity */
-       screen->pin_hsync = 0;
-       screen->pin_vsync = 0;
-       screen->pin_den = 0;
-       screen->pin_dclk = DCLK_POL;
-
-       /* Swap rule */
-    screen->swap_rb = SWAP_RB;
-    screen->swap_rg = 0;
-    screen->swap_gb = 0;
-    screen->swap_delta = 0;
-    screen->swap_dumy = 0;
-
-    /* Operation function*/
-    screen->init = anx7150_init;
-    screen->standby = anx7150_standby;
-
-
-    /* ****************** 720p ******************* */
-    /* screen type & face */
-    screen2->type = OUT_TYPE;
-    screen2->face = OUT_FACE;
-
-    /* Screen size */
-    screen2->x_res = H_VD2;
-    screen2->y_res = V_VD2;
-
-    /* Timing */
-    screen2->pixclock = OUT_CLK2;
-       screen2->left_margin = H_BP2;
-       screen2->right_margin = H_FP2;
-       screen2->hsync_len = H_PW2;
-       screen2->upper_margin = V_BP2;
-       screen2->lower_margin = V_FP2;
-       screen2->vsync_len = V_PW2;
-
-       /* Pin polarity */
-       screen2->pin_hsync = 0;
-       screen2->pin_vsync = 0;
-       screen2->pin_den = 0;
-       screen2->pin_dclk = DCLK_POL;
-
-       /* Swap rule */
-    screen2->swap_rb = SWAP_RB;
-    screen2->swap_rg = 0;
-    screen2->swap_gb = 0;
-    screen2->swap_delta = 0;
-    screen2->swap_dumy = 0;
-
-    /* Operation function*/
-    screen2->init = anx7150_init;
-    screen2->standby = anx7150_standby;
-}
-
-
-int anx7150_init(void)
-{
-    return 0;
-}
-
-int anx7150_standby(u8 enable)
-{
-    return 0;
-}
-
diff --git a/drivers/video/display/screen/hdmi_null.c b/drivers/video/display/screen/hdmi_null.c
deleted file mode 100755 (executable)
index 5aa9f3f..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-
-#include <linux/fb.h>
-#include <linux/delay.h>
-#include "../../rk29_fb.h"
-#include <mach/gpio.h>
-#include <mach/iomux.h>
-#include "screen.h"
-
-
-void set_hdmi_info(struct rk29fb_screen *screen)
-{
-    memset(screen, 0, sizeof(struct rk29fb_screen));
-    screen->face = OUT_P666;
-}
diff --git a/drivers/video/display/screen/lcd_anx7150_720p.c b/drivers/video/display/screen/lcd_anx7150_720p.c
deleted file mode 100644 (file)
index 5464c10..0000000
+++ /dev/null
@@ -1,72 +0,0 @@
-#include <linux/fb.h>\r
-#include <linux/delay.h>\r
-#include "../../rk29_fb.h"\r
-#include <mach/gpio.h>\r
-#include <mach/iomux.h>\r
-#include <mach/board.h>\r
-#include "screen.h"\r
-\r
-#define OUT_TYPE               SCREEN_HDMI\r
-#define OUT_FACE               OUT_P888\r
-#define LCDC_ACLK        312000000\r
-\r
-#define OUT_CLK            74250000\r
-#define H_PW                   40\r
-#define H_BP                   220\r
-#define H_VD                   1280\r
-#define H_FP                   440\r
-#define V_PW                   5\r
-#define V_BP                   20\r
-#define V_VD                   720\r
-#define V_FP                   5\r
-\r
-#define LCD_WIDTH       1280\r
-#define LCD_HEIGHT      720\r
-/* Other */\r
-#define DCLK_POL               1\r
-#define SWAP_RB                        0\r
-\r
-\r
-void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info )\r
-{\r
-    /* screen type & face */\r
-    screen->type = OUT_TYPE;\r
-    screen->face = OUT_FACE;\r
-\r
-    /* Screen size */\r
-    screen->x_res = H_VD;\r
-    screen->y_res = V_VD;\r
-\r
-    screen->width = LCD_WIDTH;\r
-    screen->height = LCD_HEIGHT;\r
-\r
-    /* Timing */\r
-    screen->lcdc_aclk = LCDC_ACLK;\r
-    screen->pixclock = OUT_CLK;\r
-       screen->left_margin = H_BP;\r
-       screen->right_margin = H_FP;\r
-       screen->hsync_len = H_PW;\r
-       screen->upper_margin = V_BP;\r
-       screen->lower_margin = V_FP;\r
-       screen->vsync_len = V_PW;\r
-\r
-       /* Pin polarity */\r
-       screen->pin_hsync = 0;\r
-       screen->pin_vsync = 0;\r
-       screen->pin_den = 0;\r
-       screen->pin_dclk = DCLK_POL;\r
-\r
-       /* Swap rule */\r
-    screen->swap_rb = SWAP_RB;\r
-    screen->swap_rg = 0;\r
-    screen->swap_gb = 0;\r
-    screen->swap_delta = 0;\r
-    screen->swap_dumy = 0;\r
-\r
-    /* Operation function*/\r
-    screen->init = NULL;\r
-    screen->standby = NULL;\r
-}\r
-\r
-\r
-\r
diff --git a/drivers/video/display/screen/tv_null.c b/drivers/video/display/screen/tv_null.c
deleted file mode 100755 (executable)
index ac80ccf..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-
-#include <linux/fb.h>
-#include <linux/delay.h>
-#include "../../rk29_fb.h"
-#include <mach/gpio.h>
-#include <mach/iomux.h>
-#include "screen.h"
-
-
-
-void set_tv_info(struct rk29fb_screen *screen)
-{
-    memset(screen, 0, sizeof(struct rk29fb_screen));
-    screen->face = OUT_P666;
-}
index 9f1c8057250216220eb55cd74a2a00ae59374d40..b2e37e83abe4478fbafaef6e235c7084afe8f1fe 100644 (file)
@@ -1,9 +1,9 @@
 #include <linux/console.h>
 #include <linux/fb.h>
-#include <linux/hdmi.h>
-#include <linux/completion.h>
 
+#include <linux/completion.h>
 #include "../display/screen/screen.h"
+#include <linux/hdmi.h>
 #include "../rk29_fb.h"
 
 
@@ -281,4 +281,15 @@ int hdmi_resolution_changed(struct hdmi *hdmi, int xres, int yres, int video_on)
        }*/
        return ret;
 }
+
+int hdmi_get_default_resolution(void *screen)
+{
+    struct rk29fb_screen hdmi_info[4];
+
+       hdmi_set_info(&hdmi_info[0]);
+    memcpy((struct rk29fb_screen*)screen, &hdmi_info[HDMI_DEFAULT_RESOLUTION], sizeof(struct rk29fb_screen));
+    return 0;  
+}
+
+
 EXPORT_SYMBOL(hdmi_resolution_changed);
\ No newline at end of file
index a5f0cbd0eadc7a59dc2f7d000f92fea466d8c014..7dc827a35c53438262e601d6e85834f5136f1103 100755 (executable)
@@ -2321,7 +2321,11 @@ static int __init rk29fb_probe (struct platform_device *pdev)
     mach_info = pdev->dev.platform_data;
     /* Fill screen info and set current screen */
     fbprintk(">> Fill screen info and set current screen \n");
+   #ifdef CONFIG_DEFAULT_OUT_HDMI  // set hdmi for default output 
+    hdmi_get_default_resolution(&inf->panel1_info);
+   #else
     set_lcd_info(&inf->panel1_info, mach_info->lcd_info);
+   #endif
     inf->cur_screen = &inf->panel1_info;
     screen = inf->cur_screen;
     if(SCREEN_NULL==screen->type)
index 3813b74e8fae3825d45f3ece77093aa0a8398a54..369cd0f7bc744eaa01a0f6ae77f421c0cf13cccb 100755 (executable)
@@ -15,7 +15,6 @@
 #include <linux/completion.h>\r
 \r
 \r
-\r
 #ifdef CONFIG_HDMI_DEBUG\r
 #define hdmi_dbg(dev, format, arg...)          \\r
        dev_printk(KERN_INFO , dev , format , ## arg)\r
@@ -84,4 +83,6 @@ extern int hdmi_resolution_changed(struct hdmi *hdmi, int xres, int yres, int vi
 \r
 extern struct hdmi *get_hdmi_struct(int nr);\r
 \r
+extern int hdmi_get_default_resolution(void *screen);\r
+\r
 #endif\r