\r
struct class *hdmi_class;\r
struct hdmi_id_ref_info {\r
+ struct hdmi *hdmi;\r
int id;\r
int ref;\r
}ref_info[HDMI_MAX_ID];\r
}\r
\r
dev_set_drvdata(hdmi->dev, hdmi);\r
+ ref_info[i].hdmi = hdmi;\r
\r
INIT_WORK(&hdmi->changed_work, hdmi_changed_work);\r
\r
hdmi_remove_attrs(hdmi);\r
device_unregister(hdmi->dev);\r
ref_info[hdmi->id].ref = 0;\r
+ ref_info[hdmi->id].hdmi = NULL;\r
+}\r
+struct hdmi *get_hdmi_struct(int nr)\r
+{\r
+ if(ref_info[nr].ref == 0)\r
+ return NULL;\r
+ else\r
+ return ref_info[nr].hdmi;\r
}\r
-\r
static int __init hdmi_class_init(void)\r
{\r
int i;\r
for(i = 0; i < HDMI_MAX_ID; i++) {\r
ref_info[i].id = i;\r
ref_info[i].ref = 0;\r
+ ref_info[i].hdmi = NULL;\r
}\r
return 0;\r
}\r
/* Base */
+#define LCD_ACLK 312000000
+
#define OUT_TYPE SCREEN_RGB
#define OUT_FACE OUT_P888
-#define DCLK_POL 0
+#define DCLK_POL 1
#define SWAP_RB 0
/* 720p@60Hz Timing */
/* Timing */
screen->pixclock = OUT_CLK;
+ screen4->lcdc_aclk = LCD_ACLK;
screen->left_margin = H_BP;
screen->right_margin = H_FP;
screen->hsync_len = H_PW;
/* Timing */
screen2->pixclock = OUT_CLK2;
+ screen2->lcdc_aclk = LCD_ACLK;
screen2->left_margin = H_BP2;
screen2->right_margin = H_FP2;
screen2->hsync_len = H_PW2;
/* Timing */
screen3->pixclock = OUT_CLK3;
+ screen3->lcdc_aclk = LCD_ACLK;
screen3->left_margin = H_BP3;
screen3->right_margin = H_FP3;
screen3->hsync_len = H_PW3;
/* Timing */
screen4->pixclock = OUT_CLK4;
+ screen4->lcdc_aclk = LCD_ACLK;
screen4->left_margin = H_BP4;
screen4->right_margin = H_FP4;
screen4->hsync_len = H_PW4;
}
return rc;
}
-
+int hdmi_resolution_changed(struct hdmi *hdmi, int xres, int yres)
+{
+ if(xres > 1280 && hdmi->resolution != HDMI_1920x1080p_50Hz) {
+ hdmi->resolution = HDMI_1920x1080p_50Hz;
+ hdmi->display_on = 1;
+ hdmi->hdmi_set_param(hdmi);
+ }
+ else if(xres >1024 && hdmi->resolution != HDMI_1280x720p_50Hz){
+ hdmi->resolution = HDMI_1280x720p_50Hz;
+ hdmi->display_on = 1;
+ hdmi->hdmi_set_param(hdmi);
+ }
+ else {
+ if(hdmi->display_on == 1)
+ hdmi->hdmi_display_off(hdmi);
+ }
+ return 0;
+}
extern int hdmi_fb_set_resolution(unsigned char resolution);\r
\r
extern int hdmi_switch_fb(int resolution, int type);\r
+extern int hdmi_resolution_changed(struct hdmi *hdmi, int xres, int yres);\r
\r
+extern struct hdmi *get_hdmi_struct(int nr);\r
\r
#endif\r