aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
diff options
context:
space:
mode:
authorArchit Taneja <archit@ti.com>2012-05-07 09:20:27 -0400
committerTomi Valkeinen <tomi.valkeinen@ti.com>2012-05-09 06:42:58 -0400
commit3c7de24771cbc4546728875dc77016bbfc0195df (patch)
tree6584fa596bdf2fc6e481ac53ee579357407f438d /drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
parent8b53d9911982794b3f6d5513741495c3f70962cd (diff)
OMAPDSS: HDMI: Fix ti_hdmi_4xxx_core_dump
The function ti_hdmi_4xxx_core_dump has some bugs, the following mention the bugs and the solutions: - The macros DUMPCORE and DUMPCOREAV in ti_hdmi_4xxx_core_dump() use hdmi_pll_base() for the offsets needed to calculate register addresses, use functions hdmi_core_sys_base() amd hdmi_av_base() to calculate the correct offsets for CORE_SYS and CORE_AV registers. - Many of the CORE_AV registers use the DUMPCORE macro, and hence the register addresses are calculated incorrectly. Rename the current DUMPCOREAV macro as DUMPCOREAV2 as it takes 2 arguments to dump indexed CORE_AV registers, create a new macro called DUMPCOREAV which is now used for dumping non-indexed CORE_AV registers. Thanks to Ancy Tom <ancytom@gmail.com> for pointing out the issues. Signed-off-by: Archit Taneja <archit@ti.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
Diffstat (limited to 'drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c')
-rw-r--r--drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c142
1 files changed, 72 insertions, 70 deletions
diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
index bfe6fe65c8b..e266b8e1aa9 100644
--- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
@@ -886,10 +886,12 @@ void ti_hdmi_4xxx_core_dump(struct hdmi_ip_data *ip_data, struct seq_file *s)
886 886
887#define CORE_REG(i, name) name(i) 887#define CORE_REG(i, name) name(i)
888#define DUMPCORE(r) seq_printf(s, "%-35s %08x\n", #r,\ 888#define DUMPCORE(r) seq_printf(s, "%-35s %08x\n", #r,\
889 hdmi_read_reg(hdmi_pll_base(ip_data), r)) 889 hdmi_read_reg(hdmi_core_sys_base(ip_data), r))
890#define DUMPCOREAV(i, r) seq_printf(s, "%s[%d]%*s %08x\n", #r, i, \ 890#define DUMPCOREAV(r) seq_printf(s, "%-35s %08x\n", #r,\
891 hdmi_read_reg(hdmi_av_base(ip_data), r))
892#define DUMPCOREAV2(i, r) seq_printf(s, "%s[%d]%*s %08x\n", #r, i, \
891 (i < 10) ? 32 - strlen(#r) : 31 - strlen(#r), " ", \ 893 (i < 10) ? 32 - strlen(#r) : 31 - strlen(#r), " ", \
892 hdmi_read_reg(hdmi_pll_base(ip_data), CORE_REG(i, r))) 894 hdmi_read_reg(hdmi_av_base(ip_data), CORE_REG(i, r)))
893 895
894 DUMPCORE(HDMI_CORE_SYS_VND_IDL); 896 DUMPCORE(HDMI_CORE_SYS_VND_IDL);
895 DUMPCORE(HDMI_CORE_SYS_DEV_IDL); 897 DUMPCORE(HDMI_CORE_SYS_DEV_IDL);
@@ -924,85 +926,85 @@ void ti_hdmi_4xxx_core_dump(struct hdmi_ip_data *ip_data, struct seq_file *s)
924 DUMPCORE(HDMI_CORE_DDC_DATA); 926 DUMPCORE(HDMI_CORE_DDC_DATA);
925 DUMPCORE(HDMI_CORE_DDC_SEGM); 927 DUMPCORE(HDMI_CORE_DDC_SEGM);
926 928
927 DUMPCORE(HDMI_CORE_AV_HDMI_CTRL); 929 DUMPCOREAV(HDMI_CORE_AV_HDMI_CTRL);
928 DUMPCORE(HDMI_CORE_AV_DPD); 930 DUMPCOREAV(HDMI_CORE_AV_DPD);
929 DUMPCORE(HDMI_CORE_AV_PB_CTRL1); 931 DUMPCOREAV(HDMI_CORE_AV_PB_CTRL1);
930 DUMPCORE(HDMI_CORE_AV_PB_CTRL2); 932 DUMPCOREAV(HDMI_CORE_AV_PB_CTRL2);
931 DUMPCORE(HDMI_CORE_AV_AVI_TYPE); 933 DUMPCOREAV(HDMI_CORE_AV_AVI_TYPE);
932 DUMPCORE(HDMI_CORE_AV_AVI_VERS); 934 DUMPCOREAV(HDMI_CORE_AV_AVI_VERS);
933 DUMPCORE(HDMI_CORE_AV_AVI_LEN); 935 DUMPCOREAV(HDMI_CORE_AV_AVI_LEN);
934 DUMPCORE(HDMI_CORE_AV_AVI_CHSUM); 936 DUMPCOREAV(HDMI_CORE_AV_AVI_CHSUM);
935 937
936 for (i = 0; i < HDMI_CORE_AV_AVI_DBYTE_NELEMS; i++) 938 for (i = 0; i < HDMI_CORE_AV_AVI_DBYTE_NELEMS; i++)
937 DUMPCOREAV(i, HDMI_CORE_AV_AVI_DBYTE); 939 DUMPCOREAV2(i, HDMI_CORE_AV_AVI_DBYTE);
938 940
939 for (i = 0; i < HDMI_CORE_AV_SPD_DBYTE_NELEMS; i++) 941 for (i = 0; i < HDMI_CORE_AV_SPD_DBYTE_NELEMS; i++)
940 DUMPCOREAV(i, HDMI_CORE_AV_SPD_DBYTE); 942 DUMPCOREAV2(i, HDMI_CORE_AV_SPD_DBYTE);
941 943
942 for (i = 0; i < HDMI_CORE_AV_AUD_DBYTE_NELEMS; i++) 944 for (i = 0; i < HDMI_CORE_AV_AUD_DBYTE_NELEMS; i++)
943 DUMPCOREAV(i, HDMI_CORE_AV_AUD_DBYTE); 945 DUMPCOREAV2(i, HDMI_CORE_AV_AUD_DBYTE);
944 946
945 for (i = 0; i < HDMI_CORE_AV_MPEG_DBYTE_NELEMS; i++) 947 for (i = 0; i < HDMI_CORE_AV_MPEG_DBYTE_NELEMS; i++)
946 DUMPCOREAV(i, HDMI_CORE_AV_MPEG_DBYTE); 948 DUMPCOREAV2(i, HDMI_CORE_AV_MPEG_DBYTE);
947 949
948 for (i = 0; i < HDMI_CORE_AV_GEN_DBYTE_NELEMS; i++) 950 for (i = 0; i < HDMI_CORE_AV_GEN_DBYTE_NELEMS; i++)
949 DUMPCOREAV(i, HDMI_CORE_AV_GEN_DBYTE); 951 DUMPCOREAV2(i, HDMI_CORE_AV_GEN_DBYTE);
950 952
951 for (i = 0; i < HDMI_CORE_AV_GEN2_DBYTE_NELEMS; i++) 953 for (i = 0; i < HDMI_CORE_AV_GEN2_DBYTE_NELEMS; i++)
952 DUMPCOREAV(i, HDMI_CORE_AV_GEN2_DBYTE); 954 DUMPCOREAV2(i, HDMI_CORE_AV_GEN2_DBYTE);
953 955
954 DUMPCORE(HDMI_CORE_AV_ACR_CTRL); 956 DUMPCOREAV(HDMI_CORE_AV_ACR_CTRL);
955 DUMPCORE(HDMI_CORE_AV_FREQ_SVAL); 957 DUMPCOREAV(HDMI_CORE_AV_FREQ_SVAL);
956 DUMPCORE(HDMI_CORE_AV_N_SVAL1); 958 DUMPCOREAV(HDMI_CORE_AV_N_SVAL1);
957 DUMPCORE(HDMI_CORE_AV_N_SVAL2); 959 DUMPCOREAV(HDMI_CORE_AV_N_SVAL2);
958 DUMPCORE(HDMI_CORE_AV_N_SVAL3); 960 DUMPCOREAV(HDMI_CORE_AV_N_SVAL3);
959 DUMPCORE(HDMI_CORE_AV_CTS_SVAL1); 961 DUMPCOREAV(HDMI_CORE_AV_CTS_SVAL1);
960 DUMPCORE(HDMI_CORE_AV_CTS_SVAL2); 962 DUMPCOREAV(HDMI_CORE_AV_CTS_SVAL2);
961 DUMPCORE(HDMI_CORE_AV_CTS_SVAL3); 963 DUMPCOREAV(HDMI_CORE_AV_CTS_SVAL3);
962 DUMPCORE(HDMI_CORE_AV_CTS_HVAL1); 964 DUMPCOREAV(HDMI_CORE_AV_CTS_HVAL1);
963 DUMPCORE(HDMI_CORE_AV_CTS_HVAL2); 965 DUMPCOREAV(HDMI_CORE_AV_CTS_HVAL2);
964 DUMPCORE(HDMI_CORE_AV_CTS_HVAL3); 966 DUMPCOREAV(HDMI_CORE_AV_CTS_HVAL3);
965 DUMPCORE(HDMI_CORE_AV_AUD_MODE); 967 DUMPCOREAV(HDMI_CORE_AV_AUD_MODE);
966 DUMPCORE(HDMI_CORE_AV_SPDIF_CTRL); 968 DUMPCOREAV(HDMI_CORE_AV_SPDIF_CTRL);
967 DUMPCORE(HDMI_CORE_AV_HW_SPDIF_FS); 969 DUMPCOREAV(HDMI_CORE_AV_HW_SPDIF_FS);
968 DUMPCORE(HDMI_CORE_AV_SWAP_I2S); 970 DUMPCOREAV(HDMI_CORE_AV_SWAP_I2S);
969 DUMPCORE(HDMI_CORE_AV_SPDIF_ERTH); 971 DUMPCOREAV(HDMI_CORE_AV_SPDIF_ERTH);
970 DUMPCORE(HDMI_CORE_AV_I2S_IN_MAP); 972 DUMPCOREAV(HDMI_CORE_AV_I2S_IN_MAP);
971 DUMPCORE(HDMI_CORE_AV_I2S_IN_CTRL); 973 DUMPCOREAV(HDMI_CORE_AV_I2S_IN_CTRL);
972 DUMPCORE(HDMI_CORE_AV_I2S_CHST0); 974 DUMPCOREAV(HDMI_CORE_AV_I2S_CHST0);
973 DUMPCORE(HDMI_CORE_AV_I2S_CHST1); 975 DUMPCOREAV(HDMI_CORE_AV_I2S_CHST1);
974 DUMPCORE(HDMI_CORE_AV_I2S_CHST2); 976 DUMPCOREAV(HDMI_CORE_AV_I2S_CHST2);
975 DUMPCORE(HDMI_CORE_AV_I2S_CHST4); 977 DUMPCOREAV(HDMI_CORE_AV_I2S_CHST4);
976 DUMPCORE(HDMI_CORE_AV_I2S_CHST5); 978 DUMPCOREAV(HDMI_CORE_AV_I2S_CHST5);
977 DUMPCORE(HDMI_CORE_AV_ASRC); 979 DUMPCOREAV(HDMI_CORE_AV_ASRC);
978 DUMPCORE(HDMI_CORE_AV_I2S_IN_LEN); 980 DUMPCOREAV(HDMI_CORE_AV_I2S_IN_LEN);
979 DUMPCORE(HDMI_CORE_AV_HDMI_CTRL); 981 DUMPCOREAV(HDMI_CORE_AV_HDMI_CTRL);
980 DUMPCORE(HDMI_CORE_AV_AUDO_TXSTAT); 982 DUMPCOREAV(HDMI_CORE_AV_AUDO_TXSTAT);
981 DUMPCORE(HDMI_CORE_AV_AUD_PAR_BUSCLK_1); 983 DUMPCOREAV(HDMI_CORE_AV_AUD_PAR_BUSCLK_1);
982 DUMPCORE(HDMI_CORE_AV_AUD_PAR_BUSCLK_2); 984 DUMPCOREAV(HDMI_CORE_AV_AUD_PAR_BUSCLK_2);
983 DUMPCORE(HDMI_CORE_AV_AUD_PAR_BUSCLK_3); 985 DUMPCOREAV(HDMI_CORE_AV_AUD_PAR_BUSCLK_3);
984 DUMPCORE(HDMI_CORE_AV_TEST_TXCTRL); 986 DUMPCOREAV(HDMI_CORE_AV_TEST_TXCTRL);
985 DUMPCORE(HDMI_CORE_AV_DPD); 987 DUMPCOREAV(HDMI_CORE_AV_DPD);
986 DUMPCORE(HDMI_CORE_AV_PB_CTRL1); 988 DUMPCOREAV(HDMI_CORE_AV_PB_CTRL1);
987 DUMPCORE(HDMI_CORE_AV_PB_CTRL2); 989 DUMPCOREAV(HDMI_CORE_AV_PB_CTRL2);
988 DUMPCORE(HDMI_CORE_AV_AVI_TYPE); 990 DUMPCOREAV(HDMI_CORE_AV_AVI_TYPE);
989 DUMPCORE(HDMI_CORE_AV_AVI_VERS); 991 DUMPCOREAV(HDMI_CORE_AV_AVI_VERS);
990 DUMPCORE(HDMI_CORE_AV_AVI_LEN); 992 DUMPCOREAV(HDMI_CORE_AV_AVI_LEN);
991 DUMPCORE(HDMI_CORE_AV_AVI_CHSUM); 993 DUMPCOREAV(HDMI_CORE_AV_AVI_CHSUM);
992 DUMPCORE(HDMI_CORE_AV_SPD_TYPE); 994 DUMPCOREAV(HDMI_CORE_AV_SPD_TYPE);
993 DUMPCORE(HDMI_CORE_AV_SPD_VERS); 995 DUMPCOREAV(HDMI_CORE_AV_SPD_VERS);
994 DUMPCORE(HDMI_CORE_AV_SPD_LEN); 996 DUMPCOREAV(HDMI_CORE_AV_SPD_LEN);
995 DUMPCORE(HDMI_CORE_AV_SPD_CHSUM); 997 DUMPCOREAV(HDMI_CORE_AV_SPD_CHSUM);
996 DUMPCORE(HDMI_CORE_AV_AUDIO_TYPE); 998 DUMPCOREAV(HDMI_CORE_AV_AUDIO_TYPE);
997 DUMPCORE(HDMI_CORE_AV_AUDIO_VERS); 999 DUMPCOREAV(HDMI_CORE_AV_AUDIO_VERS);
998 DUMPCORE(HDMI_CORE_AV_AUDIO_LEN); 1000 DUMPCOREAV(HDMI_CORE_AV_AUDIO_LEN);
999 DUMPCORE(HDMI_CORE_AV_AUDIO_CHSUM); 1001 DUMPCOREAV(HDMI_CORE_AV_AUDIO_CHSUM);
1000 DUMPCORE(HDMI_CORE_AV_MPEG_TYPE); 1002 DUMPCOREAV(HDMI_CORE_AV_MPEG_TYPE);
1001 DUMPCORE(HDMI_CORE_AV_MPEG_VERS); 1003 DUMPCOREAV(HDMI_CORE_AV_MPEG_VERS);
1002 DUMPCORE(HDMI_CORE_AV_MPEG_LEN); 1004 DUMPCOREAV(HDMI_CORE_AV_MPEG_LEN);
1003 DUMPCORE(HDMI_CORE_AV_MPEG_CHSUM); 1005 DUMPCOREAV(HDMI_CORE_AV_MPEG_CHSUM);
1004 DUMPCORE(HDMI_CORE_AV_CP_BYTE1); 1006 DUMPCOREAV(HDMI_CORE_AV_CP_BYTE1);
1005 DUMPCORE(HDMI_CORE_AV_CEC_ADDR_ID); 1007 DUMPCOREAV(HDMI_CORE_AV_CEC_ADDR_ID);
1006} 1008}
1007 1009
1008void ti_hdmi_4xxx_phy_dump(struct hdmi_ip_data *ip_data, struct seq_file *s) 1010void ti_hdmi_4xxx_phy_dump(struct hdmi_ip_data *ip_data, struct seq_file *s)