On Mon, Nov 21, 2022 at 04:31:42PM +0000, Richard Fitzgerald wrote: > On 21/11/2022 13:46, Charles Keepax wrote: > >The conversation from hw_params to SoundWire config is pretty > s/conversation/conversion > lol oops thanks for that will resend to fix that up its the whole series. > > if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) { > >- direction = SDW_DATA_DIR_RX; > > port_config.num = 1; > >+ > >+ if (max98373->slot) { > >+ stream_config.ch_count = max98373->slot; > >+ port_config.ch_mask = max98373->rx_mask; > >+ } > > } else { > >- direction = SDW_DATA_DIR_TX; > > port_config.num = 3; > >- } > >- stream_config.frame_rate = params_rate(params); > >- stream_config.bps = snd_pcm_format_width(params_format(params)); > >- stream_config.direction = direction; > >- > >- if (max98373->slot && direction == SDW_DATA_DIR_RX) { > >- stream_config.ch_count = max98373->slot; > >- port_config.ch_mask = max98373->rx_mask; > >- } else { > > /* only IV are supported by capture */ > >- if (direction == SDW_DATA_DIR_TX) > >- stream_config.ch_count = 2; > Has this special case gone missing or is it already guaranteed by the > DAI config? > This special case is still there, it is just below where you made your next comment. All this case equates to is if direction is TX/CAPTURE set the number of channels to 2. > >- else > >- stream_config.ch_count = params_channels(params); > >- > >+ stream_config.ch_count = 2; > > port_config.ch_mask = GENMASK((int)stream_config.ch_count - 1, 0); > this is already done by snd_sdw_params_to_config() Not in this case because we just forced the channel count to 2, so we probably need to regenerate the mask too. Thanks, Charles