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

Commit d48a06ac authored by Isaac J. Manjarres's avatar Isaac J. Manjarres
Browse files

iommu/arm-smmu: Add support for active-only interconnect votes



The SMMU interconnect voting vote assumes all votes are required
in both the active and sleep contexts. This means that votes
for a particular interconnect path cast by the SMMU driver will
be upheld even when the CPU subsystem has been suspended, which
is not correct from a power consumption perspective.

Thus, add support for the qcom,active-only property to denote
that interconnect votes should be upheld only when the CPU
subsystem is in the active context.

Change-Id: I3168a9ff55809370e155771ab2b7918da06755e4
Signed-off-by: default avatarIsaac J. Manjarres <isaacm@codeaurora.org>
parent b3d46413
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@
#define ARM_SMMU_ICC_AVG_BW		0
#define ARM_SMMU_ICC_PEAK_BW_HIGH	1000
#define ARM_SMMU_ICC_PEAK_BW_LOW	0
#define ARM_SMMU_ICC_ACTIVE_ONLY_TAG	0x3

static int force_stage;
module_param(force_stage, int, S_IRUGO);
@@ -4253,6 +4254,9 @@ static int arm_smmu_init_interconnect(struct arm_smmu_power_resources *pwr)
		return pwr->icc_path ? PTR_ERR(pwr->icc_path) : -EINVAL;
	}

	if (of_property_read_bool(dev->of_node, "qcom,active-only"))
		icc_set_tag(pwr->icc_path, ARM_SMMU_ICC_ACTIVE_ONLY_TAG);

	return 0;
}