From: Pierre-Louis Bossart <pierre-louis.bossart@linux.dev>
To: Charles Keepax <ckeepax@opensource.cirrus.com>, broonie@kernel.org
Cc: rafael@kernel.org, yung-chuan.liao@linux.intel.com,
peter.ujfalusi@linux.intel.com, shumingf@realtek.com,
lgirdwood@gmail.com, linux-sound@vger.kernel.org,
patches@opensource.cirrus.com
Subject: Re: [PATCH v2 12/19] ASoC: SDCA: Add UMP buffer helper functions
Date: Wed, 17 Sep 2025 21:49:29 +0200 [thread overview]
Message-ID: <b1d1d507-1a34-42b2-b154-5c4ba100cc83@linux.dev> (raw)
In-Reply-To: <20250912103504.2679226-13-ckeepax@opensource.cirrus.com>
> +int sdca_ump_get_owner_host(struct device *dev,
> + struct regmap *function_regmap,
> + struct sdca_function_data *function,
> + struct sdca_entity *entity,
> + struct sdca_control *control);
> +int sdca_ump_set_owner_device(struct device *dev,
> + struct regmap *function_regmap,
> + struct sdca_function_data *function,
> + struct sdca_entity *entity,
> + struct sdca_control *control);
> +int sdca_ump_read_message(struct device *dev,
> + struct regmap *device_regmap,
> + struct regmap *function_regmap,
> + struct sdca_function_data *function,
> + struct sdca_entity *entity,
> + unsigned int offset_sel, unsigned int length_sel,
> + void **msg);
> +int sdca_ump_write_message(struct device *dev,
> + struct regmap *device_regmap,
> + struct regmap *function_regmap,
> + struct sdca_function_data *function,
> + struct sdca_entity *entity,
> + unsigned int offset_sel, unsigned int msg_offset,
> + unsigned int length_sel,
> + void *msg, int msg_len);
I am still missing the big picture on when/where the timeouts read from DisCo properties are used.
I looked at patch 14 and I don't see any timeouts used except for the reset.
> +/**
> + * sdca_ump_read_message - read a UMP message from the device
> + * @dev: Pointer to the struct device used for error messages.
> + * @device_regmap: Pointer to the Device register map.
> + * @function_regmap: Pointer to the regmap for the SDCA Function.
> + * @function: Pointer to the Function information.
> + * @entity: Pointer to the SDCA Entity.
> + * @offset_sel: Control Selector for the UMP Offset Control.
> + * @length_sel: Control Selector for the UMP Length Control.
> + * @msg: Pointer that will be populated with an dynamically buffer
> + * containing the UMP message. Note this needs to be freed by the
> + * caller.
> + *
> + * The caller should first call sdca_ump_get_owner_host() to ensure the host
> + * currently owns the UMP buffer, and then this function can be used to
> + * retrieve a message. It is the callers responsibility to free the
> + * message once it is finished with it. Finally sdca_ump_set_owner_device()
> + * should be called to return the buffer to the device.
Maybe I misunderstood something in the UMP spec, but I could see a different flow where the host does a set_owner_device() and later reads the buffer updated by the device once the ownership is given back to the host.
I think you're assuming that a read is always initiated by the device, but what if the host wants to read something (volume/acoustic levels, etc) without getting any notification?
IOW, will a read only happen when the device throws an interrupt on its own? The spec doesn't seem very clear on this...
next prev parent reply other threads:[~2025-09-17 20:22 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-09-12 10:34 [PATCH v2 00/20] Add SDCA UMP/FDL support Charles Keepax
2025-09-12 10:34 ` [PATCH v2 01/19] ASoC: SDCA: Rename SoundWire struct device variables Charles Keepax
2025-09-12 10:34 ` [PATCH v2 02/19] regmap: sdw-mbq: Don't assume the regmap device is the SoundWire slave Charles Keepax
2025-09-12 10:34 ` [PATCH v2 03/19] ASoC: SDCA: Add manual PM runtime gets to IRQ handlers Charles Keepax
2025-09-12 10:34 ` [PATCH v2 04/19] ASoC: SDCA: Pass SoundWire slave to HID Charles Keepax
2025-09-12 10:34 ` [PATCH v2 05/19] ASoC: SDCA: Pass device register map from IRQ alloc to handlers Charles Keepax
2025-09-12 10:34 ` [PATCH v2 06/19] ASoC: SDCA: Update externally_requested flag to cover all requests Charles Keepax
2025-09-12 10:34 ` [PATCH v2 07/19] ASoC: SDCA: Factor out a helper to find SDCA IRQ data Charles Keepax
2025-09-17 18:49 ` Pierre-Louis Bossart
2025-09-19 10:41 ` Charles Keepax
2025-09-12 10:34 ` [PATCH v2 08/19] ASoC: SDCA: Rely less on the ASoC component in IRQ handling Charles Keepax
2025-09-12 10:34 ` [PATCH v2 09/19] ASoC: SDCA: Force some SDCA Controls to be volatile Charles Keepax
2025-09-17 18:53 ` Pierre-Louis Bossart
2025-09-18 10:18 ` Charles Keepax
2025-09-12 10:34 ` [PATCH v2 10/19] ASoC: SDCA: Parse XU Entity properties Charles Keepax
2025-09-17 18:58 ` Pierre-Louis Bossart
2025-09-18 10:24 ` Charles Keepax
2025-09-12 10:34 ` [PATCH v2 11/19] ASoC: SDCA: Parse Function Reset max delay Charles Keepax
2025-09-12 10:34 ` [PATCH v2 12/19] ASoC: SDCA: Add UMP buffer helper functions Charles Keepax
2025-09-17 19:49 ` Pierre-Louis Bossart [this message]
2025-09-18 12:22 ` Charles Keepax
2025-09-12 10:34 ` [PATCH v2 13/19] ASoC: SDCA: Add SDCA FDL data parsing Charles Keepax
2025-09-16 13:38 ` Mark Brown
2025-09-16 13:45 ` Mark Brown
2025-09-16 13:51 ` Charles Keepax
2025-09-17 12:14 ` Mark Brown
2025-09-17 14:31 ` Charles Keepax
2025-09-18 20:25 ` Mark Brown
2025-09-19 8:06 ` Charles Keepax
2025-09-12 10:34 ` [PATCH v2 14/19] ASoC: SDCA: Add FDL library for XU entities Charles Keepax
2025-09-12 10:35 ` [PATCH v2 15/19] ASoC: SDCA: Add FDL-specific IRQ processing Charles Keepax
2025-09-12 10:35 ` [PATCH v2 16/19] ASoC: SDCA: Add completion for FDL start and stop Charles Keepax
2025-09-17 20:13 ` Pierre-Louis Bossart
2025-09-18 10:57 ` Charles Keepax
2025-09-12 10:35 ` [PATCH v2 17/19] ASoC: SDCA: Add UMP timeout handling for FDL Charles Keepax
2025-09-12 10:35 ` [PATCH v2 18/19] ASoC: SDCA: Add early IRQ handling Charles Keepax
2025-09-12 10:35 ` [PATCH v2 19/19] ASoC: SDCA: Add HID button IRQ Charles Keepax
2025-09-16 2:12 ` [PATCH v2 00/20] Add SDCA UMP/FDL support Liao, Bard
2025-09-17 20:20 ` Pierre-Louis Bossart
2025-10-29 22:02 ` Mark Brown
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=b1d1d507-1a34-42b2-b154-5c4ba100cc83@linux.dev \
--to=pierre-louis.bossart@linux.dev \
--cc=broonie@kernel.org \
--cc=ckeepax@opensource.cirrus.com \
--cc=lgirdwood@gmail.com \
--cc=linux-sound@vger.kernel.org \
--cc=patches@opensource.cirrus.com \
--cc=peter.ujfalusi@linux.intel.com \
--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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.