ASoC: tegra-alt: fix dynamic pinmux config

Currently dynamic pinmux configuration for I2S, DMIC, DSPK modules
are present in runtime_resume() function which can be called even
without any audio usecase active on these modules. So this destroy
the purpose of programming pinmux only during stream active state.

This change has moved the dynamic pinmux code in these drivers to
dai ops callback of startup and shutdown which will ensure the
pinmux config happens only during the stream playback/capture.

Bug 200497486

Change-Id: I3c4e8a96d0d066b38c9aba5ffe530db5cf5246fc
Signed-off-by: Mohan Kumar <mkumard@nvidia.com>
Reviewed-on: https://git-master.nvidia.com/r/2029745
Reviewed-by: Automatic_Commit_Validation_User
Reviewed-by: svc-mobile-coverity <svc-mobile-coverity@nvidia.com>
GVS: Gerrit_Virtual_Submit
Reviewed-by: Dara Ramesh <dramesh@nvidia.com>
Reviewed-by: Ravindra Lokhande <rlokhande@nvidia.com>
Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com>
Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
This commit is contained in:
Mohan Kumar
2019-02-28 10:04:20 +05:30
committed by Sameer Pujar
parent 9050c3e455
commit 4a6ee45df7
4 changed files with 169 additions and 96 deletions

View File

@@ -1,7 +1,7 @@
/*
* tegra210_i2s_alt.h - Definitions for Tegra210 I2S driver
*
* Copyright (c) 2014-2018 NVIDIA CORPORATION. All rights reserved.
* Copyright (c) 2014-2019 NVIDIA CORPORATION. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms and conditions of the GNU General Public License,
@@ -232,7 +232,7 @@ struct tegra210_i2s {
unsigned int fsync_width;
unsigned int tx_mask;
unsigned int rx_mask;
unsigned int loopback;
bool loopback;
unsigned int format;
bool enable_cya;
unsigned int rx_fifo_th; /* should be programmed interms of frames */