public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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?


  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