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) {
port_config.num = 1;direction = SDW_DATA_DIR_RX;
if (max98373->slot) {
stream_config.ch_count = max98373->slot;
port_config.ch_mask = max98373->rx_mask;
} else {}
port_config.num = 3;direction = SDW_DATA_DIR_TX;
- }
- 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);
port_config.ch_mask = GENMASK((int)stream_config.ch_count - 1, 0);stream_config.ch_count = 2;
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