ASoC: ti: davinci-mcasp: Fix slot mask settings when using multiple AXRs
[ Upstream commit fd14f4436fd47d5418023c90e933e66d3645552e ]
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: dd55ff8346
("ASoC: davinci-mcasp: Add set_tdm_slots() support")
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
This commit is contained in:
parent
d7ae1636c8
commit
61d7f6a117
1 changed files with 6 additions and 7 deletions
|
@ -882,14 +882,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 {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue