Devicetree
 help / color / mirror / Atom feed
From: Srinivas Kandagatla <srini@kernel.org>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>,
	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:02:50 +0100	[thread overview]
Message-ID: <4b70d37b-20c6-4216-b2a3-20f525d5ca93@kernel.org> (raw)
In-Reply-To: <439a96fe-9fe1-4052-8e35-f442d7f857ad@linux.dev>



On 7/13/26 9:16 AM, Pierre-Louis Bossart wrote:
> 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?
We can read fuse registers to get this info. this is pretty much fixed
for each SoC, so the device tree description would also have to reflect
that topology.
> 
>> 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?
Exactly, on X2 Elite lane 0 and 1 are for TX traffic and Lane 2 and Lane
3 are for RX 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?
This is pretty much fixed, frame shapping and lane mapping is hardcoded
in device tree.

> 
> 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...

This is case is pretty much fixed due to how the lanes are wiredup
internally.

--srini
> 
>> 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.


  reply	other threads:[~2026-07-13  9:02 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
2026-07-13  9:02         ` Srinivas Kandagatla [this message]
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=4b70d37b-20c6-4216-b2a3-20f525d5ca93@kernel.org \
    --to=srini@kernel.org \
    --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=pierre-louis.bossart@linux.dev \
    --cc=robh@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