This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TAS5717: No Speaker Output seen

Part Number: TAS5717

Hi, 

We are bringing up speaker out using TAS5717 in our custom board. All the power supplies, I2C and the I2S interfaces are up. But we are unable to see any output on the speaker or any waveform.

The schematics is below:

We also have set the volume(unmute) properly in the SW.

Please suggest what to look at for further debug.

Thanks,

Naveen

  • Hi, 

    Appreciate you quickest response.

    Thanks,

    Naveen

  • Hi Naveen

    thank you for your question.

    usually, our debug steps are as below:

    1. confirming whether all power supply is stable or not.

    2. confirming is there PWM waveform before the LC filter.

    3. read error report register 0x02 to confirm what kind of error may happen.

    thanks.

    jess

  • Hi,

    Thanks for the quick response. Please find our observations below:

    1. All Power supplies are stable.

    2. The PWM waveform captured is attached. The PWM is observed only without speaker and always present irrespective of whether the audio is played or not. However, with speaker connected, the PWM waveform is not observed. Are we missing anything here?

    3. The error report captured is below. When the I2C is accessed for the first time(after every power cycle), there is an error(highlighted in yellow) but from second time onwards it is working. How do we address this behavior?

    [ 675.772168] healthd: battery l=100 v=4351 t=25.1 h=2 st=5 c=-1678 fc=3581000 cc=0 chg=u
    [ 688.288296] q6asm_callback: cmd = 0x10bcd returned error = 0x1
    [ 688.294286] __q6asm_cmd: DSP returned error[ADSP_EFAILED] opcode 68557
    [ 688.309283] ######## func tas571x_hw_params line 287 format = 0
    [ 688.315347] ##### I2C read succss ret: 0 Val: 5
    [ 688.324585] #### func tas571x_set_bias_level line 350 level 1
    [ 688.330676] #### func tas571x_set_bias_level line 358 enter to enalbe master clk
    [ 688.338219] is err mclk: 1
    [ 688.341306] 3 request mclk: ffffffd309fced80
    [ 688.346640] i2c_geni 4a84000.i2c: i2c error :-107
    [ 688.351612] #### func tas571x_set_bias_level line 366 level 1
    [ 688.358807] ##### status reg is ret: 0 Val: 0x0
    [ 688.363696] #### func tas571x_set_bias_level line 350 level 2
    [ 688.370096] #### func tas571x_set_bias_level line 350 level 3

    Thanks,

    Naveen

  • Hi

    Please find the error status register dump:

    [ 194.828559] 3 request mclk: fffffffe48d65700
    [ 194.833592] i2c_geni 4a84000.i2c: i2c error :-107
    [ 194.838412] #### func tas571x_set_bias_level line 367 level 1
    [ 194.845130] reg TAS571X_MVOL_REG level = 0x3fe
    [ 194.849905] reg TAS571X_SYS_CTRL_2_REG = 0x0
    [ 194.854681] reg after write TAS571X_SYS_CTRL_2_REG = 0x0
    [ 194.861311] ##### reg TAS571X_ERR_STATUS_REG, ret: 0 Val: 0x40
    [ 194.867472] #### func tas571x_set_bias_level line 351 level 2

    Thanks,

    Naveen

  • Hi

    thank you for your confirm.

    the error report shows 0x40. it means PLL autolock error.

    can you help checking I2S clock, are they satisfy the clock spec  in Figure 1 of the datasheet.

    for the device can recovery automatically once clock become normal, so your clock maybe not very stable so that your error be report randomly.

    As you said when you connecting spk, the PWM will disappear.

    what is the DCR of your speaker. about the  inductor of LC filter you use, have you confirmed whether the satisfaction current of inductor is larger than the max current(PVDD/DCR).

    thanks.

    jess

  • Hi

    We measured the I2S SCK clock and it seems to be proper as per the specs. PFA the rise time and full waveform.

           

    8Ohm is the DCR of the speaker. The spec of the inductor we are using is below:

    Please help confirm if this is sufficient?

    Thanks,

    Naveen

  • Hi Naveen

    the inductor's satisfaction current seems too small.

    your PVDD is 12v, DCR 8ohm, the possible maximum current is about 12/8 = 1.5A.

    if ripple current exist before LC, your inductor need to suffer more current flow  through inductor.

    using a inductor with saturation and heat rating current both larger than 3A would be better. 

    thanks.

    jess

  • Hi,

    We tried changing the inductor as suggested but the behavior is still the same.

  • Hi Dhanush

    Considering your fault  is clock error, i checked your waveform above, your sclk is 1.536MHz, what is your Fs frequency?

    and how many bits for your each channel?

    for example, we use 48kHz, so 1.536M/48k = 32, you are using 16bit for each channel?

    have you checked whether the ratio between sclk, lrclk is right or not?

    BTW, just in case, have the GND of your i2s generator been connecting with your GND of EVM board?

    sometimes, if this 2 gnd been separated, the i2s will be not stable.

    thanks.

    jess

  • Hi Jesse,

    Fs Freq is 48KKz

    how many bits for your each channel?

    >>>>>it is 48KHz and 16 bits

    have you checked whether the ratio between sclk, lrclk is right or not?

    >>>> both are in sync attached a picture for the same.

    Please find the below playback commands using

    bengal:/ # tinymix "SEC_MI2S_RX Audio Mixer MultiMedia1" "1"
    bengal:/ #                                                                                                                                                  
    bengal:/ # tinyplay /data/HighQuality.wav                                                                                                                                              
    Playing sample: 2 ch, 48000 hz, 16 bit 82731476 bytes

    BTW, just in case, have the GND of your i2s generator been connecting with your GND of EVM board?

    >>>>> We are not using EVM for testing. It is our custom board with common ground.

    Also attached al logs when playback starting. and also it contains the ti registers also.

    playback_logs.txt
                                                                                                                                                                       
    [80661.800830] BENGAL Media1: ASoC: found 9 audio playback paths
    [80661.800849] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: find BE for widget Secondary MI2S Playback
    [80661.800906] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : AFE Playback
    [80661.800918] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.800930] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.800947] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.800959] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Voice Farend Playback
    [80661.800971] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Voice2 Farend Playback
    [80661.800982] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.800994] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Proxy Playback
    [80661.801006] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : USB Audio Playback
    [80661.801018] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.801031] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : RX CDC DMA0 Playback
    [80661.801043] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : RX CDC DMA1 Playback
    [80661.801055] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : RX CDC DMA2 Playback
    [80661.801067] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : RX CDC DMA3 Playback
    [80661.801078] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.801091] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.801103] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.801115] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.801128] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.801141] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Primary MI2S Playback
    [80661.801153] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Primary MI2S Playback
    [80661.801164] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Secondary MI2S Playback
    [80661.801195] BENGAL Media1: connected new DPCM playback path BENGAL Media1 -> SEC_MI2S_RX
    [80661.801423] BENGAL Media1: ASoC: found 1 new BE paths
    [80661.801441] SEC_MI2S_RX: ASoC: open playback BE SEC_MI2S_RX
    [80661.801470] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: msm_mi2s_snd_startup: substream = subdevice #0  stream = 0, dai name Secondary MI2S, dai ID 1
    [80661.801484] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: msm_mi2s_set_sclk: clock rate 1536000l
    [80661.801498] afe_get_port_idx: port id 0x1002
    [80661.801511] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.801524] afe_set_source_clk: updated clk src name  port id 0x1
    [80661.801534] afe_get_port_idx: port id 0x1002
    [80661.801546] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.801559] afe_set_lpass_clk_cfg: Minor version =0x1 clk id = 258\x0aclk freq (Hz) = 1536000, clk attri = 0x1\x0aclk root = 0x0 clk enable = 0x1
    [80661.801595] afe_q6_interface_prepare:
    [80661.803618] afe_callback_debug_print: code = 0x110e8 PL#0[0x100fc], PL#1[0x0], size = 8
    [80661.803625] afe_callback:opcode = 0x110e8 cmd = 0x100fc status = 0x0 token=1024
    [80661.803650] afe_callback: port_id = 0x0
    [80661.803653] afe_callback: default case 0x0
    [80661.803719] afe_apr_send_clk_pkt: leave 0
    [80661.803749] Anil msm_mi2s_snd_startup: Enabling mclk, clk_freq_in_hz = 12288000
    [80661.811148] afe_get_port_idx: port id 0x1002
    [80661.811159] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.811171] afe_set_source_clk: updated clk src name  port id 0x1
    [80661.811182] afe_get_port_idx: port id 0x1002
    [80661.811192] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.811206] afe_set_lpass_clk_cfg: Minor version =0x1 clk id = 768\x0aclk freq (Hz) = 12288000, clk attri = 0x1\x0aclk root = 0x0 clk enable = 0x1
    [80661.811239] afe_q6_interface_prepare:
    [80661.811509] afe_callback_debug_print: code = 0x110e8 PL#0[0x100fc], PL#1[0x0], size = 8
    [80661.811513] afe_callback:opcode = 0x110e8 cmd = 0x100fc status = 0x0 token=1024
    [80661.811527] afe_callback: port_id = 0x0
    [80661.811531] afe_callback: default case 0x0
    [80661.811568] afe_apr_send_clk_pkt: leave 0
    [80661.814720] afe_q6_interface_prepare:
    [80661.814737] afe_vote_lpass_core_hw: lpass core hw vote opcode[0x100f4] hw id[0x4]
    [80661.815438] afe_callback_debug_print: code = 0x100f5 PL#0[0x4a], size = 4
    [80661.815442] afe_callback: AFE_CMD_RSP_REMOTE_LPASS_CORE_HW_VOTE_REQUEST handle 74
    [80661.815491] afe_apr_send_clk_pkt: leave 0
    [80661.815503] afe_vote_lpass_core_hw: lpass_hw_core_client_hdl 74
    [80661.815682] BENGAL Media1: ASoC: open FE BENGAL Media1
    [80661.815753] q6asm_audio_client_alloc: Registering the common port with APR
    [80661.815766] q6asm_audio_client_alloc: mem_map_handle list init'ed
    [80661.815780] q6asm_audio_client_alloc: session[1]
    [80661.816816] BENGAL Media1: ASoC: close FE BENGAL Media1
    [80661.817522] msm_pcm_playback_close: cmd_pending 0x0
    [80661.817538] msm_pcm_playback_close: CMD_EOS timeout is 50
    [80661.817555] __q6asm_cmd: token = 0x100, stream_id  1, session 0x1
    [80661.817566] __q6asm_cmd: CMD_CLOSE
    [80661.817578] __q6asm_cmd: session[1]opcode[0x10bcd]
    [80661.817939] q6asm_callback: session 1 opcode 0x110e8 token 0x100 Payload = [0x10bcd] src 257 dest 257
    [80661.817945] q6asm_callback: session 1 opcode 0x110e8 token 0x100 Payload = [0x10bcd] stat 0x1 src 257 dest 257
    [80661.817948] q6asm_callback: cmd = 0x10bcd returned error = 0x1
    [80661.823998] __q6asm_cmd: DSP returned error[ADSP_EFAILED] opcode 68557
    [80661.830746] q6asm_audio_client_buf_free_contiguous: Session id 1
    [80661.830785] q6asm_audio_client_free: Session id 1
    [80661.830818] q6asm_session_free: sessionid[1]
    [80661.830844] q6asm_audio_client_free: APR De-Register
    [80661.831400] SEC_MI2S_RX: ASoC: close BE SEC_MI2S_RX
    [80661.832122] msm_mi2s_get_port_id: port_id = 0x1002
    [80661.832145] msm-dai-q6-mi2s soc:qcom,msm-dai-mi2s:qcom,msm-dai-q6-mi2s-sec: msm_dai_q6_mi2s_shutdown: closing afe port id = 0x1002
    [80661.832165] msm_mi2s_snd_shutdown(): substream = subdevice #0  stream = 0
    [80661.834363] afe_get_port_idx: port id 0x1002
    [80661.834383] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.834400] afe_set_source_clk: updated clk src name  port id 0x1
    [80661.834415] afe_get_port_idx: port id 0x1002
    [80661.834430] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.834451] afe_set_lpass_clk_cfg: Minor version =0x1 clk id = 258\x0aclk freq (Hz) = 1536000, clk attri = 0x1\x0aclk root = 0x0 clk enable = 0x0
    [80661.834504] afe_q6_interface_prepare:
    [80661.834914] afe_callback_debug_print: code = 0x110e8 PL#0[0x100fc], PL#1[0x0], size = 8
    [80661.834921] afe_callback:opcode = 0x110e8 cmd = 0x100fc status = 0x0 token=1024
    [80661.834946] afe_callback: port_id = 0x0
    [80661.834950] afe_callback: default case 0x0
    [80661.835006] afe_apr_send_clk_pkt: leave 0
    [80661.835044] Anil msm_mi2s_snd_shutdown: Disabling mclk, clk_freq_in_hz = 12288000
    [80661.843378] afe_get_port_idx: port id 0x1002
    [80661.843396] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.843413] afe_set_source_clk: updated clk src name  port id 0x1
    [80661.843428] afe_get_port_idx: port id 0x1002
    [80661.843443] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.843462] afe_set_lpass_clk_cfg: Minor version =0x1 clk id = 768\x0aclk freq (Hz) = 12288000, clk attri = 0x1\x0aclk root = 0x0 clk enable = 0x0
    [80661.843502] afe_q6_interface_prepare:
    [80661.843798] afe_callback_debug_print: code = 0x110e8 PL#0[0x100fc], PL#1[0x0], size = 8
    [80661.843805] afe_callback:opcode = 0x110e8 cmd = 0x100fc status = 0x0 token=1024
    [80661.843810] afe_callback: port_id = 0x0
    [80661.843815] afe_callback: default case 0x0
    [80661.844058] afe_apr_send_clk_pkt: leave 0
    [80661.844100] msm_pcm_routing_close: substream->pcm->id:(Secondary MI2S Playback)
    [80661.844136] SEC_MI2S_RX: ASoC: BE SEC_MI2S_RX event 2 dir 0
    [80661.849229] BENGAL Media1: ASoC: BE playback disconnect check for SEC_MI2S_RX
    [80661.849246] BENGAL Media1: freed DSP playback path BENGAL Media1 -> SEC_MI2S_RX
    [80661.851013] BENGAL Media1: ASoC: found 9 audio playback paths
    [80661.851035] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: find BE for widget Secondary MI2S Playback
    [80661.851051] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : AFE Playback
    [80661.851064] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.851077] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.851090] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.851104] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Voice Farend Playback
    [80661.851117] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Voice2 Farend Playback
    [80661.851132] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.851145] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Proxy Playback
    [80661.851159] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : USB Audio Playback
    [80661.851172] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.851187] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : RX CDC DMA0 Playback
    [80661.851201] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : RX CDC DMA1 Playback
    [80661.851214] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : RX CDC DMA2 Playback
    [80661.851228] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : RX CDC DMA3 Playback
    [80661.851242] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.851255] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.851269] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.851281] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.851295] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : (not set)
    [80661.851309] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Primary MI2S Playback
    [80661.851322] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Primary MI2S Playback
    [80661.851336] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: ASoC: try BE : Secondary MI2S Playback
    [80661.851373] BENGAL Media1: connected new DPCM playback path BENGAL Media1 -> SEC_MI2S_RX
    [80661.851571] BENGAL Media1: ASoC: found 1 new BE paths
    [80661.851590] SEC_MI2S_RX: ASoC: open playback BE SEC_MI2S_RX
    [80661.851623] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: msm_mi2s_snd_startup: substream = subdevice #0  stream = 0, dai name Secondary MI2S, dai ID 1
    [80661.851639] bengal-asoc-snd soc:qcom,msm-audio-apr:qcom,q6core-audio:sound: msm_mi2s_set_sclk: clock rate 1536000l
    [80661.851657] afe_get_port_idx: port id 0x1002
    [80661.851670] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.851685] afe_set_source_clk: updated clk src name  port id 0x1
    [80661.851698] afe_get_port_idx: port id 0x1002
    [80661.851709] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.851727] afe_set_lpass_clk_cfg: Minor version =0x1 clk id = 258\x0aclk freq (Hz) = 1536000, clk attri = 0x1\x0aclk root = 0x0 clk enable = 0x1
    [80661.851770] afe_q6_interface_prepare:
    [80661.852095] afe_callback_debug_print: code = 0x110e8 PL#0[0x100fc], PL#1[0x0], size = 8
    [80661.852101] afe_callback:opcode = 0x110e8 cmd = 0x100fc status = 0x0 token=1024
    [80661.852129] afe_callback: port_id = 0x0
    [80661.852132] afe_callback: default case 0x0
    [80661.852180] afe_apr_send_clk_pkt: leave 0
    [80661.852211] Anil msm_mi2s_snd_startup: Enabling mclk, clk_freq_in_hz = 12288000
    [80661.859666] afe_get_port_idx: port id 0x1002
    [80661.859678] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.859691] afe_set_source_clk: updated clk src name  port id 0x1
    [80661.859703] afe_get_port_idx: port id 0x1002
    [80661.859715] afe_get_port_idx: idx 0x1 port id 0x1002
    [80661.859730] afe_set_lpass_clk_cfg: Minor version =0x1 clk id = 768\x0aclk freq (Hz) = 12288000, clk attri = 0x1\x0aclk root = 0x0 clk enable = 0x1
    [80661.859769] afe_q6_interface_prepare:
    [80661.860047] afe_callback_debug_print: code = 0x110e8 PL#0[0x100fc], PL#1[0x0], size = 8
    [80661.860053] afe_callback:opcode = 0x110e8 cmd = 0x100fc status = 0x0 token=1024
    [80661.860069] afe_callback: port_id = 0x0
    [80661.860073] afe_callback: default case 0x0
    [80661.860117] afe_apr_send_clk_pkt: leave 0
    [80661.861920] BENGAL Media1: ASoC: open FE BENGAL Media1
    [80661.861995] q6asm_audio_client_alloc: Registering the common port with APR
    [80661.862008] q6asm_audio_client_alloc: mem_map_handle list init'ed
    [80661.862022] q6asm_audio_client_alloc: session[1]
    [80661.862691] msm_be_hw_params_fixup: format = 2, rate = 48000
    [80661.862710] SEC_MI2S_RX: ASoC: hw_params BE SEC_MI2S_RX
    [80661.862725] msm_be_hw_params_fixup: format = 2, rate = 48000
    [80661.862742] CPU: 0 PID: 10306 Comm: tinyplay Tainted: G        W  O      4.19.157+ #126
    [80661.862752] Hardware name: Qualcomm Technologies, Inc. Scuba IOT IDP (DT)
    [80661.862761] Call trace:
    [80661.862778] dump_backtrace+0x0/0x260
    [80661.862789] show_stack+0x20/0x30
    [80661.862800] dump_stack+0xe8/0x13c
    [80661.862814] tas571x_hw_params+0x38/0x260
    [80661.862823] soc_pcm_hw_params+0x1a4/0x680
    [80661.862833] dpcm_be_dai_hw_params+0x190/0x328
    [80661.862842] dpcm_fe_dai_hw_params+0x90/0x1e0
    [80661.862853] snd_pcm_hw_params+0x160/0x4a8
    [80661.862863] snd_pcm_common_ioctl+0x1084/0x3078
    [80661.862872] snd_pcm_ioctl+0x4c/0x90
    [80661.862882] do_vfs_ioctl+0x748/0x1210
    [80661.862891] __arm64_sys_ioctl+0x78/0xa0
    [80661.862902] el0_svc_common+0xa4/0x190
    [80661.862911] el0_svc_handler+0x78/0x98
    [80661.862920] el0_svc+0x8/0xc
    [80661.862930] ######## func tas571x_hw_params line 288 format = 0
    [80661.868964] ##### I2C read succss ret: 0   Val: 5
    [80661.873823] msm_be_hw_params_fixup: format = 2, rate = 48000
    [80661.873848] msm-dai-q6-mi2s soc:qcom,msm-dai-mi2s:qcom,msm-dai-q6-mi2s-sec: msm_dai_q6_mi2s_hw_params: dai id 1 dai_data->channels = 2\x0asample_rate = 48000 i2s_cfg_minor_version = 0x1\x0abit_width = 16  channel_mode = 0x1 mono_stereo = 0x1\x0aws_src = 0x1 sample_rate = 48000 data_format = 0x0\x0areserved = 0
    [80661.873869] msm_pcm_routing_hw_params: BE Sample Rate (48000) format (2) BE id 41
    [80661.873885] BENGAL Media1: ASoC: hw_params FE BENGAL Media1 rate 48000 chan 2 fmt 2
    [80661.873901] q6asm_audio_client_buf_alloc_contiguous: session[1]bufsz[4096]bufcnt[4]
    [80661.874512] q6asm_audio_client_buf_alloc_contiguous: data[ffffff8011903000]phys[ffffffd138acdba8][ffffffd138acdba8]
    [80661.874525] q6asm_audio_client_buf_alloc_contiguous: data[ffffff8011904000]phys[ffffffd138acdbd0][ffffffd138acdbd0]
    [80661.874537] q6asm_audio_client_buf_alloc_contiguous: data[ffffff8011905000]phys[ffffffd138acdbf8][ffffffd138acdbf8]
    [80661.874616] q6asm_memory_map_regions: Session[1]
    [80661.874653] q6asm_add_mmaphdr: pkt size=40
    [80661.874664] q6asm_memory_map_regions: mmap_region=0xffffffd11d45de80 token=0x100
    [80661.874675] q6asm_memory_map_regions: map_regions->nregions = 1
    [80661.875052] q6asm_srvc_callback:ptr0[0xb089edb8]opcode[0x10d93] token[0x100]payload_s[4] src[0] dest[0]sid[1]dir[0]
    [80661.875056] q6asm_srvc_callback:Payload = [0xb089edb8]
    [80661.875059] q6asm_srvc_callback:PL#0[0xb089edb8] dir=0x0 s_id=0x1
    [80661.875075] Not Supported Event opcode[0x10d93]
    [80661.875117] q6asm_memory_map_regions: i=0, bufadd[i] = 0xffffffd11d45f510, maphdl[i] = 0xb089edb8
    [80661.875129] q6asm_memory_map_regions: i=1, bufadd[i] = 0xffffffd11d45f530, maphdl[i] = 0xb089edb8
    [80661.875141] q6asm_memory_map_regions: i=2, bufadd[i] = 0xffffffd11d45f550, maphdl[i] = 0xb089edb8
    [80661.875152] q6asm_memory_map_regions: i=3, bufadd[i] = 0xffffffd11d45f570, maphdl[i] = 0xb089edb8
    [80661.875173] msm_pcm_hw_params:buf = ffffffd138acdb80
    [80661.876055] BENGAL Media1: ASoC: prepare FE BENGAL Media1
    [80661.876073] SEC_MI2S_RX: ASoC: prepare BE BENGAL Media1
    [80661.877160] #### func tas571x_set_bias_level line 351 level 1
    [80661.884136] #### func tas571x_set_bias_level line 359 enter to enalbe master clk
    [80661.891866] is err mclk: 1
    [80661.894974] 3 request mclk: ffffffd148cf2600
    [80661.900483] i2c_geni 4a84000.i2c: i2c error :-107
    [80661.905305] failed to get clk = 0
    [80661.908865] #### func tas571x_set_bias_level line 372 level 1
    [80661.914723] afe_set_lpass_clk_cfg: Minor version =0x1 clk id = 769\x0aclk freq (Hz) = 9600000, clk attri = 0x1\x0aclk root = 0x0 clk enable = 0x1
    [80661.914761] afe_q6_interface_prepare:
    [80661.915301] afe_callback_debug_print: code = 0x110e8 PL#0[0x100fc], PL#1[0x0], size = 8
    [80661.915306] afe_callback:opcode = 0x110e8 cmd = 0x100fc status = 0x0 token=1024
    [80661.915324] afe_callback: port_id = 0x0
    [80661.915327] afe_callback: default case 0x0
    [80661.915517] afe_apr_send_clk_pkt: leave 0
    [80661.915550] reg TAS571X_MVOL_REG level = 0x3fe
    [80661.920075] reg TAS571X_SYS_CTRL_2_REG = 0x40
    [80661.925313] reg after write TAS571X_SYS_CTRL_2_REG = 0x0
    [80661.931347] reg TAS571X_SYS_CTRL_2_REG = 0x1021345
    [80661.937485] ##### reg TAS571X_ERR_STATUS_REG, ret: 0   Val: 0x0
    [80661.943487] #### func tas571x_set_bias_level line 351 level 2
    [80661.949555] tas571x 0-002b: dapm: powering up widget Playback
    [80661.949572] msm-dai-q6-mi2s soc:qcom,msm-dai-mi2s:qcom,msm-dai-q6-mi2s-sec: dapm: powering up widget Secondary MI2S Playback
    [80661.949584] tas571x 0-002b: dapm: powering up widget OUT_D
    [80661.949596] tas571x 0-002b: dapm: powering up widget OUT_C
    [80661.949607] tas571x 0-002b: dapm: powering up widget OUT_B
    [80661.949618] tas571x 0-002b: dapm: powering up widget OUT_A
    [80661.949630] tas571x 0-002b: dapm: powering up widget DACR
    [80661.949643] tas571x 0-002b: dapm: powering up widget DACL
    [80661.950106] #### func tas571x_set_bias_level line 351 level 3
    [80661.956173] msm_pcm_routing_prepare: substream->pcm->id:(Secondary MI2S Playback)
    [80661.956188] msm_pcm_routing_get_voc_sessionid session_id 0x0
    [80661.956201] msm_mi2s_get_port_id: port_id = 0x1002
    [80661.956217] msm-dai-q6-mi2s soc:qcom,msm-dai-mi2s:qcom,msm-dai-q6-mi2s-sec: msm_dai_q6_mi2s_prepare: dai id 1, afe port id = 0x1002\x0adai_data->channels = 2 sample_rate = 48000
    [80661.956230] __afe_port_start: port id: 0x1002
    [80661.956243] afe_q6_interface_prepare:
    [80661.956259] msm_pcm_get_dev_acdb_id_by_port_id:port_id 4098 be_id 41, port_type 0x0
    [80661.956272] msm_pcm_get_dev_acdb_id_by_port_id: FE[0] session[0] BE[41] acdb_id(0)
    [80661.956288] afe_port_topology_deregister: mjor: 2, mnor: 9, brnch: 0, afe_api: 7
    [80661.956300] afe_port_topology_deregister build ver mismatch - leaving function 0
    [80661.956377] afe_get_cal_topology_id: cal_type 8 not initialized for this port 4098
    [80661.964289] afe_q6_interface_prepare:
    [80661.964307] afe_unvote_lpass_core_hw: lpass core hw unvote opcode[0x100f6] hw id[0x4]
    [80661.964483] afe_send_port_topology_id: AFE port[4098] get_cal_topology[0] invalid!
    [80661.964500] afe_send_port_topology_id: AFE set topology id 0x0  enable for port 0x1002 ret -22
    [80661.964532] afe_send_cal: port_id=0x1002
    [80661.964544] send_afe_cal_type: cal_index is 0
    [80661.964555] send_afe_cal_type: dev_acdb_id[36] is 0
    [80661.964566] send_afe_cal_type cal_block not found!!
    [80661.969483] afe_callback_debug_print: code = 0x110e8 PL#0[0x100f6], PL#1[0x0], size = 8
    [80661.969488] afe_callback:opcode = 0x110e8 cmd = 0x100f6 status = 0x0 token=0
    [80661.969508] afe_callback: port_id = 0x0
    [80661.969511] afe_callback: default case 0x0
    [80661.969723] afe_apr_send_clk_pkt: leave 0
    [80661.969836] afe_send_hw_delay:
    [80661.969850] afe_get_cal_hw_delay:
    [80661.969864] afe_find_hw_delay_by_path:
    [80661.969897] afe_q6_interface_prepare:
    [80661.970213] afe_callback_debug_print: code = 0x110e8 PL#0[0x100fa], PL#1[0x0], size = 8
    [80661.970218] afe_callback:opcode = 0x110e8 cmd = 0x100fa status = 0x0 token=36
    [80661.970237] afe_callback: port_id = 0x0
    [80661.970241] afe_callback: default case 0x0
    [80661.970360] afe_apr_send_pkt: leave 0
    [80661.970394] afe_send_hw_delay: port_id 0x1002 rate 48000 delay_usec 0 status 0
    [80661.970410] afe_port_get_mad_type: Non Slimbus port_id 0x1002
    [80661.970424] __afe_port_start: port_id 0x1002, mad_type 0
    [80661.970456] afe_q6_interface_prepare:
    [80661.970744] afe_callback_debug_print: code = 0x110e8 PL#0[0x100fa], PL#1[0x0], size = 8
    [80661.970749] afe_callback:opcode = 0x110e8 cmd = 0x100fa status = 0x0 token=36
    [80661.970767] afe_callback: port_id = 0x0
    [80661.970770] afe_callback: default case 0x0
    [80661.970818] afe_apr_send_pkt: leave 0
    [80661.970851] afe_send_cmd_port_start: enter
    [80661.970867] afe_send_cmd_port_start: cmd device start opcode[0x100e5] port id[0x1002]
    [80661.976998] afe_callback_debug_print: code = 0x110e8 PL#0[0x100e5], PL#1[0x0], size = 8
    [80661.977010] afe_callback:opcode = 0x110e8 cmd = 0x100e5 status = 0x0 token=36
    [80661.977072] afe_callback: port_id = 0x0
    [80661.977077] afe_callback: default case 0x0
    [80661.977229] afe_apr_send_pkt: leave 0
    [80661.977261] msm-dai-q6-mi2s soc:qcom,msm-dai-mi2s:qcom,msm-dai-q6-mi2s-sec: msm_dai_q6_mi2s_prepare: set hwfree_status to started
    [80661.981557] msm-dai-fe soc:qcom,msm-dai-fe: dapm: powering up widget MultiMedia1 Playback
    [80661.981583] msm-pcm-routing soc:qcom,msm-pcm-routing: dapm: powering up widget BE_OUT
    [80661.981599] msm-pcm-routing soc:qcom,msm-pcm-routing: dapm: powering up widget SEC_MI2S_RX Audio Mixer
    [80661.981618] msm-pcm-routing soc:qcom,msm-pcm-routing: dapm: powering up widget MM_DL1
    [80661.981634] msm-pcm-routing soc:qcom,msm-pcm-routing: dapm: powering up widget SEC_MI2S_RX
    [80661.982338] msm_pcm_playback_prepare
    [80661.982355] msm_pcm_playback_prepare: perf: 0
    [80661.982387] q6asm_get_asm_topology_apptype: Using topology 68580 app_type 69936
    [80661.982403] __q6asm_open_write: perf_mode 0 asm_topology 0x10be4 bps 16
    [80661.985461] q6asm_callback: session 1 opcode 0x110e8 token 0x100 Payload = [0x10db3] stat 0x0 src 257 dest 257
    [80661.985485] event_handler:Payload = [0x10db3]stat[0x0]
    [80661.985562] q6asm_send_cal:
    [80661.985579] q6asm_send_cal: cal_block is stale
    [80661.985594] msm_pcm_playback_prepare: session ID 1
    [80661.985624] msm_routing_get_adm_topology: fedai_id 0, session_type 0, be_id 41
    [80661.985639] msm_routing_get_adm_topology: Check for exact LSM topology
    [80661.985653] msm_routing_find_topology
    [80661.985669] msm_routing_find_topology: Can't find topology for path 0, app 0, acdb_id 0 fail
    [80661.985683] msm_routing_get_adm_topology: Check for compatible topology
    [80661.985698] msm_routing_find_topology
    [80661.985715] msm_routing_find_topology: Can't find topology for path 0, app 0, acdb_id 0 defaulting to search by path
    [80661.985730] msm_routing_find_topology_by_path
    [80661.985746] msm_routing_find_topology_by_path: Can't find topology for path 0
    [80661.985761] msm_routing_get_adm_topology: Using topology 66322
    [80661.985781] adm_open:port 0x1002 path:1 rate:48000 mode:2 perf_mode:0,topo_id 66322
    [80661.985799] adm_validate_and_get_port_index: port_idx- 36
    [80661.985817] adm_get_idx_if_copp_exists: port_idx-36, topology-0x10312, mode-0, rate-48000, bit_width-16
    [80661.985834] adm_get_next_available_copp:
    [80661.985851] adm_get_next_available_copp: copp_id:0x63 port_idx:36 idx:0
    [80661.985870] adm_open: open ADM: port_idx: 36, copp_idx: 0
    [80661.985892] adm_open: port_id=0x1002 ffff ffff topology_id=0x10312 flags 0 ref_ch 0
    [80661.985934] adm_apr_send_pkt: port idx  36 copp idx  0
    [80661.991262] adm_callback_debug_print: code = 0x1036b PL#0[0x0], PL#1[0xb05f0000], size = 8
    [80661.991269] adm_callback: coppid rxed=0
    [80661.991585] msm_pcm_routing_reg_phy_stream: setting idx bit of fe:0, type: 0, be:41
    [80661.991623] perform resampling (not really) for copp rate (48000)afe rate (48000)
    [80661.991710] route_set_opcode_matrix_id: opcode 0x10325, matrix id 0
    [80661.991748] adm_validate_and_get_port_index: port_idx- 36
    [80662.000554] adm_callback_debug_print: code = 0x110e8 PL#0[0x10325], PL#1[0x0], size = 8
    [80662.000572] adm_callback: APR_BASIC_RSP_RESULT id 0x10325
    [80662.000583] adm_callback: Basic callback received, wake up.
    [80662.000913] adm_validate_and_get_port_index: port_idx- 36
    [80662.000958] send_adm_cal: port id 0x1002 copp_idx 0
    [80662.000993] send_adm_cal_type: cal index 1
    [80662.001028] adm_find_cal:
    [80662.001070] adm_find_cal: Can't find ADM cal for cal_index 1, path 0, app 0, acdb_id 0 sample_rate 0 defaulting to search by app type
    [80662.001104] adm_find_cal_by_app_type
    [80662.001142] adm_find_cal_by_app_type: Can't find ADM cali for cal_index 1, path 0, app 0, defaulting to search by path
    [80662.001176] adm_find_cal_by_path:
    [80662.001213] adm_find_cal_by_path: Can't find ADM cal for cal_index 1, path 0
    [80662.001247] send_adm_cal_type: cal index 9
    [80662.001282] adm_find_cal:
    [80662.001325] adm_find_cal: Can't find ADM cal for cal_index 9, path 0, app 0, acdb_id 0 sample_rate 0 defaulting to search by app type
    [80662.001361] adm_find_cal_by_app_type
    [80662.001401] adm_find_cal_by_app_type: Can't find ADM cali for cal_index 9, path 0, app 0, defaulting to search by path
    [80662.001435] adm_find_cal_by_path:
    [80662.001477] adm_find_cal_by_path: Can't find ADM cal for cal_index 9, path 0
    [80662.001513] send_adm_cal_type: cal index 3
    [80662.001549] adm_find_cal:
    [80662.001588] adm_find_cal: Can't find ADM cal for cal_index 3, path 0, app 0, acdb_id 0 sample_rate 0 defaulting to search by app type
    [80662.001621] adm_find_cal_by_app_type
    [80662.001658] adm_find_cal_by_app_type: Can't find ADM cali for cal_index 3, path 0, app 0, defaulting to search by path
    [80662.001691] adm_find_cal_by_path:
    [80662.001727] adm_find_cal_by_path: Can't find ADM cal for cal_index 3, path 0
    [80662.001761] adm_matrix_map: copp_id: 0
    [80662.001829] msm_pcm_routing_channel_mixer_v2: channel mixer not enabled for FE 0 direction 0
    [80662.001865] msm_pcm_routing_channel_mixer: channel mixer not enabled for FE 0
    [80662.001909] __q6asm_media_format_block_multi_ch_pcm_v5: session[1]rate[48000]ch[2]bps[16]wordsize[16]
    [80662.001955] q6asm_map_channels:  channels passed: 2
    [80662.002679] q6asm_callback: session 1 opcode 0x110e8 token 0x100 Payload = [0x10d98] stat 0x0 src 257 dest 257
    [80662.002729] event_handler:Payload = [0x10d98]stat[0x0]
    [80662.003107] SEC_MI2S_RX: ASoC: BE SEC_MI2S_RX event 1 dir 0
    [80662.005749] msm_pcm_playback_copy: prtd->out_count = 4
    [80662.005795] msm_pcm_playback_copy:fbytes =16384: xfer=4096 size=4096
    [80662.005839] msm_pcm_playback_copy:fbytes = 12288: xfer=4096
    [80662.005877] msm_pcm_playback_copy:fbytes =12288: xfer=4096 size=4096
    [80662.005917] msm_pcm_playback_copy:fbytes = 8192: xfer=4096
    [80662.005953] msm_pcm_playback_copy:fbytes =8192: xfer=4096 size=4096
    [80662.005994] msm_pcm_playback_copy:fbytes = 4096: xfer=4096
    [80662.006031] msm_pcm_playback_copy:fbytes =4096: xfer=4096 size=4096
    [80662.006075] msm_pcm_playback_copy:fbytes = 0: xfer=4096
    [80662.006119] SEC_MI2S_RX: ASoC: trigger BE SEC_MI2S_RX cmd 1
    [80662.006138] BENGAL Media1: ASoC: post trigger FE BENGAL Media1 cmd 1
    [80662.006150] msm_pcm_trigger: Trigger start
    [80662.006161] __q6asm_run_nowait: session[1]
    [80662.006412] pcm_irq_pos = 0
    [80662.007270] q6asm_callback: No wait command opcode[0x110e8] cmd_opcode:10daa
    [80662.007287] q6asm_callback: session 1 opcode 0x110e8 token 0x2000100 Payload = [0x10daa] src 257 dest 257
    [80662.007302] q6asm_callback: session 1 opcode 0x110e8 token 0x2000100 Payload = [0x10daa] stat 0x0 src 257 dest 257
    [80662.007315] event_handler:writing 4096 bytes of buffer to dsp
    [80662.007378] event_handler:writing 4096 bytes of buffer to dsp
    [80662.007425] event_handler:writing 4096 bytes of buffer to dsp
    [80662.007470] event_handler:writing 4096 bytes of buffer to dsp
    [80662.010752] q6asm_callback: No wait command opcode[0x10d99] cmd_opcode:1fba8000
    [80662.010769] ASM_DATA_EVENT_WRITE_DONE_V2
    [80662.010778] Buffer Consumed = 0x1fba8000
    [80662.010792] pcm_irq_pos = 4096
    [80662.010999] msm_pcm_playback_copy: prtd->out_count = 1
    [80662.011041] msm_pcm_playback_copy:fbytes =4096: xfer=4096 size=4096
    [80662.011082] msm_pcm_playback_copy:fbytes = 0: xfer=4096
    [80662.011117] msm_pcm_playback_copy:writing 4096 bytes of buffer to dsp
    [80662.027056] q6asm_callback: No wait command opcode[0x10d99] cmd_opcode:1fba9000
    [80662.027079] ASM_DATA_EVENT_WRITE_DONE_V2
    [80662.027089] Buffer Consumed = 0x1fba9000
    [80662.027109] pcm_irq_pos = 8192
    [80662.027425] msm_pcm_playback_copy: prtd->out_count = 1
    [80662.027467] msm_pcm_playback_copy:fbytes =4096: xfer=4096 size=4096
    [80662.027512] msm_pcm_playback_copy:fbytes = 0: xfer=4096
    [80662.027547] msm_pcm_playback_copy:writing 4096 bytes of buffer to dsp
    [80662.047042] q6asm_callback: No wait command opcode[0x10d99] cmd_opcode:1fbaa000
    [80662.047064] ASM_DATA_EVENT_WRITE_DONE_V2
    [80662.047074] Buffer Consumed = 0x1fbaa000
    [80662.047094] pcm_irq_pos = 12288
    [80662.047425] msm_pcm_playback_copy: prtd->out_count = 1
    [80662.047469] msm_pcm_playback_copy:fbytes =4096: xfer=4096 size=4096
    [80662.047513] msm_pcm_playback_copy:fbytes = 0: xfer=4096
    [80662.047548] msm_pcm_playback_copy:writing 4096 bytes of buffer to dsp
    [80662.076991] q6asm_callback: No wait command opcode[0x10d99] cmd_opcode:1fbab000
    [80662.077014] ASM_DATA_EVENT_WRITE_DONE_V2
    [80662.077024] Buffer Consumed = 0x1fbab000
    [80662.077043] pcm_irq_pos = 0
    [80662.077370] msm_pcm_playback_copy: prtd->out_count = 1
    [80662.077412] msm_pcm_playback_copy:fbytes =4096: xfer=4096 size=4096
    [80662.077457] msm_pcm_playback_copy:fbytes = 0: xfer=4096
    [80662.077492] msm_pcm_playback_copy:writing 4096 bytes of buffer to dsp
    [80662.077801] pcm_irq_pos = 0
    [80662.096997] q6asm_callback: No wait command opcode[0x10d99] cmd_opcode:1fba8000
    [80662.097020] ASM_DATA_EVENT_WRITE_DONE_V2
    [80662.097030] Buffer Consumed = 0x1fba8000
    [80662.097049] pcm_irq_pos = 4096
    [80662.097452] msm_pcm_playback_copy: prtd->out_count = 1
    [80662.097495] msm_pcm_playback_copy:fbytes =4096: xfer=4096 size=4096
    [80662.097545] msm_pcm_playback_copy:fbytes = 0: xfer=4096
    [80662.097580] msm_pcm_playback_copy:writing 4096 bytes of buffer to dsp
    [80662.116999] q6asm_callback: No wait command opcode[0x10d99] cmd_opcode:1fba9000
    [80662.117023] ASM_DATA_EVENT_WRITE_DONE_V2
    [80662.117032] Buffer Consumed = 0x1fba9000
    [80662.117052] pcm_irq_pos = 8192
    
    

    Thanks

    Anil

  • Hi Anil

    can you read register 0x00, it reflects how the device detect the clock.

    BTW, do you use the MCLK too?

    i found your code enable the mclk, then disable the mclk.

    then I saw your code has mclk error, i am not sure whether i understand your log right or not, have you confirmed this issue?

    thanks.

    Jesse

  • Hi Jesse,

    I have read and printed all the register in the same log you can see

    [80661.915517] afe_apr_send_clk_pkt: leave 0
    [80661.915550] reg TAS571X_MVOL_REG level = 0x3fe
    [80661.920075] reg TAS571X_SYS_CTRL_2_REG = 0x40
    [80661.925313] reg after write TAS571X_SYS_CTRL_2_REG = 0x0
    [80661.937485] ##### reg TAS571X_ERR_STATUS_REG, ret: 0   Val: 0x0
    [80661.943487] #### func tas571x_set_bias_level line 351 level 2
    [80661.949555] tas571x 0-002b: dapm: powering up widget Playback

    [80661.891866] is err mclk: 1   this one is actual print of (!IS_ERR(priv->mclk)

    pr_err("is err mclk: %d\n",(!IS_ERR(priv->mclk)));

    Thanks

    Anil

  • Anil

    thanks for you log.

    I didn't understand your log very much.

    what i want to check is below register. 

    BTW, in your log, mclk error is reported. have you used the mclk clock?

    thanks.

    jesse

  •    please refer to the waveform of the clocks.

  • [  186.271896] msm_rpm_flush_requests: Error: more than 24 requests are buffered
    [  226.914844] q6asm_callback: cmd = 0x10bcd returned error = 0x1
    [  226.920837] __q6asm_cmd: DSP returned error[ADSP_EFAILED] opcode 68557
    [  226.941389] ######## func tas571x_hw_params line 290 format = 0
    [  226.947526] ##### I2C read succss ret: 0   Val: 5
    [  226.965205] #### func tas571x_set_bias_level line 353 level 1
    [  226.971322] #### func tas571x_set_bias_level line 361 enter to enalbe master clk
    [  226.979118] is err mclk: 1
    [  226.982096] 3 request mclk: ffffffc3ec337a00
    [  226.988037] i2c_geni 4a84000.i2c: i2c error :-107
    [  226.995633] failed to get clk = 0
    [  226.999050] #### func tas571x_set_bias_level line 381 level 1
    [  227.005520] failed to get clk = 0
    [  227.009025] reg TAS571X_MVOL_REG level = 0x3fe
    [  227.013616] reg TAS571X_SYS_CTRL_2_REG = 0x40
    [  227.018478] reg after write TAS571X_SYS_CTRL_2_REG = 0x0
    [  227.024700] reg TAS571X_SYS_CTRL_2_REG = 0x1021345
    [  227.030508] ##### reg TAS571X_ERR_STATUS_REG, ret: 0   Val: 0x0
    [  227.036598] #### func tas571x_set_bias_level line 353 level 2
    [  227.042714] #### func tas571x_set_bias_level line 353 level 3
    [  227.048772] afe_get_cal_topology_id: cal_type 8 not initialized for this port 4098
    [  227.056491] send_afe_cal_type cal_block not found!!
    [  273.753180] i2c_geni 4a84000.i2c: i2c error :-107

    Cleared the status reg(0x02) and read, result is 0x00, clks should be fine.

  • Hi

    so now your error already been cleared.

    but still no output? am i understanding right?

    i am not sure whether can help you, can you take a try below actions?

    remove the mclk to check whether the circuit work or not?

    i2s should able to work even without mclk.

    thanks.

    jesse

  • How to set the registers for no MCLK? could FAE visit our BJ office?Thanks.

  • Hi

    have you tried this register according to your i2s format?

    I am not very clear about your log description, for you log keep showing mclk or clk error.

    if they are just meaning less line in the log, then that should be fine.

    one more thing need to confirm is that you said when connecting speaker, the PWM will disappear.

    have you tried to change the speaker to resistance? does it still have the same problem?

    thanks.

    jesse

  • please ignore those lines in the logs, clocks are measured by oscilloscope