-
Notifications
You must be signed in to change notification settings - Fork 302
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] ES8336: firmware complains about missing topology file sof-apl-es8336-ssp5.tplg #6015
Comments
@akssri can you confirm the topology file is missing from |
@lgirdwood can confirm. couldn't find the file in either in the installed package or in sof-bin repo. |
Indeed we've only seen SSP0 or SSP2 used, we've never seen a case where SSP5 was used. It could be a mistake in the NHLT table, we currently use the SSP with the highest index declared in NHLT, maybe this is not correct. @akssri can you dump the ACPI tables and/or look at the NHTL with the latest ACPICA tools? |
acpidump from the same machine (Donki NANOTE NEXT) does this help? |
PFA the acpidump |
That's a tough one. The NHLT indicates support for SSP0 and SSP5, but the SSP5 is referenced multiple times on render. That looks like a bug. Please try with this file, unzip it and copy it to /lib/firmware/intel/sof-tplg If this doesn't work, we may have to manually edit the files and force the use of SSP0. |
Thanks! I tried using the new topology file but got the following error,
With SSP0 copied to SSP5, the device shows up but no sound. |
Ah bummer. I just realized I hard-coded support for SSP0..2 in sound/soc/intel/boards/sof_es8336.c if (mach->mach_params.i2s_link_mask & BIT(2))
ssp = SOF_ES8336_SSP_CODEC(2);
else if (mach->mach_params.i2s_link_mask & BIT(1))
ssp = SOF_ES8336_SSP_CODEC(1);
else if (mach->mach_params.i2s_link_mask & BIT(0))
ssp = SOF_ES8336_SSP_CODEC(0); That was stupid of me but hey I can't test any of this myself.... if you know how to recompile your own kernel, you can fix this by replacing all this code by ssp = SOF_ES8336_SSP_CODEC(5); I'll provide a better solution when I get a bit of time. |
Rather use what I had in the SOF driver /* fls returns 1-based results, SSPs indices are 0-based */
ssp_num = fls(mach->mach_params.i2s_link_mask) - 1; |
For some reason we open-coded the SSP selection and only supported SSP0, 1 and 2. On ApolloLake platforms, the SSP5 can be used as well for the ES8336 hardware link. Remove hard-coded if/else code and align with same code already used in the SOF driver. BugLink: thesofproject/sof#6015 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
For some reason we open-coded the SSP selection and only supported SSP0, 1 and 2. On ApolloLake platforms, the SSP5 can be used as well for the ES8336 hardware link. Remove hard-coded if/else code and align with same code already used in the SOF driver. BugLink: thesofproject/sof#6015 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
@akssri please retest with the hack above or with the patches in PR thesofproject/linux#3776 |
For some reason we open-coded the SSP selection and only supported SSP0, 1 and 2. On ApolloLake platforms, the SSP5 can be used as well for the ES8336 hardware link. Remove hard-coded if/else code and align with same code already used in the SOF driver. BugLink: thesofproject/sof#6015 Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
For some reason we open-coded the SSP selection and only supported SSP0, 1 and 2. On ApolloLake platforms, the SSP5 can be used as well for the ES8336 hardware link. Remove hard-coded if/else code and align with same code already used in the SOF driver. BugLink: thesofproject/sof#6015 Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
For some reason we open-coded the SSP selection and only supported SSP0, 1 and 2. On ApolloLake platforms, the SSP5 can be used as well for the ES8336 hardware link. Remove hard-coded if/else code and align with same code already used in the SOF driver. BugLink: thesofproject/sof#6015 Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20220725194909.145418-8-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
(Apologies for the delay in testing this.) I compiled the kernel using the config from Arch's package
Still no luck.
the module does seem to be getting loaded,
but no sound card,
|
@akssri can you please add this file |
PFA the full dmesg log; please lmk if you need anything else. Thanks! |
@akssri can you check the configuration, there's something very odd here
These two lines are the last step, and there's no card created. Please make sure you don't have any blacklists for sof_es8336 or try to do a manual 'modprobe snd_soc_sof_es8336' Or maybe the log was truncated? |
also use this file, we forgot sof_es8336... |
dmesg log with the new modprobe conf, Checked that there was nothing else in modprobe.d or kernel-arg being passed elsewhere, and that the module was being loaded (this was the case at bootup, but the log was dumped after manually running modprobe).
|
it's likely the same issue reported in thesofproject/linux#3336 (comment) by @ejmarkow Somehow the introduction of HDMI inputs broke everything. Please revert that patch and retry. What a mess. |
Fixed by #6078 See https://github.com/thesofproject/linux/wiki/ES8336-support for recommended setup, and file a new issue under the Linux project if this doesnt' work. |
For some reason we open-coded the SSP selection and only supported SSP0, 1 and 2. On ApolloLake platforms, the SSP5 can be used as well for the ES8336 hardware link. Remove hard-coded if/else code and align with same code already used in the SOF driver. BugLink: thesofproject/sof#6015 Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20220725194909.145418-8-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
For some reason we open-coded the SSP selection and only supported SSP0, 1 and 2. On ApolloLake platforms, the SSP5 can be used as well for the ES8336 hardware link. Remove hard-coded if/else code and align with same code already used in the SOF driver. BugLink: thesofproject/sof#6015 Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20220725194909.145418-8-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
For some reason we open-coded the SSP selection and only supported SSP0, 1 and 2. On ApolloLake platforms, the SSP5 can be used as well for the ES8336 hardware link. Remove hard-coded if/else code and align with same code already used in the SOF driver. BugLink: thesofproject/sof#6015 Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20220725194909.145418-8-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org> (cherry picked from commit 2491366)
For some reason we open-coded the SSP selection and only supported SSP0, 1 and 2. On ApolloLake platforms, the SSP5 can be used as well for the ES8336 hardware link. Remove hard-coded if/else code and align with same code already used in the SOF driver. BugLink: thesofproject/sof#6015 Reviewed-by: Ranjani Sridharan <ranjani.sridharan@linux.intel.com> Reviewed-by: Bard Liao <yung-chuan.liao@linux.intel.com> Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com> Link: https://lore.kernel.org/r/20220725194909.145418-8-pierre-louis.bossart@linux.intel.com Signed-off-by: Mark Brown <broonie@kernel.org>
Describe the bug
Laptop (obscure JP model: Donki Nanote Next UMPC03-SR) tries to load es8336 module but fails due to missing topology file. Searching github for "sof-apl-es8336-ssp5.tplg" yielded no results.
To Reproduce
Start system; check dmesg logs.
Reproduction Rate
Every boot.
Expected behavior
Sound driver to load.
Impact
No audio device shown with ALSA etc.
Environment
Screenshots or console output
lspci output
dmesg output
The text was updated successfully, but these errors were encountered: