Skip to content

[RFC] ASoC: SOF: use 32bit valid sample size for I2S gateway - #4016

Closed
RanderWang wants to merge 1 commit into
thesofproject:topic/sof-devfrom
RanderWang:ipc4_ssp
Closed

[RFC] ASoC: SOF: use 32bit valid sample size for I2S gateway#4016
RanderWang wants to merge 1 commit into
thesofproject:topic/sof-devfrom
RanderWang:ipc4_ssp

Conversation

@RanderWang

Copy link
Copy Markdown

FW always generate 32bit valid sample size to dma so align it with driver.

Fix: thesofproject/sof#6595

FW always generate 32bit valid sample size to dma so
align it with driver.
Signed-off-by: Rander Wang <rander.wang@intel.com>
@RanderWang

Copy link
Copy Markdown
Author

@juimonen please help to review it. Thanks!

copier_data = &ipc4_copier->data;
available_fmt = &ipc4_copier->available_fmt;
if (dir == SNDRV_PCM_STREAM_CAPTURE) {
if (dir == SNDRV_PCM_STREAM_CAPTURE || ipc4_copier->dai_type == SOF_DAI_INTEL_SSP) {

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Commit message: can we use the same term we are using for the components?
ASoC: SOF: ipc4-topology: Use 32bit sample size for copier on Intel SSP

s/FW/The firmware

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You should update the comment down at line 1259 as well.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RanderWang the change looks good but do you have an issue that this PR fixes?

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and BTW can this be fixed in the nocodec tplg instead?

@ranj063ranj063Nov 16, 2022

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@RanderWang the change looks good but do you have an issue that this PR fixes?

sorry missed the issue in the description

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ranj063 yong changed nocodec tplg but made no effect thesofproject/sof#6595 (comment).

copier_data = &ipc4_copier->data;
available_fmt = &ipc4_copier->available_fmt;
if (dir == SNDRV_PCM_STREAM_CAPTURE) {
if (dir == SNDRV_PCM_STREAM_CAPTURE || ipc4_copier->dai_type == SOF_DAI_INTEL_SSP) {

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am not getting the explanations in the commit message @RanderWang
Is this really the case that ONLY the SSP gateway assumes 32-bit valid data on playback?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And all of @ujfalusi 's comments are valid.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@plbossart It is true for closed source FW. It depends on ssp blob in case of SOF, so I ask @jsarha for help

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Humm, that doesn't sound good at all. This smells of an undocumented dependency between firmware implementation and NHLT blobs. Meh.

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, different gateway has different requirement and sof should be compatible with closed source fw.

@RanderWangRanderWang changed the title ASoC: SOF: use 32bit valid sample size for I2S gateway[RFC] ASoC: SOF: use 32bit valid sample size for I2S gatewayNov 17, 2022
@RanderWang

Copy link
Copy Markdown
Author

Let's do it first in topology. I found something incorrect in yong's test topology

@plbossart

Copy link
Copy Markdown
Member

@RanderWang do we still need this PR or is this no longer needed?

@RanderWang

Copy link
Copy Markdown
Author

NO need now. Close it

oder-chiou pushed a commit to oder-chiou/linux-soundwire that referenced this pull request May 5, 2026
This commit adds python script to parse CoreSight tracing event and
print out source line and disassembly, it generates readable program
execution flow for easier humans inspecting.
The script receives CoreSight tracing packet with below format:
+------------+------------+------------+
packet(n): | addr | ip | cpu |
+------------+------------+------------+
packet(n+1): | addr | ip | cpu |
+------------+------------+------------+
packet::addr presents the start address of the coming branch sample, and
packet::ip is the last address of the branch smple. Therefore, a code
section between branches starts from packet(n)::addr and it stops at
packet(n+1)::ip. As results we combines the two continuous packets to
generate the address range for instructions:
[ sample(n)::addr .. sample(n+1)::ip ]
The script supports both objdump or llvm-objdump for disassembly with
specifying option '-d'. If doesn't specify option '-d', the script
simply outputs source lines and symbols.
Below shows usages with llvm-objdump or objdump to output disassembly.
# perf script -s scripts/python/arm-cs-trace-disasm.py -- -d llvm-objdump-11 -k ./vmlinux
ARM CoreSight Trace Data Assembler Dump
ffff800008eb3198 <etm4_enable_hw>:
ffff800008eb3310: c0 38 00 35 cbnz	w0, 0xffff800008eb3a28 <etm4_enable_hw+0x890>
ffff800008eb3314: 9f 3f 03 d5 dsb	sy
ffff800008eb3318: df 3f 03 d5 isb
ffff800008eb331c: f5 5b 42 a9 ldp	x21, x22, [sp, thesofproject#32]
ffff800008eb3320: fb 73 45 a9 ldp	x27, x28, [sp, thesofproject#80]
ffff800008eb3324: e0 82 40 39 ldrb	w0, [x23, thesofproject#32]
ffff800008eb3328: 60 00 00 34 cbz	w0, 0xffff800008eb3334 <etm4_enable_hw+0x19c>
ffff800008eb332c: e0 03 19 aa mov	x0, x25
ffff800008eb3330: 8c fe ff 97 bl	0xffff800008eb2d60 <etm4_cs_lock.isra.0.part.0>
main 6728/6728 [0004] 0.000000000 etm4_enable_hw+0x198 [kernel.kallsyms]
ffff800008eb2d60 <etm4_cs_lock.isra.0.part.0>:
ffff800008eb2d60: 1f 20 03 d5 nop
ffff800008eb2d64: 1f 20 03 d5 nop
ffff800008eb2d68: 3f 23 03 d5 hint	thesofproject#25
ffff800008eb2d6c: 00 00 40 f9 ldr	x0, [x0]
ffff800008eb2d70: 9f 3f 03 d5 dsb	sy
ffff800008eb2d74: 00 c0 3e 91 add	x0, x0, thesofproject#4016
ffff800008eb2d78: 1f 00 00 b9 str	wzr, [x0]
ffff800008eb2d7c: bf 23 03 d5 hint	thesofproject#29
ffff800008eb2d80: c0 03 5f d6 ret
main 6728/6728 [0004] 0.000000000 etm4_cs_lock.isra.0.part.0+0x20
# perf script -s scripts/python/arm-cs-trace-disasm.py -- -d objdump -k ./vmlinux
ARM CoreSight Trace Data Assembler Dump
ffff800008eb3310 <etm4_enable_hw+0x178>:
ffff800008eb3310:	350038c0 cbnz	w0, ffff800008eb3a28 <etm4_enable_hw+0x890>
ffff800008eb3314:	d5033f9f dsb	sy
ffff800008eb3318:	d5033fdf isb
ffff800008eb331c:	a9425bf5 ldp	x21, x22, [sp, thesofproject#32]
ffff800008eb3320:	a94573fb ldp	x27, x28, [sp, thesofproject#80]
ffff800008eb3324:	394082e0 ldrb	w0, [x23, thesofproject#32]
ffff800008eb3328:	34000060 cbz	w0, ffff800008eb3334 <etm4_enable_hw+0x19c>
ffff800008eb332c:	aa1903e0 mov	x0, x25
ffff800008eb3330:	97fffe8c bl	ffff800008eb2d60 <etm4_cs_lock.isra.0.part.0>
main 6728/6728 [0004] 0.000000000 etm4_enable_hw+0x198 [kernel.kallsyms]
ffff800008eb2d60 <etm4_cs_lock.isra.0.part.0>:
ffff800008eb2d60:	d503201f nop
ffff800008eb2d64:	d503201f nop
ffff800008eb2d68:	d503233f paciasp
ffff800008eb2d6c:	f9400000 ldr	x0, [x0]
ffff800008eb2d70:	d5033f9f dsb	sy
ffff800008eb2d74:	913ec000 add	x0, x0, #0xfb0
ffff800008eb2d78:	b900001f str	wzr, [x0]
ffff800008eb2d7c:	d50323bf autiasp
ffff800008eb2d80:	d65f03c0 ret
main 6728/6728 [0004] 0.000000000 etm4_cs_lock.isra.0.part.0+0x20
Signed-off-by: Leo Yan <leo.yan@linaro.org>
Co-authored-by: Al Grant <al.grant@arm.com>
Co-authored-by: Mathieu Poirier <mathieu.poirier@linaro.org>
Co-authored-by: Tor Jeremiassen <tor@ti.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Eelco Chaudron <echaudro@redhat.com>
Cc: German Gomez <german.gomez@arm.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: James Clark <james.clark@arm.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephen Brennan <stephen.s.brennan@oracle.com>
Cc: Tanmay Jagdale <tanmay@marvell.com>
Cc: coresight@lists.linaro.org
Cc: zengshun . wu <zengshun.wu@outlook.com>
Link: https://lore.kernel.org/r/20220521130446.4163597-3-leo.yan@linaro.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[BUG] no sound coming from speakers when playing 16-bit clips on DeepBuffer PCM dev

4 participants

@RanderWang@plbossart@ranj063@ujfalusi