linux-stable/sound/soc/tegra
Sameer Pujar 5983a8a4a4
ASoC: tegra: Fix clock DAI format on Tegra210
I2S reset failures are seen on Tegra210 and later platforms. This indicates
absence of I2S bit clock, which is required to perform the reset operation.
Following failures are seen with I2S based tests on Tegra210 and later:

  tegra210-i2s 2901100.i2s: timeout: failed to reset I2S for playback
  tegra210-i2s 2901100.i2s: ASoC: PRE_PMU: I2S2 RX event failed: -110
  tegra210-i2s 2901100.i2s: timeout: failed to reset I2S for capture
  tegra210-i2s 2901100.i2s: ASoC: PRE_PMU: I2S2 TX event failed: -110

The commit d92ad6633f ("ASoC: tegra: Update to use set_fmt_new callback")
regressed I2S functionality on Tegra platforms. Basically it flipped clock
provider and consumer DAI formats. This configures Tegra I2S in consumer
mode by default now and there is none to provide bit clock during loopback
tests. The external codec based tests also fail because both Tegra I2S and
codec I2S get configured in consumer mode.

ASoC core flips the DAI format before calling set_fmt() for CPU DAIs. This
is negated in above commit. Fix this by swapping SND_SOC_DAIFMT_BC_FC and
SND_SOC_DAIFMT_BP_FP switch cases.

Fixes: d92ad6633f ("ASoC: tegra: Update to use set_fmt_new callback")
Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Cc: Charles Keepax <ckeepax@opensource.cirrus.com>
Link: https://lore.kernel.org/r/1655280277-4701-1-git-send-email-spujar@nvidia.com
Signed-off-by: Mark Brown <broonie@kernel.org>
2022-06-15 09:24:37 +01:00
..
Kconfig ASoC: tegra: Add Tegra210 based OPE driver 2022-06-06 12:33:07 +01:00
Makefile ASoC: tegra: Add Tegra210 based OPE driver 2022-06-06 12:33:07 +01:00
tegra20_ac97.c
tegra20_ac97.h
tegra20_das.c
tegra20_das.h
tegra20_i2s.c ASoC: tegra: Rename set_fmt_new back to set_fmt 2022-06-06 12:34:16 +01:00
tegra20_i2s.h
tegra20_spdif.c ASoC: tegra20: spdif: make const array rates static 2022-02-15 12:52:44 +00:00
tegra20_spdif.h ASoC: tegra20: spdif: Reset hardware 2021-12-17 11:13:57 +00:00
tegra30_ahub.c ASoC: tegra30: ahub: Fix incorrect usage of of_device_get_match_data 2021-08-17 13:34:59 +01:00
tegra30_ahub.h
tegra30_i2s.c ASoC: tegra: Rename set_fmt_new back to set_fmt 2022-06-06 12:34:16 +01:00
tegra30_i2s.h
tegra186_asrc.c ASoC: tegra186_asrc: mark runtime-pm functions as __maybe_unused 2022-04-11 19:19:50 +01:00
tegra186_asrc.h ASoC: tegra: Add Tegra186 based ASRC driver 2022-04-04 08:39:14 +01:00
tegra186_dspk.c ASoC: tegra: Fix kcontrol put callback in DSPK 2021-11-18 19:02:33 +00:00
tegra186_dspk.h
tegra210_admaif.c ASoC: tegra: Fix kcontrol put callback in ADMAIF 2021-11-18 19:02:25 +00:00
tegra210_admaif.h
tegra210_adx.c ASoC: tegra: Use normal system sleep for ADX 2021-11-26 13:24:07 +00:00
tegra210_adx.h ASoC: tegra: Add Tegra210 based ADX driver 2021-09-20 13:31:35 +01:00
tegra210_ahub.c ASoC: tegra: AHUB routes for OPE module 2022-06-06 12:33:08 +01:00
tegra210_ahub.h ASoC: tegra: Update AHUB driver for Tegra234 2022-01-28 13:05:26 +00:00
tegra210_amx.c ASoC: tegra: Use normal system sleep for AMX 2021-11-26 13:24:06 +00:00
tegra210_amx.h ASoC: tegra: Add Tegra210 based AMX driver 2021-09-20 13:31:34 +01:00
tegra210_dmic.c ASoC: tegra: Fix kcontrol put callback in DMIC 2021-11-18 19:02:31 +00:00
tegra210_dmic.h
tegra210_i2s.c ASoC: tegra: Fix clock DAI format on Tegra210 2022-06-15 09:24:37 +01:00
tegra210_i2s.h
tegra210_mbdrc.c ASoC: tegra: Add Tegra210 based OPE driver 2022-06-06 12:33:07 +01:00
tegra210_mbdrc.h ASoC: tegra: Add Tegra210 based OPE driver 2022-06-06 12:33:07 +01:00
tegra210_mixer.c ASoC: tegra: Use normal system sleep for Mixer 2021-11-26 13:24:05 +00:00
tegra210_mixer.h ASoC: tegra: Add Tegra210 based Mixer driver 2021-09-20 13:31:36 +01:00
tegra210_mvc.c ASoC: tegra: Add master volume/mute control support 2021-12-01 14:15:39 +00:00
tegra210_mvc.h ASoC: tegra: Add master volume/mute control support 2021-12-01 14:15:39 +00:00
tegra210_ope.c ASoC: tegra: Add Tegra210 based OPE driver 2022-06-06 12:33:07 +01:00
tegra210_ope.h ASoC: tegra: Add Tegra210 based OPE driver 2022-06-06 12:33:07 +01:00
tegra210_peq.c ASoC: tegra: Add Tegra210 based OPE driver 2022-06-06 12:33:07 +01:00
tegra210_peq.h ASoC: tegra: Add Tegra210 based OPE driver 2022-06-06 12:33:07 +01:00
tegra210_sfc.c ASoC: tegra: Use normal system sleep for SFC 2021-11-26 13:24:01 +00:00
tegra210_sfc.h ASoC: tegra: Add Tegra210 based SFC driver 2021-09-20 13:31:33 +01:00
tegra_asoc_machine.c ASoC: soc-card: Create jack kcontrol without pins 2022-04-14 17:37:21 +01:00
tegra_asoc_machine.h ASoC: tegra: Restore headphones jack name on Nyan Big 2021-12-13 19:23:33 +00:00
tegra_audio_graph_card.c
tegra_cif.h
tegra_pcm.c ASoC: tegra20: spdif: Use more resource-managed helpers 2021-12-17 11:13:56 +00:00
tegra_pcm.h ASoC: tegra20: spdif: Use more resource-managed helpers 2021-12-17 11:13:56 +00:00
tegra_wm8903.c ASoC: soc-card: Create jack kcontrol without pins 2022-04-14 17:37:21 +01:00