Re: [PATCH v2 0/4] ASoC: qcom: display port changes

From: Xilin Wu
Date: Sat May 25 2024 - 03:12:45 EST


Hi Srini,

On 2024/5/24 20:50, Srinivas Kandagatla wrote:
Hi Xilin,

On 23/05/2024 05:09, Xilin Wu wrote:

Srinivas Kandagatla (4):
   ASoC: qcom: q6dsp: parse Display port tokens
   ASoC: qcom: common: add Display port Jack function
   ASoC: qcom: sc8280xp: add Display port Jack
   ASoC: qcom: sm8250: fix a typo in function name

  sound/soc/qcom/common.c         | 29 +++++++++++++++++++++++++++++
  sound/soc/qcom/common.h         |  3 +++
  sound/soc/qcom/qdsp6/topology.c | 26 ++++++++++++++++++++++++++
  sound/soc/qcom/sc8280xp.c       | 14 ++++++++++++++
  sound/soc/qcom/sm8250.c         |  4 ++--
  5 files changed, 74 insertions(+), 2 deletions(-)


Hi Srini,

I tested this series on SM8550 with tplg in [1] and ucm in [2]. But the kernel output errors attached below. Headphone does work properly without DisplayPort in the ucm.

What could be the possible cause of this? Is there any significant change from sc8280xp to sm8550?

--
Thanks,
Xilin Wu

[1] https://github.com/edk2-porting/audioreach-topology/blob/sakuramist/QCS8550-AYN-ODIN2.m4
[2] https://github.com/strongtz/alsa-ucm-conf/blob/odin2/ucm2/Qualcomm/sm8550/HiFi.conf

[ 1552.313713] qcom-apm gprsvc:service:2:1: Error (1) Processing 0x01001000 cmd
[ 1552.313730] qcom-apm gprsvc:service:2:1: DSP returned error[1001000] 1
[ 1552.314455] qcom-apm gprsvc:service:2:1: Error (1) Processing

Is the DP cable connected?

I'm sure that the cable is connected and I have desktop on external display.
If it's not connected, kernel gives the following error when using aplay:

hdmi-audio-codec hdmi-audio-codec.1.auto: ASoC: error at snd_soc_dai_hw_params on i2s-hifi: -22


if its not connected the dsp will throw this error.

due to this issue I did workaround this issue by modeling it as conflicting device to Speaker in x13s ucm.

I see in your ucm setup its not the case.
which is why you might be hitting this issue.

Can you try
amixer -c 0 cset iface=MIXER,name='DISPLAY_PORT_RX_0 Audio Mixer MultiMedia2' 1
aplay -D plughw:0,1 some-wav-file.wav

both with and without display connected.


aplay always gives the following error:

Playing WAVE 'Summer.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
aplay: set_params:1456: Unable to install hw params:
ACCESS: RW_INTERLEAVED
FORMAT: S16_LE
SUBFORMAT: STD
SAMPLE_BITS: 16
FRAME_BITS: 32
CHANNELS: 2
RATE: 44100
PERIOD_TIME: (42666 42667)
PERIOD_SIZE: (1881 1882)
PERIOD_BYTES: (7524 7528)
PERIODS: (3 5)
BUFFER_TIME: (170657 170658)
BUFFER_SIZE: 7526
BUFFER_BYTES: 30104
TICK_TIME: 0

and kernel gives the following when display is connected:

[drm:dp_catalog_audio_config_sdp] sdp_cfg = 0x100066
[drm:dp_catalog_audio_config_sdp] sdp_cfg2 = 0x1b800004
[drm:dp_audio_hw_params] Header Byte 1: value = 0xce020000, parity_byte = 0xce
[drm:dp_audio_hw_params] Header Byte 2: value = 0x67010000, parity_byte = 0x0
[drm:dp_audio_hw_params] Header Byte 3: value = 0x67010000, parity_byte = 0x67
[drm:dp_audio_hw_params] Header Byte 1: value = 0x67010000, parity_byte = 0x67
[drm:dp_audio_hw_params] Header Byte 2: value = 0x33443517, parity_byte = 0x35
[drm:dp_audio_hw_params] Header Byte 3: value = 0x33443517, parity_byte = 0x33
[drm:dp_audio_hw_params] Header Byte 1: value = 0x84840000, parity_byte = 0x84
[drm:dp_audio_hw_params] Header Byte 2: value = 0x3344d71b, parity_byte = 0xd7
[drm:dp_audio_hw_params] Header Byte 3: value = 0x44, parity_byte = 0x33
[drm:dp_audio_hw_params] Header Byte 1: value = 0xd8050000, parity_byte = 0xd8
[drm:dp_audio_hw_params] Header Byte 2: value = 0x4b0f, parity_byte = 0x4b
[drm:dp_audio_hw_params] Header Byte 3: value = 0x4b0f, parity_byte = 0x0
[drm:dp_audio_hw_params] Header Byte 1: value = 0x71060000, parity_byte = 0x71
[drm:dp_audio_hw_params] Header Byte 2: value = 0x4b0f, parity_byte = 0x4b
[drm:dp_catalog_audio_config_acr] select: 0x3, acr_ctrl: 0x80004130
[drm:dp_catalog_audio_sfe_level] mainlink_level = 0xa08, safe_to_exit_level = 0x8
[drm:dp_catalog_audio_enable] dp_audio_cfg = 0xc1
qcom-apm gprsvc:service:2:1: Error (1) Processing 0x01001006 cmd
qcom-apm gprsvc:service:2:1: DSP returned error[1001006] 1
qcom-apm gprsvc:service:2:1: Error (1) Processing 0x01001006 cmd
qcom-apm gprsvc:service:2:1: DSP returned error[1001006] 1
qcom-apm gprsvc:service:2:1: Error (1) Processing 0x01001001 cmd
qcom-apm gprsvc:service:2:1: DSP returned error[1001001] 1
q6apm-lpass-dais 30000000.remoteproc:glink-edge:gpr:service@1:bedais: Failed to prepare Graph -22
q6apm-lpass-dais 30000000.remoteproc:glink-edge:gpr:service@1:bedais: ASoC: error at snd_soc_pcm_dai_prepare on DISPLAY_PORT_RX_0: -22
[drm:dp_catalog_audio_enable] dp_audio_cfg = 0xc0


--srini



0x01001006 cmd
[ 1552.314463] qcom-apm gprsvc:service:2:1: DSP returned error[1001006] 1
[ 1552.315496] qcom-apm gprsvc:service:2:1: Error (1) Processing 0x01001006 cmd
[ 1552.315506] qcom-apm gprsvc:service:2:1: DSP returned error[1001006] 1
[ 1552.316033] qcom-apm gprsvc:service:2:1: Error (1) Processing 0x01001001 cmd
[ 1552.316042] qcom-apm gprsvc:service:2:1: DSP returned error[1001001] 1
[ 1552.316045] q6apm-lpass-dais 30000000.remoteproc:glink-edge:gpr:service@1:bedais: Failed to prepare Graph -22
[ 1552.316047] q6apm-lpass-dais 30000000.remoteproc:glink-edge:gpr:service@1:bedais: ASoC: error at snd_soc_pcm_dai_prepare on DISPLAY_PORT_RX_0: -22

--
Thanks,
Xilin Wu