From: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
To: Srinivas Kandagatla <srinivas.kandagatla@oss.qualcomm.com>,
Jorijn van der Graaf <jorijnvdgraaf@catcrafts.net>,
Mark Brown <broonie@kernel.org>
Cc: Srinivas Kandagatla <srini@kernel.org>,
Liam Girdwood <lgirdwood@gmail.com>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Luca Weiss <luca.weiss@fairphone.com>,
Conor Dooley <conor+dt@kernel.org>,
Jaroslav Kysela <perex@perex.cz>, Takashi Iwai <tiwai@suse.com>,
Mohammad Rafi Shaik <mohammad.rafi.shaik@oss.qualcomm.com>,
linux-sound@vger.kernel.org, devicetree@vger.kernel.org,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 3/3] ASoC: codecs: wcd9378: add TX/capture codec driver
Date: Mon, 13 Jul 2026 10:16:31 +0200 [thread overview]
Message-ID: <439a96fe-9fe1-4052-8e35-f442d7f857ad@linux.dev> (raw)
In-Reply-To: <f484f295-f454-4a19-bd3a-cd0db5d5f970@oss.qualcomm.com>
On 7/13/26 09:28, Srinivas Kandagatla wrote:
>
> On 7/7/26 12:42 PM, Pierre-Louis Bossart wrote:
>>> + *
>>> + * Qualcomm WCD9378 audio codec driver.
>>> + *
>>> + * The WCD9378 pairs a WCD937x-compatible analog core with SDCA-style
>> SDCA-style or SDCA-compliant?
>
> This codec is SDCA compliant and used on X2 Elite Windows laptops.
>
> This Codec can be configured in two modes, Mobile and Compute, and this
> configuration is fused out.
How would you the drivers know which configuration is used? read from platform firmware?
> The codec IP is the same in both modes; what changes is how the
> host-side SoundWire master setup.
>
> The codec itself has two modes of working.
> 1. mobile mode
> in this mode the codec is enumerated as two slaves(tx and rx) on two
> different soundwire masters (tx and rx), like any other wcd codecs.
>
> 2. compute mode
> In this mode, where the codec is enumerated as single slave on primary
> soundwire master. Two Soundwire controllers(primary and dependent i.e tx
> and rx) are aggregated and they act as one logical SoundWire bus with
> four data lanes. The primary alone runs the SCP control channel,
> enumerates the slave, drives the bus clock, the secondary follows. The
> secondary drives some of the data lanes. There is a hardware sync
> between these two. This is a new configuration on Qualcomm Soundwire
> controllers called multi-master.
Very useful explanation, thanks.
In this configuration, I guess each lane is really dedicated to specific traffic?
In theory the LaneCtrl port register allows a stream to be dynamically moved to a different lane, but I am not sure how this would work in such a 'multi-master' implementation. Along the same lines, I'd guess the non-zero data lanes remain enabled while the clock toggles, even if there's no traffic?
Management and optimization of multi-lane systems isn't straightforward, I've heard two theories:
- one where it's better to only enable multi-lane when the bandwidth on lane0 is exceeded.
- and a second where it's better to spread traffic on separate lanes and lower the clock.
It probably depends on a number of factors, and in the end on how codecs are wired to the different lanes...
> From Codec pov, its exactly same IP, I have now SDCA drivers working for
> both playback and capture, so Am hoping that we could use the same SDCA
> driver for both of these modes. I still have to give it a try on a
> mobile platform to verify this.
>
> Am hoping to send a version of this driver sometime this week.
Sounds good.
next prev parent reply other threads:[~2026-07-13 8:49 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-06 19:22 [PATCH 0/3] ASoC: codecs: add the Qualcomm WCD9378 audio codec Jorijn van der Graaf
2026-07-06 19:22 ` [PATCH 1/3] ASoC: dt-bindings: qcom,wcd93xx-common: don't require micbias4 Jorijn van der Graaf
2026-07-08 10:43 ` Krzysztof Kozlowski
2026-07-06 19:22 ` [PATCH 2/3] ASoC: dt-bindings: add the Qualcomm WCD9378 audio codec Jorijn van der Graaf
2026-07-06 21:17 ` Srinivas Kandagatla
2026-07-06 22:22 ` Jorijn van der Graaf
2026-07-06 19:22 ` [PATCH 3/3] ASoC: codecs: wcd9378: add TX/capture codec driver Jorijn van der Graaf
2026-07-06 19:38 ` sashiko-bot
2026-07-06 20:35 ` Jorijn van der Graaf
2026-07-06 21:41 ` Srinivas Kandagatla
2026-07-06 22:22 ` Jorijn van der Graaf
2026-07-07 11:42 ` Pierre-Louis Bossart
2026-07-07 15:13 ` Jorijn van der Graaf
2026-07-08 9:11 ` Pierre-Louis Bossart
2026-07-13 7:28 ` Srinivas Kandagatla
2026-07-13 8:16 ` Pierre-Louis Bossart [this message]
2026-07-13 9:02 ` Srinivas Kandagatla
2026-07-10 12:20 ` Julian Braha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=439a96fe-9fe1-4052-8e35-f442d7f857ad@linux.dev \
--to=pierre-louis.bossart@linux.dev \
--cc=broonie@kernel.org \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=jorijnvdgraaf@catcrafts.net \
--cc=krzk+dt@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=luca.weiss@fairphone.com \
--cc=mohammad.rafi.shaik@oss.qualcomm.com \
--cc=perex@perex.cz \
--cc=robh@kernel.org \
--cc=srini@kernel.org \
--cc=srinivas.kandagatla@oss.qualcomm.com \
--cc=tiwai@suse.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox