Uh oh!
There was an error while loading. Please reload this page.
[RFC] ASoC: SOF: use 32bit valid sample size for I2S gateway - #4016
[RFC] ASoC: SOF: use 32bit valid sample size for I2S gateway#4016RanderWang wants to merge 1 commit into
Conversation
FW always generate 32bit valid sample size to dma so align it with driver. Signed-off-by: Rander Wang <rander.wang@intel.com>
RanderWang
commented
Nov 16, 2022
@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) { |
There was a problem hiding this comment.
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
There was a problem hiding this comment.
You should update the comment down at line 1259 as well.
There was a problem hiding this comment.
@RanderWang the change looks good but do you have an issue that this PR fixes?
There was a problem hiding this comment.
and BTW can this be fixed in the nocodec tplg instead?
There was a problem hiding this comment.
@RanderWang the change looks good but do you have an issue that this PR fixes?
sorry missed the issue in the description
There was a problem hiding this comment.
@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) { |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
@plbossart It is true for closed source FW. It depends on ssp blob in case of SOF, so I ask @jsarha for help
There was a problem hiding this comment.
Humm, that doesn't sound good at all. This smells of an undocumented dependency between firmware implementation and NHLT blobs. Meh.
There was a problem hiding this comment.
yes, different gateway has different requirement and sof should be compatible with closed source fw.
RanderWang
commented
Nov 17, 2022
Let's do it first in topology. I found something incorrect in yong's test topology |
plbossart
commented
Nov 28, 2022
@RanderWang do we still need this PR or is this no longer needed? |
RanderWang
commented
Nov 29, 2022
NO need now. Close it |
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>
FW always generate 32bit valid sample size to dma so align it with driver.
Fix: thesofproject/sof#6595