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

Commit c4931b29 authored by qctecmdr Service's avatar qctecmdr Service Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ARM: dts: msm: Use 1 ASID per context bank on kona"

parents e8cff389 59c1bf0a
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -138,6 +138,15 @@ conditions.
                  clients who do not detach, it's not possible to keep regulator
                  vote while smmu is attached. Type is <u32>.

- qcom,no-dynamic-asid:
		  Clients that uses the dynamic domains will have an unique asid
		  per each domain and all domains can share the same context bank.
		  When ASID based invalidation is used, on some hardware revisions,
		  as a result of multiple ASID's associated with the same context
		  bank, TLB entries are not invalidated properly. On such systems,
		  we can choose to have a single ASID associated with all domains
		  for a context bank.

- clocks        : List of clocks to be used during SMMU register access. See
                  Documentation/devicetree/bindings/clock/clock-bindings.txt
                  for information about the format. For each clock specified
+1 −0
Original line number Diff line number Diff line
@@ -15,6 +15,7 @@
		qcom,dynamic;
		qcom,skip-init;
		qcom,use-3-lvl-tables;
		qcom,no-dynamic-asid;
		#global-interrupts = <2>;
		#size-cells = <1>;
		#address-cells = <1>;
+3 −1
Original line number Diff line number Diff line
@@ -250,6 +250,7 @@ struct arm_smmu_device {
#define ARM_SMMU_OPT_NO_ASID_RETENTION	(1 << 5)
#define ARM_SMMU_OPT_STATIC_CB		(1 << 6)
#define ARM_SMMU_OPT_DISABLE_ATOS	(1 << 7)
#define ARM_SMMU_OPT_NO_DYNAMIC_ASID	(1 << 8)
	u32				options;
	enum arm_smmu_arch_version	version;
	enum arm_smmu_implementation	model;
@@ -387,6 +388,7 @@ static struct arm_smmu_option_prop arm_smmu_options[] = {
	{ ARM_SMMU_OPT_NO_ASID_RETENTION, "qcom,no-asid-retention" },
	{ ARM_SMMU_OPT_STATIC_CB, "qcom,enable-static-cb"},
	{ ARM_SMMU_OPT_DISABLE_ATOS, "qcom,disable-atos" },
	{ ARM_SMMU_OPT_NO_DYNAMIC_ASID, "qcom,no-dynamic-asid" },
	{ 0, NULL},
};

@@ -1852,7 +1854,7 @@ static int arm_smmu_init_asid(struct iommu_domain *domain,
	bool dynamic = is_dynamic_domain(domain);
	int ret;

	if (!dynamic) {
	if (!dynamic || (smmu->options & ARM_SMMU_OPT_NO_DYNAMIC_ASID)) {
		cfg->asid = cfg->cbndx + 1;
	} else {
		mutex_lock(&smmu->idr_mutex);