soc: pinctrl-lpi: Suspend sooner if resume fails

If PM runtime resume fails, hardware vote will not
happen until it is suspended. So in error scenarios
set for a lesser suspend delay so that voting can
happen sooner.

Change-Id: Ia4175535e45ec291292b8d8656146826ffd05a26
Signed-off-by: Karthikeyan Mani <kmani@codeaurora.org>
This commit is contained in:
Karthikeyan Mani 2019-09-06 14:44:53 -07:00 • committed by Gerrit - the friendly Code Review server
commit 5f59d6c904

View file

@ -23,6 +23,7 @@
#include "pinctrl-utils.h"
#define LPI_AUTO_SUSPEND_DELAY 100 /* delay in msec */
#define LPI_AUTO_SUSPEND_DELAY_ERROR 1 /* delay in msec */
#define LPI_ADDRESS_SIZE 0x20000
#define LPI_SLEW_ADDRESS_SIZE 0x1000
@ -824,13 +825,19 @@ int lpi_pinctrl_runtime_resume(struct device *dev)
mutex_lock(&state->core_hw_vote_lock);
ret = clk_prepare_enable(state->lpass_core_hw_vote);
if (ret < 0)
if (ret < 0) {
pm_runtime_set_autosuspend_delay(dev,
LPI_AUTO_SUSPEND_DELAY_ERROR);
dev_err(dev, "%s:lpass core hw island enable failed\n",
__func__);
else
goto exit;
} else {
state->core_hw_vote_status = true;
}
pm_runtime_set_autosuspend_delay(dev, LPI_AUTO_SUSPEND_DELAY);
exit:
mutex_unlock(&state->core_hw_vote_lock);
return 0;
}