Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f59d6c9 authored by Karthikeyan Mani's avatar Karthikeyan Mani Committed by Gerrit - the friendly Code Review server
Browse files

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: default avatarKarthikeyan Mani <kmani@codeaurora.org>
parent 1d750fe5
Loading
Loading
Loading
Loading
+9 −2
Original line number Diff line number Diff line
@@ -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;
}