mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-25 10:42:21 +03:00
059e505ef089cd7f342796fff9a5700bfb7bca60
When using ADMAIF9/10 channels for audio playback/capture on Tegra210, the soft-reset of the ADMAIF is failing when playback finishes ... Playing WAVE 'rec.wav' : Signed 16 bit Little Endian, Rate 48000 Hz, Stereo [ 260.094969] tegra210-ape-admaif tegra210-admaif: Failed at ADMAIF0_TX sw reset There are a couple issues here ... 1. The ADMAIF that fails is reported as 'ADMAIF0' although in the above test ADMAIF9 is being used. This is purely an error in the driver which is using 'dev-id' as the ADMAIF ID instead of 'dai->id'. Hence the above error message is misleading. 2. The soft reset fails because the regmap configuration for the ADMAIF registers on T210 is incorrect. In the function, tegra210_admaif_volatile_reg(), only the ADMAIF registers between offset 0x000 and 0x500 are considered volatile. The problem is that the ADMAIF channel registers for T210 actually span 0x000-0x280 (for RX) and 0x300-0x580 (for TX). This means that for TX, the ADMAIF9/10 channel registers are not considered volatile and hence, polling the soft reset register is failing. Fix the above two issues by correcting the ADMAIF ID reported for any soft reset failures, and correct the address range for ADMAIF volatile registers. Bug 2037162 Change-Id: If22eba754ab4bf2bf5acc3c9da51388b7208c749 Signed-off-by: Jon Hunter <jonathanh@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/1620448 (cherry picked from commit 1cd55ec115b7235343f09ec524a2c4cb2253ef33) Reviewed-on: https://git-master.nvidia.com/r/1642335 Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com> GVS: Gerrit_Virtual_Submit Reviewed-by: Bibek Basu <bbasu@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
Description
No description provided