Topology: sof-icl-rt711-rt1308-rt715-hdmi: Use demux for platforms with multiple speakers#2603
Conversation
|
@bardliao How about change your title to reflect your change ? "use demux for platforms with multiple speakers" And commit message may disclose how to do in FW for this case. |
We will define PLATFORM in CMakeLists.txt, and define "MONO" in specific platform m4 file. e.g. cml-mono.m4 |
Done |
|
To answer to @juimonen there is an abuse of language. MONO here means single amplifier. That RT1308 is perfectly capable of playing stereo sounds. Not MONO means 2 amps and sometimes 2 speakers and sometimes 4, it's a topology indication. |
There was a problem hiding this comment.
there's already an ifdef on line 61, it'd probably be a good thing to have clearer separation between the cases.
Also we may want to conditionally disable aggregation, as we do e.g. for the kernel.
There was a problem hiding this comment.
@bardliao what I meant was
if MONO
pipelines, etc
else
if aggregation
pipelines, etc
else
pipelines, pcm, etc.
endif
endif
There was a problem hiding this comment.
@plbossart Done. But a little bit different to your example.
…th multiple speakers We only need demux for two speaker dais case. Fixes: 5e8de9f "topology: sof-icl-rt711-rt1308-rt715-hdmi: Merge two pipeline with demux" Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
We will create individual PCM for each speaker when NO_AGGREGATION is defined Signed-off-by: Bard Liao <yung-chuan.liao@linux.intel.com>
| PIPELINE_SOURCE_4, 2, s24le, | ||
| 1000, 0, 0, SCHEDULE_TIME_DOMAIN_TIMER)', | ||
| `ifdef(`MONO', `', | ||
| `DAI_ADD_SCHED(sof/pipe-dai-sched-playback.m4, |
There was a problem hiding this comment.
the mix of ifdef is really hard to follow. And on line 148 it's rather suspicious to have SDW1-playback with index 0x202. That looks like a copy paste mistake to me, no?
There was a problem hiding this comment.
the mix of ifdef is really hard to follow. And on line 148 it's rather suspicious to have SDW1-playback with index 0x202. That looks like a copy paste mistake to me, no?
No, it is intentional. ALH0x202 is the 2nd DAI for SDW1-Playback stream.
From line 54 to 79:
if NOMO (1 rt1308)
Create a normal pipeline 3
else
if NO_AGGREGATION (2 rt1308s but no aggregation)
Create a normal pipeline 3 and normal pipeline 4
else (2 rt1308s and aggregation)
Create a demux pipeline 3 and DAI endpoint 4
From line 139 to 162:
if NO_AGGREGATION (2 rt1308s, but no aggregation)
ALH0x202 DAI is for SDW2-Playback stream
else
if MONO (No ALH0x202 is there is only 1 rt1308)
else (2 rt1308s and aggregation)
ALH0x202 is the 2nd DAI for SDW1-Playback stream and connect pipeline 4 source to the demux
There was a problem hiding this comment.
ok, but then let's stop using SDW1-playback, it's confusing. In some cases it does mean playback on Link1 and other it's just the playback stream1...
We can fix this in a follow-up, along with the rename of MONO which is misleading - should be SINGLE_AMP
|
merging to keep topology and kernel aligned |
We only need demux for two speaker dais case.
Fixes: 5e8de9f "topology: sof-icl-rt711-rt1308-rt715-hdmi: Merge two pipeline with demux"
Signed-off-by: Bard Liao yung-chuan.liao@linux.intel.com
Fixes #2570