iommu/arm-smmu: Use an atomic context when fastmap is set on GKI

By default fastmap uses an atomic context.
On GKI builds fastmap is not supported, but we need to ensure that when
a client requests that fastmap be enabled on a GKI build that they still
use an atomic context.

Change-Id: I145e4679e973b10f666a0bef6ba104223fa5e7a9
Signed-off-by: Liam Mark <lmark@codeaurora.org>
This commit is contained in:
Liam Mark 2020-01-31 13:33:49 -08:00
commit 1babe09d54

View file

@ -2645,16 +2645,19 @@ static int arm_smmu_setup_default_domain(struct device *dev,
if (ret)
str = "default";
if (!strcmp(str, "bypass"))
if (!strcmp(str, "bypass")) {
__arm_smmu_domain_set_attr(
domain, DOMAIN_ATTR_S1_BYPASS, &attr);
else if (!strcmp(str, "fastmap"))
__arm_smmu_domain_set_attr(
domain, DOMAIN_ATTR_FAST, &attr);
else if (!strcmp(str, "atomic"))
} else if (!strcmp(str, "fastmap")) {
/* Ensure DOMAIN_ATTR_ATOMIC is set for GKI */
__arm_smmu_domain_set_attr(
domain, DOMAIN_ATTR_ATOMIC, &attr);
else if (!strcmp(str, "disabled")) {
__arm_smmu_domain_set_attr(
domain, DOMAIN_ATTR_FAST, &attr);
} else if (!strcmp(str, "atomic")) {
__arm_smmu_domain_set_attr(
domain, DOMAIN_ATTR_ATOMIC, &attr);
} else if (!strcmp(str, "disabled")) {
/*
* Don't touch hw, and don't allocate irqs or other resources.
* Ensure the context bank is set to a valid value per dynamic