* [PATCH 0/2] Update handling of min and max channel in DisCo @ 2026-11-09 17:38 Charles Keepax 2026-11-09 17:38 ` [PATCH 1/2] soundwire: Improve channel min/max comments Charles Keepax 2026-11-09 17:38 ` [PATCH 2/2] soundwire: Assume default maximum valid channel if not specified Charles Keepax 0 siblings, 2 replies; 5+ messages in thread From: Charles Keepax @ 2026-11-09 17:38 UTC (permalink / raw) To: vkoul Cc: yung-chuan.liao, pierre-louis.bossart, linux-sound, linux-kernel, patches The DisCo properties "mipi-sdw-min-channel-number" and "mipi-sdw-max-channel-number" are both channel indexes rather than counts. Update the kernel code to more accurately reflect this. There are a few Qualcomm drivers that likely specify these incorrect, min_ch=1, max_ch=X, rather than min_ch=0, max_ch=X-1, however these should work fine as the number of supported channels is equivalent. If people feel strongly I can send another series to fix those up. Charles Keepax (2): soundwire: Improve channel min/max comments soundwire: Assume default maximum valid channel if not specified drivers/soundwire/mipi_disco.c | 14 ++++++++------ include/linux/soundwire/sdw.h | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) -- 2.47.3 ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 1/2] soundwire: Improve channel min/max comments 2026-11-09 17:38 [PATCH 0/2] Update handling of min and max channel in DisCo Charles Keepax @ 2026-11-09 17:38 ` Charles Keepax 2026-11-10 8:29 ` Pierre-Louis Bossart 2026-11-09 17:38 ` [PATCH 2/2] soundwire: Assume default maximum valid channel if not specified Charles Keepax 1 sibling, 1 reply; 5+ messages in thread From: Charles Keepax @ 2026-11-09 17:38 UTC (permalink / raw) To: vkoul Cc: yung-chuan.liao, pierre-louis.bossart, linux-sound, linux-kernel, patches Presently, the comments for the minimum and maximum channels are misleading. In the SDCA specification these are actually channel indexes not a count of the number of channels. So for example min_ch=4 and max_ch=5 means that 1 or 2 channels are supported. Update the comments associated with the structure to make this more clear. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> --- include/linux/soundwire/sdw.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/include/linux/soundwire/sdw.h b/include/linux/soundwire/sdw.h index f710e5932b4b2..22fb7158bb709 100644 --- a/include/linux/soundwire/sdw.h +++ b/include/linux/soundwire/sdw.h @@ -289,8 +289,8 @@ struct sdw_dp0_prop { * @ch_prep_timeout: Port-specific timeout value, in milliseconds * @imp_def_interrupts: If set, each bit corresponds to support for * implementation-defined interrupts - * @max_ch: Maximum channels supported - * @min_ch: Minimum channels supported + * @max_ch: Index of the maximum channel supported + * @min_ch: Index of the minimum channel supported * @num_channels: Number of discrete channels supported * @num_ch_combinations: Number of channel combinations supported * @channels: Discrete channels supported -- 2.47.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] soundwire: Improve channel min/max comments 2026-11-09 17:38 ` [PATCH 1/2] soundwire: Improve channel min/max comments Charles Keepax @ 2026-11-10 8:29 ` Pierre-Louis Bossart 2026-11-10 9:39 ` Charles Keepax 0 siblings, 1 reply; 5+ messages in thread From: Pierre-Louis Bossart @ 2026-11-10 8:29 UTC (permalink / raw) To: Charles Keepax, vkoul; +Cc: yung-chuan.liao, linux-sound, linux-kernel, patches On 11/9/26 18:38, Charles Keepax wrote: > Presently, the comments for the minimum and maximum channels are > misleading. In the SDCA specification these are actually channel > indexes not a count of the number of channels. So for example > min_ch=4 and max_ch=5 means that 1 or 2 channels are supported. > Update the comments associated with the structure to make this > more clear. It's the DisCo spec, not SDCA. The DisCo spec reads: " mipi-sdw-min-channel-number : This optional integer Property shall indicate the minimum Channel Number for this Audio Port, if the Audio Port uses consecutive inclusive Channel Numbers. " > Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> > --- > include/linux/soundwire/sdw.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/include/linux/soundwire/sdw.h b/include/linux/soundwire/sdw.h > index f710e5932b4b2..22fb7158bb709 100644 > --- a/include/linux/soundwire/sdw.h > +++ b/include/linux/soundwire/sdw.h > @@ -289,8 +289,8 @@ struct sdw_dp0_prop { > * @ch_prep_timeout: Port-specific timeout value, in milliseconds > * @imp_def_interrupts: If set, each bit corresponds to support for > * implementation-defined interrupts > - * @max_ch: Maximum channels supported > - * @min_ch: Minimum channels supported > + * @max_ch: Index of the maximum channel supported > + * @min_ch: Index of the minimum channel supported that's also ambiguous. Maybe just use the spec definition "minimum Channel Number of this Audio Port" > * @num_channels: Number of discrete channels supported > * @num_ch_combinations: Number of channel combinations supported > * @channels: Discrete channels supported ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 1/2] soundwire: Improve channel min/max comments 2026-11-10 8:29 ` Pierre-Louis Bossart @ 2026-11-10 9:39 ` Charles Keepax 0 siblings, 0 replies; 5+ messages in thread From: Charles Keepax @ 2026-11-10 9:39 UTC (permalink / raw) To: Pierre-Louis Bossart Cc: vkoul, yung-chuan.liao, linux-sound, linux-kernel, patches On Tue, Nov 10, 2026 at 09:29:00AM +0100, Pierre-Louis Bossart wrote: > On 11/9/26 18:38, Charles Keepax wrote: > > Presently, the comments for the minimum and maximum channels are > > misleading. In the SDCA specification these are actually channel > > indexes not a count of the number of channels. So for example > > min_ch=4 and max_ch=5 means that 1 or 2 channels are supported. > > Update the comments associated with the structure to make this > > more clear. > > It's the DisCo spec, not SDCA. Ooops yeah thank you, I will fix. > > + * @max_ch: Index of the maximum channel supported > > + * @min_ch: Index of the minimum channel supported > > that's also ambiguous. > > Maybe just use the spec definition "minimum Channel Number of this Audio > Port" Yeah I am happy with that wording will update for the spin. Thanks, Charles ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 2/2] soundwire: Assume default maximum valid channel if not specified 2026-11-09 17:38 [PATCH 0/2] Update handling of min and max channel in DisCo Charles Keepax 2026-11-09 17:38 ` [PATCH 1/2] soundwire: Improve channel min/max comments Charles Keepax @ 2026-11-09 17:38 ` Charles Keepax 1 sibling, 0 replies; 5+ messages in thread From: Charles Keepax @ 2026-11-09 17:38 UTC (permalink / raw) To: vkoul Cc: yung-chuan.liao, pierre-louis.bossart, linux-sound, linux-kernel, patches The SDCA specification defines all the supported channel properties as optional and states that in the case none are specified defaults of min_ch=0 and max_ch=7 should be used. If both properties are not present in the DisCo the current code results in min_ch=0 and max_ch=0. As min_ch and max_ch are both channel indexes, users can't discern if they should interpret this as the default case (1-8 channels supported) or the DisCo specified a single valid channel of 0 (1 channel supported). In the case there are no valid supported channel properties populate max_ch with 7 as the specification suggests, to avoid the ambiguity. Signed-off-by: Charles Keepax <ckeepax@opensource.cirrus.com> --- drivers/soundwire/mipi_disco.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/drivers/soundwire/mipi_disco.c b/drivers/soundwire/mipi_disco.c index 259ad98b5b7a9..eadbda55f377f 100644 --- a/drivers/soundwire/mipi_disco.c +++ b/drivers/soundwire/mipi_disco.c @@ -284,12 +284,6 @@ static int sdw_slave_read_dpn(struct sdw_slave *slave, "mipi-sdw-imp-def-dpn-interrupts-supported", &dpn[i].imp_def_interrupts); - fwnode_property_read_u32(node, "mipi-sdw-min-channel-number", - &dpn[i].min_ch); - - fwnode_property_read_u32(node, "mipi-sdw-max-channel-number", - &dpn[i].max_ch); - nval = fwnode_property_count_u32(node, "mipi-sdw-channel-number-list"); if (nval > 0) { dpn[i].num_channels = nval; @@ -309,6 +303,14 @@ static int sdw_slave_read_dpn(struct sdw_slave *slave, return ret; } + fwnode_property_read_u32(node, "mipi-sdw-min-channel-number", + &dpn[i].min_ch); + + ret = fwnode_property_read_u32(node, "mipi-sdw-max-channel-number", + &dpn[i].max_ch); + if (ret && !dpn[i].num_channels) + dpn[i].max_ch = 7; + nval = fwnode_property_count_u32(node, "mipi-sdw-channel-combination-list"); if (nval > 0) { dpn[i].num_ch_combinations = nval; -- 2.47.3 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-11-10 9:41 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2026-11-09 17:38 [PATCH 0/2] Update handling of min and max channel in DisCo Charles Keepax 2026-11-09 17:38 ` [PATCH 1/2] soundwire: Improve channel min/max comments Charles Keepax 2026-11-10 8:29 ` Pierre-Louis Bossart 2026-11-10 9:39 ` Charles Keepax 2026-11-09 17:38 ` [PATCH 2/2] soundwire: Assume default maximum valid channel if not specified Charles Keepax
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.