Repository navigation
tgl: use additional CHANNEL define in rt711 + rts1308 tplg - #2506
Conversation
|
@lgirdwood Indeed, someone installed another version sof-logger to the DUT and we used wrong one. |
|
This doesn't seem very consistent, see e.g. cml_rt700.m4: Edit: it's the same on ICL RVP., tgl with RT1308 w/ I2S, etc. I'd rather get an agreement on what we do with the dmic16k input and apply a consistent settting. |
|
@plbossart do you know if the use case for 4 channel (requirement ?), or is demand being artificially created by validation testing ? |
I have no idea @lgirdwood. usually 16khz data is mono or stereo, if we have to provide the 4channels it would mean 4ch pre-processing is applied on the host? @singalsu what do you think? |
|
I don't know what's the requirement. Sure 4ch gives better test coverage for platform but if the target device is with two microphones four is unnecessary. And if there are devices with four microphones using stereo topology would be wrong. Is the microphones count in the BIOS so the machine driver could get the correct 2ch or 4ch topology? Unrelated to this patch it would be better to use topologies with additional IIR high-pass for DMIC paths, not the volume capture pipeline. It's because of long time not fixed shortcoming in the HW DC blocker filter. The HW can cancel only a low amount of DC (individual cheap type microphones with higher DC can exceed the capability) and the settling time is very slow due to another HW issue. Also please setup DMIC into 32 bit mode, not 16 bit. When there's IIR and/or volume control in the pipeline the end user quality is much better than with 16 bit DMIC FIFO. There's e.g. 40 Hz high-pass for 48 kHz and 16 kHz pipeline with 0 dB or 20 dB gain available. (I experimented in PR #2434 passing the filter blob name from topology top level via pipeline macro. If people like the idea I could make a generic PR.) Also why is there no volume control in 16 kHz capture pipe? |
@sathya-nujella @naveen-manohar do you guys know if the TGL firmware contains any NHLT information? That's the only thing we can use to automatically detect the number of microphones. |
@singalsu you are the man on all things DMIC. Feel free to change things as needed, be it filters or volume controls. We'll just merge blindly :-) |
|
@singalsu please also capture these items as feature requests. |
Sorry for late.. |
I don't know in certain why they are changing here, but what to add some discussion what I am aware.. there was an ask to support stereo WoV/hotword from customers. If both DMIC's are on PDM_0, then dmic16 with STEREO_PDM0 configuration in tplg will work. If both DMIC's are on PDM_1, then dmic16 with STEREO_PDM1 configuration will work. |
|
@lgirdwood I've created two related issues and I can create also one for mandatory FW DCblock or IIR for DMIC capture. It's a significant effort task to fix all topologies (the testing effort) so better to have an issue created. |
|
@sathya-nujella Did they have a reason to connect one microphone to PDM0 and other to PDM1 or was it just some not well thought decision? We have the channel selector component and a minor enhance into it would make it work with more than 2ch. The coming beamformer component also will have capability to select any 1-X channels from X channel stream for processing, mix output to any Y channels and ignore input channels and duplicate outputs if configured so. |
Some ODM's want to put 2-DMIC's: one near Camera on top of display panel and the other one at bottom of display panel.. at that time: they will pick one on DMIC_CLK1 and the other one on DMIC_CLK2 so that easy to wire it. But now, after we told not possible on stereo WOV if they do like that, they fixed it on H/W side.
Good to know. Any pointers to read through for this and for subscribe to. |
|
@bkokoszx the long term fix is the multi DAI config, but for short term could we have a channel argument passed into the topology generation that can build in either 2 chan or 4 chan DMIC support depending on the end user requirement. |
That's be fine, this is what we do for HDaudio - we have no dmic, 2 dmics and 4 dmic topology files, and select one dynamically. The dynamic part is TBD but if we have the files it's a kernel issue we can deal with later. |
You can go with solution like this: sof/tools/topology/CMakeLists.txt Line 35 in b4e8b1e |
Yes @jajanusz , got it. Thanks for reference. |
This commit adds CHANNELS define in sof-tgl-rt711-i2s-rt1308.m4 topology in order to properly set pipeline pcm channels and dmic configuration (STEREO_PDM0 or FOUR_CH_PDM0_PDM1 mode). Signed-off-by: Bartosz Kokoszko <bartoszx.kokoszko@linux.intel.com>
ed8eff1 to
0ce1387
Compare
|
@lgirdwood @jajanusz |
|
@bkokoszx will do, can you remind me when the test passes. |
|
@lgirdwood |
|
This caused the following regression, discuss in PR #2954 |
This commit adds CHANNELS define in sof-tgl-rt711-i2s-rt1308.m4
topology in order to properly set pipeline pcm channels and dmic
configuration (STEREO_PDM0 or FOUR_CH_PDM0_PDM1 mode).
Fixes #2445.
Signed-off-by: Bartosz Kokoszko bartoszx.kokoszko@linux.intel.com