Commit 15c04159 authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Kleber Sacilotto de Souza

ASoC: ti: davinci-mcasp: Fix slot mask settings when using multiple AXRs

BugLink: https://bugs.launchpad.net/bugs/1864773

[ Upstream commit fd14f443 ]

If multiple serializers are connected in the system and the number of
channels will need to use more than one serializer the mask to enable the
serializers were left to 0 if tdm_mask is provided

Fixes: dd55ff83 ("ASoC: davinci-mcasp: Add set_tdm_slots() support")
Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarKhalid Elmously <khalid.elmously@canonical.com>
Signed-off-by: default avatarKleber Sacilotto de Souza <kleber.souza@canonical.com>
parent c196084c
...@@ -875,14 +875,13 @@ static int mcasp_i2s_hw_param(struct davinci_mcasp *mcasp, int stream, ...@@ -875,14 +875,13 @@ static int mcasp_i2s_hw_param(struct davinci_mcasp *mcasp, int stream,
active_slots = hweight32(mcasp->tdm_mask[stream]); active_slots = hweight32(mcasp->tdm_mask[stream]);
active_serializers = (channels + active_slots - 1) / active_serializers = (channels + active_slots - 1) /
active_slots; active_slots;
if (active_serializers == 1) { if (active_serializers == 1)
active_slots = channels; active_slots = channels;
for (i = 0; i < total_slots; i++) { for (i = 0; i < total_slots; i++) {
if ((1 << i) & mcasp->tdm_mask[stream]) { if ((1 << i) & mcasp->tdm_mask[stream]) {
mask |= (1 << i); mask |= (1 << i);
if (--active_slots <= 0) if (--active_slots <= 0)
break; break;
}
} }
} }
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment