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

Commit 7f42fae1 authored by Jilai Wang's avatar Jilai Wang
Browse files

msm: npu: Support LOWSVS power mode



This change is to add support for npu LOWSVS power mode.

Change-Id: I167e98f3f34b84f642797bfc8ecf73e84348ae1d
Signed-off-by: default avatarJilai Wang <jilaiw@codeaurora.org>
parent be8d56e6
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -46,7 +46,7 @@
#define NUM_TOTAL_CLKS          20
#define NPU_MAX_REGULATOR_NUM	2
#define NPU_MAX_DT_NAME_LEN	    21
#define NPU_MAX_PWRLEVELS		7
#define NPU_MAX_PWRLEVELS		8

/* -------------------------------------------------------------------------
 * Data Structures
+4 −10
Original line number Diff line number Diff line
@@ -41,10 +41,6 @@

#define PERF_MODE_DEFAULT 0

#define POWER_LEVEL_MIN_SVS 0
#define POWER_LEVEL_LOW_SVS 1
#define POWER_LEVEL_NOMINAL 4

/* -------------------------------------------------------------------------
 * File Scope Prototypes
 * -------------------------------------------------------------------------
@@ -364,11 +360,6 @@ static uint32_t npu_calc_power_level(struct npu_device *npu_dev)
	else
		ret_level = therm_pwr_level;

	/* adjust the power level */
	/* force to lowsvs, minsvs not supported */
	if (ret_level == POWER_LEVEL_MIN_SVS)
		ret_level = POWER_LEVEL_LOW_SVS;

	pr_debug("%s therm=%d active=%d uc=%d set level=%d\n", __func__,
		therm_pwr_level, active_pwr_level, uc_pwr_level, ret_level);

@@ -432,10 +423,13 @@ int npu_set_uc_power_level(struct npu_device *npu_dev,
	struct npu_pwrctrl *pwr = &npu_dev->pwrctrl;

	if (perf_mode == PERF_MODE_DEFAULT)
		pwr->uc_pwrlevel = POWER_LEVEL_NOMINAL;
		pwr->uc_pwrlevel = pwr->default_pwrlevel;
	else
		pwr->uc_pwrlevel = perf_mode - 1;

	if (pwr->uc_pwrlevel > pwr->max_pwrlevel)
		pwr->uc_pwrlevel = pwr->max_pwrlevel;

	return npu_set_power_level(npu_dev);
}