From: Charles Keepax <ckeepax@opensource.cirrus.com>
To: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
Cc: broonie@kernel.org, yung-chuan.liao@linux.intel.com,
vkoul@kernel.org, lgirdwood@gmail.com,
peter.ujfalusi@linux.intel.com, shumingf@realtek.com,
linux-sound@vger.kernel.org, patches@opensource.cirrus.com
Subject: Re: [PATCH 5/7] ASoC: SDCA: Add basic system suspend support
Date: Wed, 10 Dec 2025 14:43:17 +0000 [thread overview]
Message-ID: <aTmHBbS22GyoH+RB@opensource.cirrus.com> (raw)
In-Reply-To: <02bc8d1b-ae25-4398-acc5-e5779c245a3c@linux.dev>
On Tue, Dec 09, 2025 at 12:11:27PM +0000, Pierre-Louis Bossart wrote:
> On 11/25/25 15:21, Charles Keepax wrote:
> > Add basic system suspend support. Disable the IRQs and force runtime
> > suspend, during system suspend, because the device will likely fully
> > power down during suspend.
>
> Power-down during system suspend (seems natural) or power-down
> during pm_runtime suspend (depends on what the host does during
> clock_stop)?
At the moment this is written to support FDL after system
suspend only. Which is fairly typical of most devices I have seen
(Cirrus and non-Cirrus). Generally as runtime suspends happen
so often it is preferred not to download firmware there due to
time constraints.
This is definitely up for debate, my primary issue with allowing
firmware download at the runtime level is that SDCA gives you no
way to tell that the device is ready to rock. The only way I have
been able to divine to do this is to wait for an FDL irq and if
one doesn't come within a reasonable time out move on. However,
that waiting would add a considerable delay to runtime resume
even if no firmware was downloaded, which feels problematic.
I guess my two questions would be:
1) Do we really want to support downloading firmware on runtime
suspend? I am doubtful it is really usable due to latency.
2) If we do, do you have any ideas about how to determine if the
device needs firmware?
> > + if (drv->suspended) {
> > + sdca_irq_enable(drv->function, drv->core->irq_info, true);
> > + sdca_irq_enable(drv->function, drv->core->irq_info, false);
>
> and a comment here wouldn't hurt, not sure about the side/racy
> effects of turning the interrupt on before turning it off?
This is perhaps a little misleading the last parameter here is an
early flag not an enable/disable. I could perhaps replace that
with some defines rather than a bool to keep the calls more
self-documenting.
Thanks,
Charles
next prev parent reply other threads:[~2025-12-10 14:43 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-11-25 15:21 [PATCH 0/7] SDCA jack and system suspend fixups Charles Keepax
2025-11-25 15:21 ` [PATCH 1/7] ASoC: SDCA: Factor out jack handling into new c file Charles Keepax
2025-12-09 12:00 ` Pierre-Louis Bossart
2025-12-10 16:31 ` Charles Keepax
2025-12-20 11:22 ` Pierre-Louis Bossart
2025-11-25 15:21 ` [PATCH 2/7] ASoC: SDCA: Add ability to connect SDCA jacks to ASoC jacks Charles Keepax
2025-11-25 15:21 ` [PATCH 3/7] ASoC: SDCA: Add ASoC jack hookup in class driver Charles Keepax
2025-11-25 15:21 ` [PATCH 4/7] ASoC: SDCA: Add SDCA IRQ enable/disable helpers Charles Keepax
2025-12-09 12:03 ` Pierre-Louis Bossart
2025-11-25 15:21 ` [PATCH 5/7] ASoC: SDCA: Add basic system suspend support Charles Keepax
2025-12-09 12:11 ` Pierre-Louis Bossart
2025-12-10 14:43 ` Charles Keepax [this message]
2025-12-10 16:48 ` Charles Keepax
2025-12-11 10:33 ` Vinod Koul
2025-12-11 11:28 ` Charles Keepax
2025-12-20 11:31 ` Pierre-Louis Bossart
2025-11-25 15:21 ` [PATCH 6/7] ASoC: SDCA: Device boot into the system suspend process Charles Keepax
2025-12-09 12:18 ` Pierre-Louis Bossart
2025-12-11 11:59 ` Charles Keepax
2025-12-20 11:36 ` Pierre-Louis Bossart
2025-11-25 15:21 ` [PATCH 7/7] ASoC: SDCA: Add lock to serialise the Function initialisation Charles Keepax
2025-12-09 12:20 ` Pierre-Louis Bossart
2025-12-10 15:27 ` Charles Keepax
2025-12-11 10:26 ` Richard Fitzgerald
2025-12-20 11:21 ` 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=aTmHBbS22GyoH+RB@opensource.cirrus.com \
--to=ckeepax@opensource.cirrus.com \
--cc=broonie@kernel.org \
--cc=lgirdwood@gmail.com \
--cc=linux-sound@vger.kernel.org \
--cc=patches@opensource.cirrus.com \
--cc=peter.ujfalusi@linux.intel.com \
--cc=pierre-louis.bossart@linux.dev \
--cc=shumingf@realtek.com \
--cc=vkoul@kernel.org \
--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