You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[TGL][BUG][SDW]" Unable to install hw params:" display when captured via arecord0,4(dmic). #2445
According to the bi-sect result this is a FW issue, because TGL-U RVP's FW can't be built manually.
So I only can confirm issue may be generated by the commit from b0ad957 to 53d35e4.
@sinahuang@ClarexZhou I cant see any issue in the FW log. Can you run again and extra the FW trace for the failed operation. I would expect to see an error message in trace. Also please attache error trace log.
@bkokoszx did you enable SoundWire with the BIOS menu? it looks like the kernel does not identify anything in the BIOS - if you can add the full dmesg log it'd help
@plbossart could you explain us one question. Even if the platform support SDW or not, I have disabled support SDW in kernel config and disable SDW in BIOS. Why kernel still want to check SDW machine driver? It blocks further loading.
We'd like to disable SDW to omit issue with SDW machine driver and focus on DMIC and this bug.
Is it possible?
You didn't read carefully our problem with SDW/HDA on TGL.
I ask you:
Why during loading linux, kernel still want to check SDW machine driver, even if I disable SDW support in the konfig. The same for HDA...
That's why I change default kconfig.
Because we want to debug DMIC issue ftom topic. -> without problems with SDW and HDA.
There is still problem:
@emilchudzik as a sanity check, can you delete your current SOF modules /lib/modules/version/kernel/sound/soc* and re-install. Sometimes old modules with previous kconfig options can persist in the modules dir and create issues. If this does not cure the issue can you raise this as a bug on the kernel, as it seems the Kconfig options from HDA/SDW are being ignored.
@emilchudzik I stand by my comment that if SoundWire is not enabled, you should not see any messages related to SoundWire.
Look at hda.c
#ifIS_ENABLED(CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE)
/* Check if all Slaves defined on the link can be found */staticboollink_slaves_found(structsnd_sof_dev*sdev,
conststructsnd_soc_acpi_link_adr*link,
structsdw_intel_ctx*sdw)
{
...
}
staticinthda_sdw_machine_select(structsnd_sof_dev*sdev)
{
...
} else {
dev_info(sdev->dev,
"No SoundWire machine driver found\n");
}
}
return0;
}
#elsestaticinthda_sdw_machine_select(structsnd_sof_dev*sdev)
{
return0;
}
#endif
If SoundWire was truly not supported in the kernel, you would land on the second fallback.
CONFIG_SND_SOC_SOF_HDA_COMMON=m
# CONFIG_SND_SOC_SOF_HDA_LINK is not set
# CONFIG_SND_SOC_SOF_HDA_PROBES is not set
# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
# CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK is not set
CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m
This is what I found in linux repo:
As you see there is mismatch in naming, because in config there is added _LINK,
BDW this condition is always entered in first fallback
#if IS_ENABLED(CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE)
even if I disable or enable SDW support in: make menuconfig.
So I don't understand why :)
Doesn't matter...
As Clare wrote this bug reproduce with SDW enabled, so we haven't such setup working...
@bkokoszx this should be fixed in the multi DAI config (when its merged). I would keep it 4 chans on the DMIC, userspace alsa-plugins) can always convert to stereo if needed.
CONFIG_SND_SOC_SOF_HDA_COMMON=m
# CONFIG_SND_SOC_SOF_HDA_LINK is not set
# CONFIG_SND_SOC_SOF_HDA_PROBES is not set
# CONFIG_SND_SOC_SOF_HDA_ALWAYS_ENABLE_DMI_L1 is not set
CONFIG_SND_SOC_SOF_HDA_LINK_BASELINE=m
# CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK is not set
CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE=m
This is what I found in linux repo:
As you see there is mismatch in naming, because in config there is added _LINK,
No, it's by design.
All platforms capable of enabling SoundWire select SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
there in menuconfig you have a user visible switch
config SND_SOC_SOF_INTEL_SOUNDWIRE_LINK
bool "SOF support fo
and that switch controls whether or not the code enables soundwire.
config SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
tristate
select SND_SOC_SOF_INTEL_SOUNDWIRE if SND_SOC_SOF_INTEL_SOUNDWIRE_LINK
help
This option is not user-selectable but automagically handled by
'select' statements at a higher level
So the code is correct to check for SND_SOC_SOF_INTEL_SOUNDWIRE
BDW this condition is always entered in first fallback
#if IS_ENABLED(CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE)
even if I disable or enable SDW support in: make menuconfig.
So I don't understand why :)
You probably have an error somewhere, the rules in Kconfig don't back your conclusions.
Also always look for the generated .config. not your initial one.
@sinahuang@ClarexZhou
I have to update PR #2506. Can you check whether it can be reproduce with updated PR.
Above PR generates to separate topology files: sof-tgl-rt711-i2s-rt1308-2ch.tplg and sof-tgl-rt711-i2s-rt1308-4ch.tplg.
If you want to run arecord -c4, you should use sof-tgl-rt711-i2s-rt1308-4ch.tplg.
If you want to run arecord -c2, you should use sof-tgl-rt711-i2s-rt1308-2ch.tplg.
Issue can't be reproduced with PR #2506 and PR generates topology files.
if run arecord -c4 with sof-tgl-rt711-i2s-rt1308-4ch.tplg, arecord can work normally.
if run arecord -c2 with sof-tgl-rt711-i2s-rt1308-2ch.tplg, arecord can work normally.
Activity
sinahuang commentedon Feb 26, 2020
According to the bi-sect result this is a FW issue, because TGL-U RVP's FW can't be built manually.
So I only can confirm issue may be generated by the commit from b0ad957 to 53d35e4.
sinahuang commentedon Feb 26, 2020
split thesofproject/linux#1816
lgirdwood commentedon Feb 27, 2020
@sinahuang @ClarexZhou I cant see any issue in the FW log. Can you run again and extra the FW trace for the failed operation. I would expect to see an error message in trace. Also please attache error trace log.
sinahuang commentedon Feb 27, 2020
FW bisect result:
Regression caused by FW commit:de73e60
@bkokoszx please check it.
Found no error trace in FW trace.
dmesg27.log
sof_trace27.log
lgirdwood commentedon Feb 27, 2020
@bkokoszx fyi - bisected to de73e60
bkokoszx commentedon Mar 2, 2020
@sinahuang @lgirdwood

With @emilchudzik we have tried to set up TGL platform (we have been using https://github.com/thesofproject/kconfig/blob/master/kconfig-sof-default.sh), but we have some error in kernel.
Do you have any suspicion what might be a root cause?
@sinahuang
Maybe could you provide kernel binary?
plbossart commentedon Mar 2, 2020
@bkokoszx did you enable SoundWire with the BIOS menu? it looks like the kernel does not identify anything in the BIOS - if you can add the full dmesg log it'd help
sinahuang commentedon Mar 3, 2020
Issue also can be reproduced on TGL-Y with codec ALC711 and RT1308 in SDW mode.
Attached the kernel binary :http://sof-ci-storage.sh.intel.com/daily/20200303/linux-65f9d39d-1/linux-image-5.6.0-rc3-daily-default-20200303_5.6.0-rc3-topic-sof-dev-65f9d39d-1_amd64.deb
emilchudzik commentedon Mar 3, 2020
@plbossart We have enabled SDW and DMIC in BIOS.
Kernel binary:
http://sof-ci-storage.sh.intel.com/daily/20200302/linux-30887e1f-2/linux-image-5.6.0-rc3-daily-default-20200302_5.6.0-rc3-topic-sof-dev-30887e1f-2_amd64.deb
Full dmesg below:
dmesg.txt
slawblauciak commentedon Mar 3, 2020
Just to make sure, #2430 has been merged recently, is this still reproducible?
sinahuang commentedon Mar 3, 2020
Yes,issue still can be reproduced on the latest FW.
1 remaining item
emilchudzik commentedon Mar 3, 2020
@plbossart could you explain us one question. Even if the platform support SDW or not, I have disabled support SDW in kernel config and disable SDW in BIOS. Why kernel still want to check SDW machine driver? It blocks further loading.
We'd like to disable SDW to omit issue with SDW machine driver and focus on DMIC and this bug.
Is it possible?
Kconfig that we tried today:
https://github.com/thesofproject/kconfig/blob/master/kconfig-sof-default.sh
without: hdaudio-codecs-defconfig and soundwire-defconfig
On our windows python tests SDW works.
plbossart commentedon Mar 3, 2020
well then it's not the default...
if there is no SoundWire Kconfig we fall back to HDaudio.
You must do something wrong, sorry.
emilchudzik commentedon Mar 4, 2020
You didn't read carefully our problem with SDW/HDA on TGL.
I ask you:
Why during loading linux, kernel still want to check SDW machine driver, even if I disable SDW support in the konfig. The same for HDA...
That's why I change default kconfig.

Because we want to debug DMIC issue ftom topic. -> without problems with SDW and HDA.
There is still problem:
lgirdwood commentedon Mar 4, 2020
@emilchudzik as a sanity check, can you delete your current SOF modules
/lib/modules/version/kernel/sound/soc*and re-install. Sometimes old modules with previous kconfig options can persist in the modules dir and create issues. If this does not cure the issue can you raise this as a bug on the kernel, as it seems the Kconfig options from HDA/SDW are being ignored.ClarexZhou commentedon Mar 4, 2020
This issue is only reproduced on TGL with codec ALC711 in SDW mode. DMIC capture works ok on TGL with codec ALC711 in HDA mode.
plbossart commentedon Mar 4, 2020
@emilchudzik I stand by my comment that if SoundWire is not enabled, you should not see any messages related to SoundWire.
Look at hda.c
If SoundWire was truly not supported in the kernel, you would land on the second fallback.
emilchudzik commentedon Mar 5, 2020
This is config part when I disable HDA and SDW:
This is what I found in linux repo:

As you see there is mismatch in naming, because in config there is added _LINK,
BDW this condition is always entered in first fallback
#if IS_ENABLED(CONFIG_SND_SOC_SOF_INTEL_SOUNDWIRE)
even if I disable or enable SDW support in: make menuconfig.
So I don't understand why :)
Doesn't matter...
As Clare wrote this bug reproduce with SDW enabled, so we haven't such setup working...
bkokoszx commentedon Mar 6, 2020
@lgirdwood @sinahuang
Going back to the main thread, thanks for @ClarexZhou for sharing remote TGL.
In topology file
sof-tgl-rt711-i2s-rt1308.m4we havedmic16kconfigured in stereo mode:, so is it all right that we want here to record 4 channels?
arecord -Dhw:0,4 -r16000 -c4 -fs16_le 00.wav -vv -iIf we want to record 2 channels we should make little change in topology file:
and invoke
arecord -Dhw:0,4 -r16000 -c2 -fs16_le 00.wav -vv -i(arecordwith-c2flag).On the other hand, if we want to record 4 channels here, we should make following topology change:
DAI_CONFIG(DMIC, 1, 4, dmic16k, DMIC_CONFIG(1, 500000, 4800000, 40, 60, 16000, DMIC_WORD_LENGTH(s16le), 400, DMIC, 1, - PDM_CONFIG(DMIC, 1, STEREO_PDM0))) + PDM_CONFIG(DMIC, 1, FOUR_CH_PDM0_PDM1))) ifelse(HDMI, `1', `I can make PR for this, but I do not know whether we want record 2 or 4 channels?
lgirdwood commentedon Mar 6, 2020
@bkokoszx this should be fixed in the multi DAI config (when its merged). I would keep it 4 chans on the DMIC, userspace alsa-plugins) can always convert to stereo if needed.
plbossart commentedon Mar 6, 2020
No, it's by design.
All platforms capable of enabling SoundWire select SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
there in menuconfig you have a user visible switch
config SND_SOC_SOF_INTEL_SOUNDWIRE_LINK
bool "SOF support fo
and that switch controls whether or not the code enables soundwire.
config SND_SOC_SOF_INTEL_SOUNDWIRE_LINK_BASELINE
tristate
select SND_SOC_SOF_INTEL_SOUNDWIRE if SND_SOC_SOF_INTEL_SOUNDWIRE_LINK
help
This option is not user-selectable but automagically handled by
'select' statements at a higher level
So the code is correct to check for SND_SOC_SOF_INTEL_SOUNDWIRE
You probably have an error somewhere, the rules in Kconfig don't back your conclusions.
Also always look for the generated .config. not your initial one.
bkokoszx commentedon Mar 8, 2020
@sinahuang
Can you check whether PR#2506 fixes this issue?
sinahuang commentedon Mar 9, 2020
Check this issue with PR#2506 on TGL-U RVP, issue can't be reproduced. PR#2506 seems can fix this issue.
bkokoszx commentedon Apr 8, 2020
@sinahuang @ClarexZhou
I have to update PR #2506. Can you check whether it can be reproduce with updated PR.
Above PR generates to separate topology files:
sof-tgl-rt711-i2s-rt1308-2ch.tplgandsof-tgl-rt711-i2s-rt1308-4ch.tplg.If you want to run
arecord -c4, you should usesof-tgl-rt711-i2s-rt1308-4ch.tplg.If you want to run
arecord -c2, you should usesof-tgl-rt711-i2s-rt1308-2ch.tplg.sinahuang commentedon Apr 8, 2020
Issue can't be reproduced with PR #2506 and PR generates topology files.
if run arecord -c4 with sof-tgl-rt711-i2s-rt1308-4ch.tplg, arecord can work normally.
if run arecord -c2 with sof-tgl-rt711-i2s-rt1308-2ch.tplg, arecord can work normally.