From: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
To: Charles Keepax <ckeepax@opensource.cirrus.com>
Cc: Niranjan H Y <niranjan.hy@ti.com>,
linux-sound@vger.kernel.org, linux-kernel@vger.kernel.org,
broonie@kernel.org, lgirdwood@gmail.com, perex@perex.cz,
tiwai@suse.com, cezary.rojewski@intel.com,
peter.ujfalusi@linux.intel.com, yung-chuan.liao@linux.intel.com,
ranjani.sridharan@linux.intel.com, kai.vehmanen@linux.intel.com,
baojun.xu@ti.com, shenghao-ding@ti.com, sandeepk@ti.com,
v-hampiholi@ti.com
Subject: Re: [PATCH v10 1/4] ASoC: SDCA: Add PDE state transition helper
Date: Wed, 22 Apr 2026 19:56:09 +0200 [thread overview]
Message-ID: <5daa3c5c-efeb-48d7-91b3-99e47f54894b@linux.dev> (raw)
In-Reply-To: <aeiGIpYwZz/dBuqQ@opensource.cirrus.com>
On 4/22/26 10:26, Charles Keepax wrote:
> On Tue, Apr 21, 2026 at 06:21:09PM +0200, Pierre-Louis Bossart wrote:
>> On 4/21/26 17:57, Charles Keepax wrote:
>>> On Tue, Apr 21, 2026 at 09:18:01PM +0530, Niranjan H Y wrote:
>>>> Per SDCA specification, after writing REQUESTED_PS, drivers must
>>>> poll ACTUAL_PS until the target power state is reached.
>>>> Implement sdca_asoc_set_pde_state_sync() helper function for
>>>> changing the power state of the PDE widget and wait for the power
>>>> transition to happen or timeout.
>>>>
>>>> Changes include:
>>>> - Add sdca_asoc_set_pde_poll_sync() to handle write
>>>> REQUESTED_PS register and poll ACTUAL_PS register until
>>>> the target state is reached or timed out.
>>>> - Export function via sdca_asoc.h for use by SDCA-compliant drivers
>>>> - Refactor entity_pde_event() in sdca_asoc.c to use the helper
>>>>
>>>> Signed-off-by: Niranjan H Y <niranjan.hy@ti.com>
>>>> ---
>>>> static int entity_parse_pde(struct device *dev,
>>>> @@ -449,8 +492,8 @@ static int entity_parse_pde(struct device *dev,
>>>> }
>>>>
>>>> (*widget)->id = snd_soc_dapm_supply;
>>>> - (*widget)->reg = SDW_SDCA_CTL(function->desc->adr, entity->id, control->sel, 0);
>>>> - (*widget)->mask = GENMASK(control->nbits - 1, 0);
>>>> + (*widget)->reg = SND_SOC_NOPM;
>>>> + (*widget)->mask = 0;
>>>
>>> Hmm... yeah I am really sorry I totally overlooked this. Yeah we
>>> should leave the write outside the helper it is much nicer to
>>> have DAPM do it.
>>
>> Not following that comment, there are quite a few codecs that
>> trap a DAPM event, do a regmap_write then wait with a loop,
>> see e.g. rt722_sdca_pde47_event
>
> If you have a good reason to do the write manually you can
> (typically because it needs sequencing with other writes), but
> generally if the DAPM widget can do the write its better to do it
> that way. Just cleaner.
The existing code I was referring to pre-dates the introduction of sdca_parse_pde()...
It doesn't really need sequencing with other writes, DAPM is used to deal with PRE_PMU and POST_PMD events, it does not deal with register writes in all cases.
> Apologies totally my bad on this I should have realised the
> implications of this change the first time.
>
>> I haven't seen DAPM deal directly with the write?
>> what am I missing?
>
> That is what is happening in the above code setting the
> reg/mask/on_val/off_val, DAPM uses that information to do the
> register write.
Since we have two different ways of doing this PDE management, do we need two helpers, one with the write and one without?
next prev parent reply other threads:[~2026-04-22 17:57 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-04-21 15:48 [PATCH v10 1/4] ASoC: SDCA: Add PDE state transition helper Niranjan H Y
2026-04-21 15:48 ` [PATCH v10 2/4] ASoC: tac5xx2-sdw: add soundwire based codec driver Niranjan H Y
2026-04-21 15:48 ` [PATCH v10 3/4] ASoC: sdw_utils: TI amp utility for tac5xx2 family Niranjan H Y
2026-04-21 15:48 ` [PATCH v10 4/4] ASoC: tac5xx2-sdw: ACPI match for intel mtl platform Niranjan H Y
2026-04-21 15:57 ` [PATCH v10 1/4] ASoC: SDCA: Add PDE state transition helper Charles Keepax
2026-04-21 16:21 ` Pierre-Louis Bossart
2026-04-22 8:26 ` Charles Keepax
2026-04-22 10:39 ` [EXTERNAL] " Holalu Yogendra, Niranjan
2026-04-22 17:56 ` Pierre-Louis Bossart [this message]
2026-04-23 8:52 ` Charles Keepax
2026-04-23 12:47 ` Pierre-Louis Bossart
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=5daa3c5c-efeb-48d7-91b3-99e47f54894b@linux.dev \
--to=pierre-louis.bossart@linux.dev \
--cc=baojun.xu@ti.com \
--cc=broonie@kernel.org \
--cc=cezary.rojewski@intel.com \
--cc=ckeepax@opensource.cirrus.com \
--cc=kai.vehmanen@linux.intel.com \
--cc=lgirdwood@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-sound@vger.kernel.org \
--cc=niranjan.hy@ti.com \
--cc=perex@perex.cz \
--cc=peter.ujfalusi@linux.intel.com \
--cc=ranjani.sridharan@linux.intel.com \
--cc=sandeepk@ti.com \
--cc=shenghao-ding@ti.com \
--cc=tiwai@suse.com \
--cc=v-hampiholi@ti.com \
--cc=yung-chuan.liao@linux.intel.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