[PATCH] ASoC: qcom: lpass-cpu: Fix fallback SD line index handling
These indices should reference the ID placed within the dai_driver array, not the indices of the array itself.
This fixes commit 4ff028f6c108 ("ASoC: qcom: lpass-cpu: Make I2S SD lines configurable"), which among others, broke IPQ8064 audio (sound/soc/qcom/lpass-ipq806x.c) because it uses ID 4 but we'd stop initializing the mi2s_playback_sd_mode and mi2s_capture_sd_mode arrays at ID 0.
Fixes: 4ff028f6c108 ("ASoC: qcom: lpass-cpu: Make I2S SD lines configurable") Cc: stable@vger.kernel.org Signed-off-by: Brian Norris computersforpeace@gmail.com --- sound/soc/qcom/lpass-cpu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/sound/soc/qcom/lpass-cpu.c b/sound/soc/qcom/lpass-cpu.c index 54353842dc07..dbdaaa85ce48 100644 --- a/sound/soc/qcom/lpass-cpu.c +++ b/sound/soc/qcom/lpass-cpu.c @@ -1037,10 +1037,11 @@ static void of_lpass_cpu_parse_dai_data(struct device *dev, struct lpass_data *data) { struct device_node *node; - int ret, id; + int ret, i, id;
/* Allow all channels by default for backwards compatibility */ - for (id = 0; id < data->variant->num_dai; id++) { + for (i = 0; i < data->variant->num_dai; i++) { + id = data->variant->dai_driver[i].id; data->mi2s_playback_sd_mode[id] = LPAIF_I2SCTL_MODE_8CH; data->mi2s_capture_sd_mode[id] = LPAIF_I2SCTL_MODE_8CH; }
Hi Brian,
On Fri, Dec 30, 2022 at 10:15:45PM -0800, Brian Norris wrote:
These indices should reference the ID placed within the dai_driver array, not the indices of the array itself.
Indeed, thanks for the fix and sorry for breaking IPQ8064 audio. Looks like it's not tested very often because my patch that broke it was merged 2.5 years ago. :-)
This fixes commit 4ff028f6c108 ("ASoC: qcom: lpass-cpu: Make I2S SD lines configurable"), which among others, broke IPQ8064 audio
FWIW I think it's really just IPQ8064 audio (no others) because the other platforms all happen to have the MI2S ports at the same index as their ID.
(sound/soc/qcom/lpass-ipq806x.c) because it uses ID 4 but we'd stop initializing the mi2s_playback_sd_mode and mi2s_capture_sd_mode arrays at ID 0.
Fixes: 4ff028f6c108 ("ASoC: qcom: lpass-cpu: Make I2S SD lines configurable") Cc: stable@vger.kernel.org Signed-off-by: Brian Norris computersforpeace@gmail.com
Reviewed-by: Stephan Gerhold stephan@gerhold.net
BTW I just found this patch "by accident" while looking for something else on the stable mailing list. Please Cc the original author if you use Fixes (get_maintainer.pl should suggest that automatically if you run it in the kernel tree). :)
Thanks! Stephan
sound/soc/qcom/lpass-cpu.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/sound/soc/qcom/lpass-cpu.c b/sound/soc/qcom/lpass-cpu.c index 54353842dc07..dbdaaa85ce48 100644 --- a/sound/soc/qcom/lpass-cpu.c +++ b/sound/soc/qcom/lpass-cpu.c @@ -1037,10 +1037,11 @@ static void of_lpass_cpu_parse_dai_data(struct device *dev, struct lpass_data *data) { struct device_node *node;
- int ret, id;
int ret, i, id;
/* Allow all channels by default for backwards compatibility */
- for (id = 0; id < data->variant->num_dai; id++) {
- for (i = 0; i < data->variant->num_dai; i++) {
data->mi2s_playback_sd_mode[id] = LPAIF_I2SCTL_MODE_8CH; data->mi2s_capture_sd_mode[id] = LPAIF_I2SCTL_MODE_8CH; }id = data->variant->dai_driver[i].id;
-- 2.39.0
On Fri, 30 Dec 2022 22:15:45 -0800, Brian Norris wrote:
These indices should reference the ID placed within the dai_driver array, not the indices of the array itself.
This fixes commit 4ff028f6c108 ("ASoC: qcom: lpass-cpu: Make I2S SD lines configurable"), which among others, broke IPQ8064 audio (sound/soc/qcom/lpass-ipq806x.c) because it uses ID 4 but we'd stop initializing the mi2s_playback_sd_mode and mi2s_capture_sd_mode arrays at ID 0.
[...]
Applied to
broonie/sound.git for-next
Thanks!
[1/1] ASoC: qcom: lpass-cpu: Fix fallback SD line index handling commit: 000bca8d706d1bf7cca01af75787247c5a2fdedf
All being well this means that it will be integrated into the linux-next tree (usually sometime in the next 24 hours) and sent to Linus during the next merge window (or sooner if it is a bug fix), however if problems are discovered then the patch may be dropped or reverted.
You may get further e-mails resulting from automated or manual testing and review of the tree, please engage with people reporting problems and send followup patches addressing any issues that are reported if needed.
If any updates are required or you are submitting further changes they should be sent as incremental updates against current git, existing patches will not be replaced.
Please add any relevant lists and maintainers to the CCs when replying to this mail.
Thanks, Mark
participants (3)
-
Brian Norris
-
Mark Brown
-
Stephan Gerhold