This patch enabled intel_audio_dump to support Haswell platform. Haswell has some registers differences comprared with previous platforms. Changes since V1: - fix compile warnings - remove HBR bits show, it doesnot exist under Haswell Changes since V2: - fix comments style This is output of intel_audio_dump under one Haswell machine: DDI_BUF_CTL_A 0x00000080 DDI Buffer Controler A DDI_BUF_CTL_B 0x00000000 DDI Buffer Controler B DDI_BUF_CTL_C 0x00000080 DDI Buffer Controler C DDI_BUF_CTL_D 0x00000000 DDI Buffer Controler D DDI_BUF_CTL_E 0x80000002 DDI Buffer Controler E PIPE_CONF_A 0xc0000000 PIPE Configuration A PIPE_CONF_B 0x00000000 PIPE Configuration B PIPE_CONF_C 0x00000000 PIPE Configuration C PIPE_CONF_EDP 0x00000000 PIPE Configuration EDP PIPE_DDI_FUNC_CTL_A 0xc4034002 PIPE DDI Function Control A PIPE_DDI_FUNC_CTL_B 0xa0035000 PIPE DDI Function Control B PIPE_DDI_FUNC_CTL_C 0x00030000 PIPE DDI Function Control C PIPE_DDI_FUNC_CTL_EDP 0x00030000 PIPE DDI Function Control EDP DP_TP_CTL_A 0x00000000 DisplayPort Transport A Control DP_TP_CTL_B 0x00000000 DisplayPort Transport B Control DP_TP_CTL_C 0x00000000 DisplayPort Transport C Control DP_TP_CTL_D 0x00000000 DisplayPort Transport D Control DP_TP_CTL_E 0x80048300 DisplayPort Transport E Control DP_TP_ST_A 0x00000000 DisplayPort Transport A Status DP_TP_ST_B 0x00000000 DisplayPort Transport B Status DP_TP_ST_C 0x00000000 DisplayPort Transport C Status DP_TP_ST_D 0x00000000 DisplayPort Transport D Status DP_TP_ST_E 0x00001000 DisplayPort Transport E Status TRANS_CONF_A 0xc0000000 Transcoder A Configuration TRANS_CONF_B 0xc0000000 Transcoder B Configuration TRANS_CONF_C 0xc0000000 Transcoder C Configuration AUD_CONFIG_A 0x0070fa60 Audio Configuration - Transcoder A AUD_CONFIG_B 0x0070fa60 Audio Configuration - Transcoder B AUD_CONFIG_C 0x0070fa60 Audio Configuration - Transcoder C AUD_MISC_CTRL_A 0x00000044 Audio MISC Control for Transcoder A AUD_MISC_CTRL_B 0x00000044 Audio MISC Control for Transcoder B AUD_MISC_CTRL_C 0x00000044 Audio MISC Control for Transcoder C AUD_VID_DID 0x80862807 Audio Vendor ID / Device ID AUD_RID 0x00100000 Audio Revision ID AUD_CTS_ENABLE_A 0x00000000 Audio CTS Programming Enable - Transcoder A AUD_CTS_ENABLE_B 0x00000000 Audio CTS Programming Enable - Transcoder B AUD_CTS_ENABLE_C 0x00000000 Audio CTS Programming Enable - Transcoder C AUD_PWRST 0x00000fff Audio Power State (Function Group, Convertor, Pin Widget) AUD_HDMIW_HDMIEDID_A 0x00000000 HDMI Data EDID Block - Transcoder A AUD_HDMIW_HDMIEDID_B 0x4c4c4544 HDMI Data EDID Block - Transcoder B AUD_HDMIW_HDMIEDID_C 0x00000000 HDMI Data EDID Block - Transcoder C AUD_HDMIW_INFOFR_A 0x00000000 Audio Widget Data Island Packet - Transcoder A AUD_HDMIW_INFOFR_B 0x00000000 Audio Widget Data Island Packet - Transcoder B AUD_HDMIW_INFOFR_C 0x00000000 Audio Widget Data Island Packet - Transcoder C AUD_PORT_EN_HD_CFG 0x00770207 Audio Pipe and Convert Configs AUD_OUT_DIG_CNVT_A 0x00000280 Audio Digital Converter - Conv A AUD_OUT_DIG_CNVT_B 0x00200280 Audio Digital Converter - Conv B AUD_OUT_DIG_CNVT_C 0x00000280 Audio Digital Converter - Conv C AUD_OUT_CHAN_MAP 0x0077f777 Audio Output Channel Mapping AUD_OUT_STR_DESC_A 0x00050000 Audio Stream Descriptor Format - Conv A AUD_OUT_STR_DESC_B 0x00014011 Audio Stream Descriptor Format - Conv B AUD_OUT_STR_DESC_C 0x00050000 Audio Stream Descriptor Format - Conv C AUD_PINW_CONNLNG_LIST_A 0x00000001 Audio Connection List entry and Length - Transcoder A AUD_PINW_CONNLNG_LIST_B 0x00000301 Audio Connection List entry and Length - Transcoder B AUD_PINW_CONNLNG_LIST_C 0x00000001 Audio Connection List entry and Length - Transcoder C AUD_PIPE_CONN_SEL_CTRL 0x00030003 Audio Pipe Connection Select Control AUD_DIP_ELD_CTRL_ST_A 0x000054c9 Audio DIP and ELD control state - Transcoder A AUD_DIP_ELD_CTRL_ST_B 0x002354c9 Audio DIP and ELD control state - Transcoder B AUD_DIP_ELD_CTRL_ST_C 0x000054c9 Audio DIP and ELD control state - Transcoder C AUD_PIN_ELD_CP_VLD 0x00000555 audio pin eld valid status AUD_HDMIW_STATUS 0x00000000 Audio HDMI FIFO Status Details: AUD_VID_DID vendor id 0x8086 AUD_VID_DID device id 0x2807 AUD_RID Major_Revision 0x1 AUD_RID Minor_Revision 0x0 AUD_RID Revision_Id 0x0 AUD_RID Stepping_Id 0x0 Audio DIP and ELD control state for TranscoderA Audio DIP port select [0x0] Reserved Audio DIP type enable status [0x0] Audio DIP Disabled DIP Buffer Index [0x0] Audio DIP DIP_transmission_frequency [0x0] disabled ELD_ACK 0 ELD_buffer_size 21 Audio DIP and ELD control state for TranscoderB Audio DIP port select [0x0] Reserved Audio DIP type enable status [0x1] Audio DIP Enabled DIP Buffer Index [0x0] Audio DIP DIP_transmission_frequency [0x3] best effort ELD_ACK 0 ELD_buffer_size 21 Audio DIP and ELD control state for TranscoderC Audio DIP port select [0x0] Reserved Audio DIP type enable status [0x0] Audio DIP Disabled DIP Buffer Index [0x0] Audio DIP DIP_transmission_frequency [0x0] disabled ELD_ACK 0 ELD_buffer_size 21 DDI A Buffer control DDI Buffer Enable 0 DP port width [0x0] x1 mode DDI B Buffer control DDI Buffer Enable 0 DP port width [0x0] x1 mode DDI C Buffer control DDI Buffer Enable 0 DP port width [0x0] x1 mode DDI D Buffer control DDI Buffer Enable 0 DP port width [0x0] x1 mode DDI E Buffer control DDI Buffer Enable 1 DP port width [0x1] x2 mode Pipe A DDI Function Control PIPE DDI Function Enable [0x1] PIPE DDI selection [0x4] reserved PIPE DDI Mode [0x4] DP FDI mode BITS per color [0x0] Pipe B DDI Function Control PIPE DDI Function Enable [0x1] PIPE DDI selection [0x2] Digital Port C PIPE DDI Mode [0x0] HDMI mode BITS per color [0x0] Pipe C DDI Function Control PIPE DDI Function Enable [0x0] PIPE DDI selection [0x0] no port PIPE DDI Mode [0x0] HDMI mode BITS per color [0x0] AUD_CONFIG_A N_index_value [0x0] HDMI AUD_CONFIG_A N_programming_enable 0 AUD_CONFIG_A Upper_N_value 0x07 AUD_CONFIG_A Lower_N_value 0xfa6 AUD_CONFIG_A Pixel_Clock_HDMI [0x0] 25.2 / 1.001 MHz AUD_CONFIG_A Disable_NCTS 0 AUD_CONFIG_B N_index_value [0x0] HDMI AUD_CONFIG_B N_programming_enable 0 AUD_CONFIG_B Upper_N_value 0x07 AUD_CONFIG_B Lower_N_value 0xfa6 AUD_CONFIG_B Pixel_Clock_HDMI [0x0] 25.2 / 1.001 MHz AUD_CONFIG_B Disable_NCTS 0 AUD_CONFIG_C N_index_value [0x0] HDMI AUD_CONFIG_C N_programming_enable 0 AUD_CONFIG_C Upper_N_value 0x07 AUD_CONFIG_C Lower_N_value 0xfa6 AUD_CONFIG_C Pixel_Clock_HDMI [0x0] 25.2 / 1.001 MHz AUD_CONFIG_C Disable_NCTS 0 AUD_CTS_ENABLE_A Enable_CTS_or_M_programming 0 AUD_CTS_ENABLE_A CTS_M value Index M AUD_CTS_ENABLE_A CTS_programming 0 AUD_CTS_ENABLE_B Enable_CTS_or_M_programming 0 AUD_CTS_ENABLE_B CTS_M value Index M AUD_CTS_ENABLE_B CTS_programming 0 AUD_CTS_ENABLE_C Enable_CTS_or_M_programming 0 AUD_CTS_ENABLE_C CTS_M value Index M AUD_CTS_ENABLE_C CTS_programming 0 AUD_MISC_CTRL_A Sample_Fabrication_EN_bit 1 AUD_MISC_CTRL_A Sample_present_Disable 0 AUD_MISC_CTRL_A Output_Delay 4 AUD_MISC_CTRL_A Pro_Allowed 0 AUD_MISC_CTRL_B Sample_Fabrication_EN_bit 1 AUD_MISC_CTRL_B Sample_present_Disable 0 AUD_MISC_CTRL_B Output_Delay 4 AUD_MISC_CTRL_B Pro_Allowed 0 AUD_MISC_CTRL_C Sample_Fabrication_EN_bit 1 AUD_MISC_CTRL_C Sample_present_Disable 0 AUD_MISC_CTRL_C Output_Delay 4 AUD_MISC_CTRL_C Pro_Allowed 0 AUD_PWRST Func_Grp_Dev_PwrSt_Curr D0 AUD_PWRST Func_Grp_Dev_PwrSt_Set D0 AUD_PWRST ConvertorA_Widget_Power_State_Current D0 AUD_PWRST ConvertorA_Widget_Power_State_Requsted D0 AUD_PWRST ConvertorB_Widget_Power_State_Current D0 AUD_PWRST ConvertorB_Widget_Power_State_Requested D0 AUD_PWRST ConvC_Widget_PwrSt_Curr D0 AUD_PWRST ConvC_Widget_PwrSt_Req D0 AUD_PWRST PinB_Widget_Power_State_Current D3 AUD_PWRST PinB_Widget_Power_State_Set D3 AUD_PWRST PinC_Widget_Power_State_Current D3 AUD_PWRST PinC_Widget_Power_State_Set D3 AUD_PWRST PinD_Widget_Power_State_Current D3 AUD_PWRST PinD_Widget_Power_State_Set D3 AUD_PORT_EN_HD_CFG Convertor_A_Digen 1 AUD_PORT_EN_HD_CFG Convertor_B_Digen 1 AUD_PORT_EN_HD_CFG Convertor_C_Digen 1 AUD_PORT_EN_HD_CFG ConvertorA_Stream_ID 0 AUD_PORT_EN_HD_CFG ConvertorB_Stream_ID 2 AUD_PORT_EN_HD_CFG ConvertorC_Stream_ID 0 AUD_PORT_EN_HD_CFG Port_B_Out_Enable 1 AUD_PORT_EN_HD_CFG Port_C_Out_Enable 1 AUD_PORT_EN_HD_CFG Port_D_Out_Enable 1 AUD_PORT_EN_HD_CFG Port_B_Amp_Mute_Status 1 AUD_PORT_EN_HD_CFG Port_C_Amp_Mute_Status 1 AUD_PORT_EN_HD_CFG Port_D_Amp_Mute_Status 1 AUD_OUT_DIG_CNVT_A V 0 AUD_OUT_DIG_CNVT_A VCFG 0 AUD_OUT_DIG_CNVT_A PRE 0 AUD_OUT_DIG_CNVT_A Copy 0 AUD_OUT_DIG_CNVT_A NonAudio 0 AUD_OUT_DIG_CNVT_A PRO 0 AUD_OUT_DIG_CNVT_A Level 1 AUD_OUT_DIG_CNVT_A Category_Code 2 AUD_OUT_DIG_CNVT_A Lowest_Channel_Number 0 AUD_OUT_DIG_CNVT_A Stream_ID 0 AUD_OUT_DIG_CNVT_B V 0 AUD_OUT_DIG_CNVT_B VCFG 0 AUD_OUT_DIG_CNVT_B PRE 0 AUD_OUT_DIG_CNVT_B Copy 0 AUD_OUT_DIG_CNVT_B NonAudio 0 AUD_OUT_DIG_CNVT_B PRO 0 AUD_OUT_DIG_CNVT_B Level 1 AUD_OUT_DIG_CNVT_B Category_Code 2 AUD_OUT_DIG_CNVT_B Lowest_Channel_Number 0 AUD_OUT_DIG_CNVT_B Stream_ID 2 AUD_OUT_DIG_CNVT_C V 0 AUD_OUT_DIG_CNVT_C VCFG 0 AUD_OUT_DIG_CNVT_C PRE 0 AUD_OUT_DIG_CNVT_C Copy 0 AUD_OUT_DIG_CNVT_C NonAudio 0 AUD_OUT_DIG_CNVT_C PRO 0 AUD_OUT_DIG_CNVT_C Level 1 AUD_OUT_DIG_CNVT_C Category_Code 2 AUD_OUT_DIG_CNVT_C Lowest_Channel_Number 0 AUD_OUT_DIG_CNVT_C Stream_ID 0 AUD_OUT_CHAN_MAP Converter_Channel_MAP PORTB PORTC PORTD 1 1 1 1 2 2 2 2 3 4 16 4 4 3 16 3 5 5 16 5 6 6 16 6 7 7 16 7 8 8 16 8 AUD_OUT_STR_DESC_A Convertor_Channel_Count 6 AUD_OUT_STR_DESC_A Bits_per_Sample [0] reserved AUD_OUT_STR_DESC_A Number_of_Channels_in_a_Stream 1 AUD_OUT_STR_DESC_B Convertor_Channel_Count 2 AUD_OUT_STR_DESC_B Bits_per_Sample [0x1] 16 bits AUD_OUT_STR_DESC_B Number_of_Channels_in_a_Stream 2 AUD_OUT_STR_DESC_C Convertor_Channel_Count 6 AUD_OUT_STR_DESC_C Bits_per_Sample [0] reserved AUD_OUT_STR_DESC_C Number_of_Channels_in_a_Stream 1 AUD_PINW_CONNLNG_SEL Connection_select_Control_B 0 AUD_PINW_CONNLNG_SEL Connection_select_Control_C 0 AUD_PINW_CONNLNG_SEL Connection_select_Control_D 0 AUD_CNTRL_ST2 CP_ReadyB 0 AUD_CNTRL_ST2 ELD_validB 1 AUD_CNTRL_ST2 OUT_enableB 1 AUD_CNTRL_ST2 CP_ReadyC 0 AUD_CNTRL_ST2 ELD_validC 1 AUD_CNTRL_ST2 OUT_enableC 1 AUD_CNTRL_ST2 CP_ReadyD 0 AUD_CNTRL_ST2 ELD_validD 1 AUD_CNTRL_ST2 OUT_enableD 1 AUD_HDMIW_STATUS Conv_A_CDCLK/DOTCLK_FIFO_Underrun 0 AUD_HDMIW_STATUS Conv_A_CDCLK/DOTCLK_FIFO_Overrun 0 AUD_HDMIW_STATUS Conv_B_CDCLK/DOTCLK_FIFO_Underrun 0 AUD_HDMIW_STATUS Conv_B_CDCLK/DOTCLK_FIFO_Overrun 0 AUD_HDMIW_STATUS Conv_C_CDCLK/DOTCLK_FIFO_Underrun 0 AUD_HDMIW_STATUS Conv_C_CDCLK/DOTCLK_FIFO_Overrun 0 AUD_HDMIW_STATUS BCLK/CDCLK_FIFO_Overrun 0 AUD_HDMIW_STATUS Function_Reset 0 AUD_HDMIW_HDMIEDID_A HDMI ELD: 00000000 00000000 00000000 00000000 00000000 AUD_HDMIW_HDMIEDID_B HDMI ELD: 10000900 6c120001 00000000 00000000 10ac2ca0 AUD_HDMIW_HDMIEDID_C HDMI ELD: 00000000 00000000 00000000 00000000 00000000 AUD_HDMIW_INFOFR_A HDMI audio Infoframe: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 AUD_HDMIW_INFOFR_B HDMI audio Infoframe: 84010a70 01000000 00000000 00000000 00000000 00000000 00000000 00000000 AUD_HDMIW_INFOFR_C HDMI audio Infoframe: 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 Wang Xingchao (2): intel_audio_dump: fix wrong port definition intel_audio_dump: add Haswell audio dump support tools/intel_audio_dump.c | 590 +++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 587 insertions(+), 3 deletions(-) -- 1.7.9.5