OMAP4: DSS2: HDMI: Use specific HDMI timings structure
As hdmi has few additional parameters such as vsync and hsync
polarity which is missing in DSS timing structure, define HDMI timings
structure for hdmi to use instead of OMAP DSS timing structure.
Signed-off-by: Mythri P K <mythripk@ti.com>
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c
index 47e9f4a..c387bf4 100644
--- a/drivers/video/omap2/dss/hdmi.c
+++ b/drivers/video/omap2/dss/hdmi.c
@@ -534,6 +534,21 @@
return 0;
}
+static void copy_hdmi_to_dss_timings(
+ const struct hdmi_video_timings *hdmi_timings,
+ struct omap_video_timings *timings)
+{
+ timings->x_res = hdmi_timings->x_res;
+ timings->y_res = hdmi_timings->y_res;
+ timings->pixel_clock = hdmi_timings->pixel_clock;
+ timings->hbp = hdmi_timings->hbp;
+ timings->hfp = hdmi_timings->hfp;
+ timings->hsw = hdmi_timings->hsw;
+ timings->vbp = hdmi_timings->vbp;
+ timings->vfp = hdmi_timings->vfp;
+ timings->vsw = hdmi_timings->vsw;
+}
+
static int get_timings_index(void)
{
int code;
@@ -558,7 +573,7 @@
{
int i = 0, code = -1, temp_vsync = 0, temp_hsync = 0;
int timing_vsync = 0, timing_hsync = 0;
- struct omap_video_timings temp;
+ struct hdmi_video_timings temp;
struct hdmi_cm cm = {-1};
DSSDBG("hdmi_get_code\n");
@@ -716,7 +731,8 @@
code = get_timings_index();
- *dp = cea_vesa_timings[code].timings;
+ copy_hdmi_to_dss_timings(&cea_vesa_timings[code].timings, dp);
+
}
static void hdmi_core_init(struct hdmi_core_video_config *video_cfg,
@@ -1178,7 +1194,8 @@
hdmi_read_edid(p);
}
code = get_timings_index();
- dssdev->panel.timings = cea_vesa_timings[code].timings;
+ copy_hdmi_to_dss_timings(&cea_vesa_timings[code].timings,
+ &dssdev->panel.timings);
update_hdmi_timings(&hdmi.ip_data.cfg, p, code);
phy = p->pixel_clock;