aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMythri P K <mythripk@ti.com>2012-04-11 07:08:07 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2013-08-06 07:55:06 -0400
commitfd3cd7ee126b2c3768d5253e12ac51868b0652f1 (patch)
treed80ae965628995db1b5effdf4468c5ab241813ff
parentfb52566873ca8c7006948b9d51c7f3fbcc0b1116 (diff)
OMAPDSS: HDMI: Fix AVI infoframe bug
ti_hdmi_4xxx_basic_configure() is supposed to initialize the AVI infoframe data in the ip_data container. However, the function actually takes a copy of the infoframe from the ip_data, and then goes on initializing that copy. The initialized data is never copied back to the ip_data container, thus the infoframe in ip_data is left always zero. Afaik, this doesn't really cause any issues in the current mainline, as we don't use the advanced features offered by the AVI infoframe. This patch fixes the initialization of the AVI infoframe. Signed-off-by: Mythri P K <mythripk@ti.com> [tomi.valkeinen@ti.com: updated the description] Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
-rw-r--r--drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c42
1 files changed, 20 insertions, 22 deletions
diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
index e242ed85cb07..3dfe00956a4f 100644
--- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
@@ -779,16 +779,14 @@ void ti_hdmi_4xxx_basic_configure(struct hdmi_ip_data *ip_data)
779 struct omap_video_timings video_timing; 779 struct omap_video_timings video_timing;
780 struct hdmi_video_format video_format; 780 struct hdmi_video_format video_format;
781 /* HDMI core */ 781 /* HDMI core */
782 struct hdmi_core_infoframe_avi avi_cfg = ip_data->avi_cfg; 782 struct hdmi_core_infoframe_avi *avi_cfg = &ip_data->avi_cfg;
783 struct hdmi_core_video_config v_core_cfg; 783 struct hdmi_core_video_config v_core_cfg;
784 struct hdmi_core_packet_enable_repeat repeat_cfg; 784 struct hdmi_core_packet_enable_repeat repeat_cfg;
785 struct hdmi_config *cfg = &ip_data->cfg; 785 struct hdmi_config *cfg = &ip_data->cfg;
786 786
787 hdmi_wp_init(&video_timing, &video_format); 787 hdmi_wp_init(&video_timing, &video_format);
788 788
789 hdmi_core_init(&v_core_cfg, 789 hdmi_core_init(&v_core_cfg, avi_cfg, &repeat_cfg);
790 &avi_cfg,
791 &repeat_cfg);
792 790
793 hdmi_wp_video_init_format(&video_format, &video_timing, cfg); 791 hdmi_wp_video_init_format(&video_format, &video_timing, cfg);
794 792
@@ -822,24 +820,24 @@ void ti_hdmi_4xxx_basic_configure(struct hdmi_ip_data *ip_data)
822 * configure packet 820 * configure packet
823 * info frame video see doc CEA861-D page 65 821 * info frame video see doc CEA861-D page 65
824 */ 822 */
825 avi_cfg.db1_format = HDMI_INFOFRAME_AVI_DB1Y_RGB; 823 avi_cfg->db1_format = HDMI_INFOFRAME_AVI_DB1Y_RGB;
826 avi_cfg.db1_active_info = 824 avi_cfg->db1_active_info =
827 HDMI_INFOFRAME_AVI_DB1A_ACTIVE_FORMAT_OFF; 825 HDMI_INFOFRAME_AVI_DB1A_ACTIVE_FORMAT_OFF;
828 avi_cfg.db1_bar_info_dv = HDMI_INFOFRAME_AVI_DB1B_NO; 826 avi_cfg->db1_bar_info_dv = HDMI_INFOFRAME_AVI_DB1B_NO;
829 avi_cfg.db1_scan_info = HDMI_INFOFRAME_AVI_DB1S_0; 827 avi_cfg->db1_scan_info = HDMI_INFOFRAME_AVI_DB1S_0;
830 avi_cfg.db2_colorimetry = HDMI_INFOFRAME_AVI_DB2C_NO; 828 avi_cfg->db2_colorimetry = HDMI_INFOFRAME_AVI_DB2C_NO;
831 avi_cfg.db2_aspect_ratio = HDMI_INFOFRAME_AVI_DB2M_NO; 829 avi_cfg->db2_aspect_ratio = HDMI_INFOFRAME_AVI_DB2M_NO;
832 avi_cfg.db2_active_fmt_ar = HDMI_INFOFRAME_AVI_DB2R_SAME; 830 avi_cfg->db2_active_fmt_ar = HDMI_INFOFRAME_AVI_DB2R_SAME;
833 avi_cfg.db3_itc = HDMI_INFOFRAME_AVI_DB3ITC_NO; 831 avi_cfg->db3_itc = HDMI_INFOFRAME_AVI_DB3ITC_NO;
834 avi_cfg.db3_ec = HDMI_INFOFRAME_AVI_DB3EC_XVYUV601; 832 avi_cfg->db3_ec = HDMI_INFOFRAME_AVI_DB3EC_XVYUV601;
835 avi_cfg.db3_q_range = HDMI_INFOFRAME_AVI_DB3Q_DEFAULT; 833 avi_cfg->db3_q_range = HDMI_INFOFRAME_AVI_DB3Q_DEFAULT;
836 avi_cfg.db3_nup_scaling = HDMI_INFOFRAME_AVI_DB3SC_NO; 834 avi_cfg->db3_nup_scaling = HDMI_INFOFRAME_AVI_DB3SC_NO;
837 avi_cfg.db4_videocode = cfg->cm.code; 835 avi_cfg->db4_videocode = cfg->cm.code;
838 avi_cfg.db5_pixel_repeat = HDMI_INFOFRAME_AVI_DB5PR_NO; 836 avi_cfg->db5_pixel_repeat = HDMI_INFOFRAME_AVI_DB5PR_NO;
839 avi_cfg.db6_7_line_eoftop = 0; 837 avi_cfg->db6_7_line_eoftop = 0;
840 avi_cfg.db8_9_line_sofbottom = 0; 838 avi_cfg->db8_9_line_sofbottom = 0;
841 avi_cfg.db10_11_pixel_eofleft = 0; 839 avi_cfg->db10_11_pixel_eofleft = 0;
842 avi_cfg.db12_13_pixel_sofright = 0; 840 avi_cfg->db12_13_pixel_sofright = 0;
843 841
844 hdmi_core_aux_infoframe_avi_config(ip_data); 842 hdmi_core_aux_infoframe_avi_config(ip_data);
845 843