public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Missing documentation for Audioreach topology files
@ 2024-08-19 20:53 Jens Reidel
  2024-08-19 20:58 ` Krzysztof Kozlowski
  0 siblings, 1 reply; 3+ messages in thread
From: Jens Reidel @ 2024-08-19 20:53 UTC (permalink / raw)
  To: Srinivas Kandagatla
  Cc: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
	Krzysztof Kozlowski, Charles Keepax, Richard Fitzgerald,
	Pierre-Louis Bossart, Linus Walleij, Srinivasa Rao Mandadapu,
	linux-sound, linux-kernel, linux, ~postmarketos/upstreaming

Hi everyone,

I am currently bringing up Xiaomi SM8450/SM8475 mobile phones and have a few 
working well enough to try and get the WCD and audio in general working. All 
is fine, until this:

[   35.366229] qcom-apm gprsvc:service:2:1: Direct firmware load for qcom/
sm8450/Xiaomi 12-tplg.bin failed with error -2
[   35.366244] qcom-apm gprsvc:service:2:1: tplg firmware loading qcom/sm8450/
Xiaomi 12-tplg.bin failed -2
[   35.366250] qcom-apm gprsvc:service:2:1: ASoC: error at 
snd_soc_component_probe on gprsvc:service:2:1: -2

After searching around a bit, I stumbled across this Linaro repository: 
https://git.codelinaro.org/linaro/qcomlt/audioreach-topology
Apparently you're supposed to write the topology in a M4-preprocessed file that 
gets turned into an ALSA UCM topology config and then compiled with alsatplg.
However, there is zero documentation on the preprocessor macros and how you're 
actually supposed to write the topology file. Am I missing something or is 
there no public documentation and tooling for how to use this kernel 
interface?

Best regards,
Jens



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Missing documentation for Audioreach topology files
  2024-08-19 20:53 Missing documentation for Audioreach topology files Jens Reidel
@ 2024-08-19 20:58 ` Krzysztof Kozlowski
  2024-08-19 21:13   ` Jens Reidel
  0 siblings, 1 reply; 3+ messages in thread
From: Krzysztof Kozlowski @ 2024-08-19 20:58 UTC (permalink / raw)
  To: Jens Reidel, Srinivas Kandagatla
  Cc: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
	Charles Keepax, Richard Fitzgerald, Pierre-Louis Bossart,
	Linus Walleij, Srinivasa Rao Mandadapu, linux-sound, linux-kernel,
	linux, ~postmarketos/upstreaming

On 19/08/2024 22:53, Jens Reidel wrote:
> Hi everyone,
> 
> I am currently bringing up Xiaomi SM8450/SM8475 mobile phones and have a few 
> working well enough to try and get the WCD and audio in general working. All 
> is fine, until this:
> 
> [   35.366229] qcom-apm gprsvc:service:2:1: Direct firmware load for qcom/
> sm8450/Xiaomi 12-tplg.bin failed with error -2
> [   35.366244] qcom-apm gprsvc:service:2:1: tplg firmware loading qcom/sm8450/
> Xiaomi 12-tplg.bin failed -2
> [   35.366250] qcom-apm gprsvc:service:2:1: ASoC: error at 
> snd_soc_component_probe on gprsvc:service:2:1: -2
> 
> After searching around a bit, I stumbled across this Linaro repository: 
> https://git.codelinaro.org/linaro/qcomlt/audioreach-topology
> Apparently you're supposed to write the topology in a M4-preprocessed file that 
> gets turned into an ALSA UCM topology config and then compiled with alsatplg.
> However, there is zero documentation on the preprocessor macros and how you're 
> actually supposed to write the topology file. Am I missing something or is 
> there no public documentation and tooling for how to use this kernel 
> interface?

Hi Jens,

I am not aware of any documentation related to audioreach topology. I
used existing code as example/starting point and then with learning of
internals and digging I managed to get some grasp, but it was all
without any docs.

If your platform uses reference Qualcomm components, like WSA speakers
on Soundwire bus, then most likely you can re-use HDK8450 topology or
anything newer.

Best regards,
Krzysztof


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Re: Missing documentation for Audioreach topology files
  2024-08-19 20:58 ` Krzysztof Kozlowski
@ 2024-08-19 21:13   ` Jens Reidel
  0 siblings, 0 replies; 3+ messages in thread
From: Jens Reidel @ 2024-08-19 21:13 UTC (permalink / raw)
  To: krzysztof.kozlowski
  Cc: adrian, broonie, ckeepax, lgirdwood, linus.walleij, linux-kernel,
	linux-sound, linux, perex, pierre-louis.bossart, quic_srivasam,
	rf, srinivas.kandagatla, tiwai, ~postmarketos/upstreaming

> On 19/08/2024 22:53, Jens Reidel wrote:
> > Hi everyone,
> > 
> > I am currently bringing up Xiaomi SM8450/SM8475 mobile phones and have a
> > few working well enough to try and get the WCD and audio in general
> > working. All is fine, until this:
> > 
> > [   35.366229] qcom-apm gprsvc:service:2:1: Direct firmware load for qcom/
> > sm8450/Xiaomi 12-tplg.bin failed with error -2
> > [   35.366244] qcom-apm gprsvc:service:2:1: tplg firmware loading
> > qcom/sm8450/ Xiaomi 12-tplg.bin failed -2
> > [   35.366250] qcom-apm gprsvc:service:2:1: ASoC: error at
> > snd_soc_component_probe on gprsvc:service:2:1: -2
> > 
> > After searching around a bit, I stumbled across this Linaro repository:
> > https://git.codelinaro.org/linaro/qcomlt/audioreach-topology
> > Apparently you're supposed to write the topology in a M4-preprocessed file
> > that gets turned into an ALSA UCM topology config and then compiled with
> > alsatplg. However, there is zero documentation on the preprocessor macros
> > and how you're actually supposed to write the topology file. Am I missing
> > something or is there no public documentation and tooling for how to use
> > this kernel interface?
> 
> Hi Jens,
> 
> I am not aware of any documentation related to audioreach topology. I
> used existing code as example/starting point and then with learning of
> internals and digging I managed to get some grasp, but it was all
> without any docs.
> 
> If your platform uses reference Qualcomm components, like WSA speakers
> on Soundwire bus, then most likely you can re-use HDK8450 topology or
> anything newer.
> 
> Best regards,
> Krzysztof

Hi Krzysztof,

Thank you for the quick reply. On all Xiaomi devices of this generation, the 
speaker amplifiers are connected via I2C (they are mostly cs35l41, some cs35l43 
and awinic parts). The audio topology therefore probably differs a fair bit 
from HDK8450.

Best regards,
Jens



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-08-19 21:13 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-08-19 20:53 Missing documentation for Audioreach topology files Jens Reidel
2024-08-19 20:58 ` Krzysztof Kozlowski
2024-08-19 21:13   ` Jens Reidel

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox