From 8e7de66d9b36e487d06edc1a9a390915f0d84d38 Mon Sep 17 00:00:00 2001 From: zyw Date: Mon, 18 Apr 2011 15:42:44 +0800 Subject: [PATCH] modify fb hdmi for default output device --- drivers/video/display/screen/Kconfig | 7 +- drivers/video/display/screen/Makefile | 5 - drivers/video/display/screen/hdmi_anx7150.c | 128 ------------------ drivers/video/display/screen/hdmi_null.c | 14 -- .../video/display/screen/lcd_anx7150_720p.c | 72 ---------- drivers/video/display/screen/tv_null.c | 15 -- drivers/video/hdmi/hdmi-fb.c | 15 +- drivers/video/rk29_fb.c | 4 + include/linux/hdmi.h | 3 +- 9 files changed, 23 insertions(+), 240 deletions(-) delete mode 100755 drivers/video/display/screen/hdmi_anx7150.c delete mode 100755 drivers/video/display/screen/hdmi_null.c delete mode 100644 drivers/video/display/screen/lcd_anx7150_720p.c delete mode 100755 drivers/video/display/screen/tv_null.c diff --git a/drivers/video/display/screen/Kconfig b/drivers/video/display/screen/Kconfig index 31e879c5db6c..1f72231dd9d8 100755 --- a/drivers/video/display/screen/Kconfig +++ b/drivers/video/display/screen/Kconfig @@ -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 diff --git a/drivers/video/display/screen/Makefile b/drivers/video/display/screen/Makefile index c5fa779e199d..62e0fac8ae2d 100755 --- a/drivers/video/display/screen/Makefile +++ b/drivers/video/display/screen/Makefile @@ -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 index eed53ae54544..000000000000 --- a/drivers/video/display/screen/hdmi_anx7150.c +++ /dev/null @@ -1,128 +0,0 @@ -#include -#include -#include "../../rk29_fb.h" -#include -#include -#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 index 5aa9f3f4c72e..000000000000 --- a/drivers/video/display/screen/hdmi_null.c +++ /dev/null @@ -1,14 +0,0 @@ - -#include -#include -#include "../../rk29_fb.h" -#include -#include -#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 index 5464c109fcf0..000000000000 --- a/drivers/video/display/screen/lcd_anx7150_720p.c +++ /dev/null @@ -1,72 +0,0 @@ -#include -#include -#include "../../rk29_fb.h" -#include -#include -#include -#include "screen.h" - -#define OUT_TYPE SCREEN_HDMI -#define OUT_FACE OUT_P888 -#define LCDC_ACLK 312000000 - -#define OUT_CLK 74250000 -#define H_PW 40 -#define H_BP 220 -#define H_VD 1280 -#define H_FP 440 -#define V_PW 5 -#define V_BP 20 -#define V_VD 720 -#define V_FP 5 - -#define LCD_WIDTH 1280 -#define LCD_HEIGHT 720 -/* Other */ -#define DCLK_POL 1 -#define SWAP_RB 0 - - -void set_lcd_info(struct rk29fb_screen *screen, struct rk29lcd_info *lcd_info ) -{ - /* screen type & face */ - screen->type = OUT_TYPE; - screen->face = OUT_FACE; - - /* Screen size */ - screen->x_res = H_VD; - screen->y_res = V_VD; - - screen->width = LCD_WIDTH; - screen->height = LCD_HEIGHT; - - /* Timing */ - screen->lcdc_aclk = LCDC_ACLK; - 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 = NULL; - screen->standby = NULL; -} - - - diff --git a/drivers/video/display/screen/tv_null.c b/drivers/video/display/screen/tv_null.c deleted file mode 100755 index ac80ccfb987c..000000000000 --- a/drivers/video/display/screen/tv_null.c +++ /dev/null @@ -1,15 +0,0 @@ - -#include -#include -#include "../../rk29_fb.h" -#include -#include -#include "screen.h" - - - -void set_tv_info(struct rk29fb_screen *screen) -{ - memset(screen, 0, sizeof(struct rk29fb_screen)); - screen->face = OUT_P666; -} diff --git a/drivers/video/hdmi/hdmi-fb.c b/drivers/video/hdmi/hdmi-fb.c index 9f1c80572502..b2e37e83abe4 100644 --- a/drivers/video/hdmi/hdmi-fb.c +++ b/drivers/video/hdmi/hdmi-fb.c @@ -1,9 +1,9 @@ #include #include -#include -#include +#include #include "../display/screen/screen.h" +#include #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 diff --git a/drivers/video/rk29_fb.c b/drivers/video/rk29_fb.c index a5f0cbd0eadc..7dc827a35c53 100755 --- a/drivers/video/rk29_fb.c +++ b/drivers/video/rk29_fb.c @@ -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) diff --git a/include/linux/hdmi.h b/include/linux/hdmi.h index 3813b74e8fae..369cd0f7bc74 100755 --- a/include/linux/hdmi.h +++ b/include/linux/hdmi.h @@ -15,7 +15,6 @@ #include - #ifdef CONFIG_HDMI_DEBUG #define hdmi_dbg(dev, format, arg...) \ dev_printk(KERN_INFO , dev , format , ## arg) @@ -84,4 +83,6 @@ extern int hdmi_resolution_changed(struct hdmi *hdmi, int xres, int yres, int vi extern struct hdmi *get_hdmi_struct(int nr); +extern int hdmi_get_default_resolution(void *screen); + #endif -- 2.34.1