Skip to content

Commit ce7fc8e

Browse files
committed
Merge branch 'for-thierry/arm-smmu' of https://git.kernel.org/pub/scm/linux/kernel/git/will/linux into for-v5.14/tegra-mc
Pull ARM SMMU driver change from Will Deacon to resolve dependencies between memory controllers, Tegra ARM SoC and ARM SMMU drivers trees. Further ARM SMMU changes for Tegra depend on the change in Will's tree and on Tegra memory controllers drivers work done before by Thierry Reding. Pulling Will's tree allows to apply the rest of this ARM SMMU Tegra work via memory controllers drivers tree. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
2 parents c7c6570 + 0d97174 commit ce7fc8e

2 files changed

Lines changed: 14 additions & 0 deletions

File tree

drivers/iommu/arm/arm-smmu/arm-smmu.c

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1450,6 +1450,18 @@ static void arm_smmu_release_device(struct device *dev)
14501450
iommu_fwspec_free(dev);
14511451
}
14521452

1453+
static void arm_smmu_probe_finalize(struct device *dev)
1454+
{
1455+
struct arm_smmu_master_cfg *cfg;
1456+
struct arm_smmu_device *smmu;
1457+
1458+
cfg = dev_iommu_priv_get(dev);
1459+
smmu = cfg->smmu;
1460+
1461+
if (smmu->impl->probe_finalize)
1462+
smmu->impl->probe_finalize(smmu, dev);
1463+
}
1464+
14531465
static struct iommu_group *arm_smmu_device_group(struct device *dev)
14541466
{
14551467
struct arm_smmu_master_cfg *cfg = dev_iommu_priv_get(dev);
@@ -1569,6 +1581,7 @@ static struct iommu_ops arm_smmu_ops = {
15691581
.iova_to_phys = arm_smmu_iova_to_phys,
15701582
.probe_device = arm_smmu_probe_device,
15711583
.release_device = arm_smmu_release_device,
1584+
.probe_finalize = arm_smmu_probe_finalize,
15721585
.device_group = arm_smmu_device_group,
15731586
.enable_nesting = arm_smmu_enable_nesting,
15741587
.set_pgtable_quirks = arm_smmu_set_pgtable_quirks,

drivers/iommu/arm/arm-smmu/arm-smmu.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -439,6 +439,7 @@ struct arm_smmu_impl {
439439
struct device *dev, int start);
440440
void (*write_s2cr)(struct arm_smmu_device *smmu, int idx);
441441
void (*write_sctlr)(struct arm_smmu_device *smmu, int idx, u32 reg);
442+
void (*probe_finalize)(struct arm_smmu_device *smmu, struct device *dev);
442443
};
443444

444445
#define INVALID_SMENDX -1

0 commit comments

Comments
 (0)