summaryrefslogtreecommitdiff
path: root/asoc
diff options
context:
space:
mode:
authorvijeth.po <vijeth.po@pathpartnertech.com>2021-04-16 14:32:28 +0530
committerVincent Tew <vincenttew@google.com>2021-06-17 13:54:34 +0000
commit525c625395885f30a4f6424cde533a11b4cc5990 (patch)
tree80eab4271ca1bce4ad1e031b16721eccc7d9fcd6 /asoc
parente96998520107aa460ffc66e67a3c6deb944b645f (diff)
downloadmsm-extra-525c625395885f30a4f6424cde533a11b4cc5990.tar.gz
asoc: codec: Playback Amp power up/down time optimization.
In-order reduce the power down and hence to improve audio-server restart time following time optimization is done. 1. Add common delay after both Amp is powered down. a. Use 16ms instead of 20ms 2. Remove extra delay added in tas256x_set_power_shutdown() 3. Use usleep_range() instead of msleep for less than 20ms in power up/down related functions. Bug: 171941028 Signed-off-by: vincenttew <vincenttew@google.com> Change-Id: I9d169b73f140c0b6b65d4f035193e3f687624aaa
Diffstat (limited to 'asoc')
-rw-r--r--asoc/codecs/tas256x/logical_layer/src/tas256x-logic.c5
-rw-r--r--asoc/codecs/tas256x/physical_layer/src/tas256x.c5
2 files changed, 4 insertions, 6 deletions
diff --git a/asoc/codecs/tas256x/logical_layer/src/tas256x-logic.c b/asoc/codecs/tas256x/logical_layer/src/tas256x-logic.c
index 2ca33c22..125d0a45 100644
--- a/asoc/codecs/tas256x/logical_layer/src/tas256x-logic.c
+++ b/asoc/codecs/tas256x/logical_layer/src/tas256x-logic.c
@@ -1078,7 +1078,6 @@ int tas256x_set_power_state(struct tas256x_priv *p_tas256x,
p_tas256x->mb_power_up = false;
p_tas256x->mn_power_state =
TAS256X_POWER_SHUTDOWN;
- msleep(20);
}
} else {
if (chn & (i+1)) {
@@ -1090,7 +1089,6 @@ int tas256x_set_power_state(struct tas256x_priv *p_tas256x,
p_tas256x->mb_power_up = false;
p_tas256x->mn_power_state =
TAS256X_POWER_SHUTDOWN;
- msleep(20);
/*Mask interrupt for TDM*/
n_result = tas256x_interrupt_enable(p_tas256x,
0/*Disable*/,
@@ -1099,6 +1097,9 @@ int tas256x_set_power_state(struct tas256x_priv *p_tas256x,
}
}
p_tas256x->enable_irq(p_tas256x, false);
+ /*Device Shutdown need 16ms after shutdown writes are made*/
+ usleep_range(16000, 16100);
+
#if IS_ENABLED(CONFIG_TAS256X_REGBIN_PARSER)
/*set p_tas256x->profile_cfg_id by tinymix*/
tas256x_select_cfg_blk(p_tas256x, p_tas256x->profile_cfg_id,
diff --git a/asoc/codecs/tas256x/physical_layer/src/tas256x.c b/asoc/codecs/tas256x/physical_layer/src/tas256x.c
index 09dfc84f..86febd5f 100644
--- a/asoc/codecs/tas256x/physical_layer/src/tas256x.c
+++ b/asoc/codecs/tas256x/physical_layer/src/tas256x.c
@@ -281,7 +281,7 @@ int tas256x_set_power_up(struct tas256x_priv *p_tas256x,
TAS256X_POWERCONTROL_OPERATIONALMODE10_ACTIVE);
/* Let Power on the device */
- msleep(2);
+ usleep_range(2000, 2100);
/* Enable Comparator Hysteresis */
n_result = p_tas256x->update_bits(p_tas256x, chn,
TAS256X_MISC_CLASSD,
@@ -320,9 +320,6 @@ int tas256x_set_power_shutdown(struct tas256x_priv *p_tas256x,
TAS256X_POWERCONTROL_OPERATIONALMODE10_MASK,
TAS256X_POWERCONTROL_OPERATIONALMODE10_SHUTDOWN);
- /*Device Shutdown need 20ms after shutdown writes are made*/
- msleep(20);
-
return n_result;
}