From: Charles Keepax <ckeepax@opensource.cirrus.com>
To: "Liao, Bard" <yung-chuan.liao@linux.intel.com>
Cc: broonie@kernel.org, rafael@kernel.org,
pierre-louis.bossart@linux.dev, peter.ujfalusi@linux.intel.com,
shumingf@realtek.com, lgirdwood@gmail.com,
linux-sound@vger.kernel.org, patches@opensource.cirrus.com,
bard.liao@intel.com
Subject: Re: [PATCH 07/15] ASoC: SDCA: Rely less on the ASoC component in IRQ handling
Date: Tue, 9 Sep 2025 09:56:53 +0100 [thread overview]
Message-ID: <aL/r1XQmDnK6ZrkF@opensource.cirrus.com> (raw)
In-Reply-To: <7687e3cd-2f66-4092-92aa-774b7ed7e487@linux.intel.com>
On Tue, Sep 09, 2025 at 09:42:20AM +0800, Liao, Bard wrote:
> On 9/8/2025 10:43 PM, Charles Keepax wrote:
> > On Mon, Sep 08, 2025 at 01:56:57PM +0100, Charles Keepax wrote:
> >> On Mon, Sep 08, 2025 at 06:27:40PM +0800, Liao, Bard wrote:
> >>> On 9/5/2025 10:31 PM, Charles Keepax wrote:
> >>>> -int sdca_irq_data_populate(struct snd_soc_component *component,
> >>>> +int sdca_irq_data_populate(struct device *dev, struct regmap *regmap,
> >>>> + struct snd_soc_component *component,
> >>>> struct sdca_function_data *function,
> >>>> struct sdca_entity *entity,
> >>>> struct sdca_control *control,
> >>>> struct sdca_interrupt *interrupt)
> >>>> {
> >>>> - struct device *dev = component->dev;
> >>>
> >>> Previously, we assume 'component' will never be null.
> >>>
> >>>> const char *name;
> >>>>
> >>>> + if (!dev && component)
> >>>
> >>> But now we test 'component'. If we don't assume 'component' is not null
> >>> any more, we could test 'component' at the very beginning of this function.
> >>
> >> Good spot, that was missed when moving from an older version of
> >> the code. I will get that fixed up.
> >
> > Apologies I had slightly misinterpretted this, and thought you
> > meant we were dereferencing component before testing it in
> > sdca_irq_data_populate, but we arn't.
>
> No, my question is about whether component can be NULL.
The expectation would be component can not be NULL in
sdca_irq_populate(), but it could be NULL inside
sdca_irq_data_populate(), if called from somewhere else.
> Understood. I had the question because the change below.
>
> + interrupt->dev = dev;
> + if (!regmap && component)
> + interrupt->function_regmap = component->regmap;
> + else
> + interrupt->function_regmap = regmap;
>
> If both regmap and component are null, the interrupt->function_regmap
> will be NULL. Is it valid?
Ok... yeah I see. I guess it depends on the IRQ handler that
ultimately gets registered. In most cases I would expect the
handler to need a regmap, however, we don't really validate
any of the data that is purely for the handler. For example we
don't validate function/entity/control either, we check dev for
NULL because it is used for devm allocation of the name string,
not because it is data for the handler. I think doing it this
way saves us making assumptions, once we start doing so we start
to constraint what can be done through the API.
Thanks,
Charles
next prev parent reply other threads:[~2025-09-09 8:57 UTC|newest]
Thread overview: 50+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-05 14:31 [PATCH 00/15] Add SDCA UMP/FDL support Charles Keepax
2025-09-05 14:31 ` [PATCH 01/15] regmap: sdw-mbq: Don't assume the regmap device is the SoundWire slave Charles Keepax
2025-09-08 11:35 ` Pierre-Louis Bossart
2025-09-08 12:38 ` Charles Keepax
2025-09-05 14:31 ` [PATCH 02/15] ASoC: SDCA: Add manual PM runtime gets to IRQ handlers Charles Keepax
2025-09-08 11:42 ` Pierre-Louis Bossart
2025-09-08 13:31 ` Charles Keepax
2025-09-08 14:15 ` Charles Keepax
2025-09-09 12:56 ` Pierre-Louis Bossart
2025-09-05 14:31 ` [PATCH 03/15] ASoC: SDCA: Pass SoundWire slave to HID Charles Keepax
2025-09-05 14:31 ` [PATCH 04/15] ASoC: SDCA: Pass device register map from IRQ alloc to handlers Charles Keepax
2025-09-08 11:49 ` Pierre-Louis Bossart
2025-09-08 12:56 ` Charles Keepax
2025-09-09 13:05 ` Pierre-Louis Bossart
2025-09-09 16:43 ` Charles Keepax
2025-09-05 14:31 ` [PATCH 05/15] ASoC: SDCA: Update externally_requested flag to cover all requests Charles Keepax
2025-09-05 14:31 ` [PATCH 06/15] ASoC: SDCA: Factor out a helper to find SDCA IRQ data Charles Keepax
2025-09-05 14:31 ` [PATCH 07/15] ASoC: SDCA: Rely less on the ASoC component in IRQ handling Charles Keepax
2025-09-08 10:27 ` Liao, Bard
2025-09-08 12:56 ` Charles Keepax
2025-09-08 14:43 ` Charles Keepax
2025-09-09 1:42 ` Liao, Bard
2025-09-09 8:56 ` Charles Keepax [this message]
2025-09-10 1:33 ` Liao, Bard
2025-09-08 11:55 ` Pierre-Louis Bossart
2025-09-08 12:58 ` Charles Keepax
2025-09-05 14:31 ` [PATCH 08/15] ASoC: SDCA: Force some SDCA Controls to be volatile Charles Keepax
2025-09-05 14:31 ` [PATCH 09/15] ASoC: SDCA: Add UMP buffer helper functions Charles Keepax
2025-09-08 12:02 ` Pierre-Louis Bossart
2025-09-08 13:15 ` Charles Keepax
2025-09-09 13:14 ` Pierre-Louis Bossart
2025-09-09 16:52 ` Charles Keepax
2025-09-10 12:09 ` Pierre-Louis Bossart
2025-09-10 13:37 ` Charles Keepax
2025-09-10 14:29 ` Pierre-Louis Bossart
2025-09-10 15:39 ` Charles Keepax
2025-09-11 12:33 ` Pierre-Louis Bossart
2025-09-11 13:07 ` Charles Keepax
2025-09-12 10:15 ` Pierre-Louis Bossart
2025-09-12 10:33 ` Charles Keepax
2025-09-12 11:30 ` Pierre-Louis Bossart
2025-09-05 14:31 ` [PATCH 10/15] ASoC: SDCA: Add SDCA FDL data parsing Charles Keepax
2025-09-05 14:31 ` [PATCH 11/15] ASoC: SDCA: Add FDL library for XU entities Charles Keepax
2025-09-08 12:14 ` Pierre-Louis Bossart
2025-09-08 13:16 ` Charles Keepax
2025-09-09 13:14 ` Pierre-Louis Bossart
2025-09-05 14:31 ` [PATCH 12/15] ASoC: SDCA: Add XU-specific IRQ processing Charles Keepax
2025-09-05 14:31 ` [PATCH 13/15] ASoC: SDCA: Add completion for FDL start and stop Charles Keepax
2025-09-05 14:31 ` [PATCH 14/15] ASoC: SDCA: Add early IRQ handling Charles Keepax
2025-09-05 14:31 ` [PATCH 15/15] ASoC: SDCA: Add HID button IRQ Charles Keepax
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=aL/r1XQmDnK6ZrkF@opensource.cirrus.com \
--to=ckeepax@opensource.cirrus.com \
--cc=bard.liao@intel.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=rafael@kernel.org \
--cc=shumingf@realtek.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