Commit d3d753f2 authored by Konrad Dybcio's avatar Konrad Dybcio Committed by Yassine Oudjana
Browse files

arm-smmu: implement qcom,no-smr-check



Some SMMUs happen to crash the entire platform when the SMRs are checked.
To avoid that behaviour, introduce a property to skip the checking.

This is required on at least one platform (sdm630) for the multimedia
SMMU to function properly.
Signed-off-by: Konrad Dybcio's avatarKonrad Dybcio <konradybcio@gmail.com>
parent 092f8ee1
......@@ -119,6 +119,12 @@ properties:
access to SMMU configuration registers. In this case non-secure aliases of
secure registers have to be used during SMMU configuration.
qcom,no-smr-check:
description: |
As the name suggests, this property skips checking of SMRs.
This is required for some SMMUs to function properly, mostly
concerning ones associated with the multimedia subsystem.
stream-match-mask:
$ref: /schemas/types.yaml#/definitions/uint32
description: |
......
......@@ -946,8 +946,15 @@ static void arm_smmu_test_smr_masks(struct arm_smmu_device *smmu)
u32 smr;
int i;
if (!smmu->smrs)
if (!smmu->smrs && !(of_find_property(smmu->dev->of_node, "qcom,no-smr-check", NULL)))
return;
if (of_find_property(smmu->dev->of_node, "qcom,no-smr-check", NULL)) {
smmu->streamid_mask = 0x7FFF;
smmu->smr_mask_mask = 0x7FFF;
return;
}
/*
* If we've had to accommodate firmware memory regions, we may
* have live SMRs by now; tread carefully...
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment