nvidia_smmu
struct nvidia_smmu *nvidia = to_nvidia_smmu(smmu);
struct nvidia_smmu *nvidia = to_nvidia_smmu(smmu);
struct nvidia_smmu *nvidia = to_nvidia_smmu(smmu);
struct nvidia_smmu *nvidia;
struct nvidia_smmu *nvidia = to_nvidia_smmu(smmu);
struct nvidia_smmu *nvidia_smmu;
nvidia_smmu = devm_krealloc(dev, smmu, sizeof(*nvidia_smmu), GFP_KERNEL);
if (!nvidia_smmu)
nvidia_smmu->mc = devm_tegra_memory_controller_get(dev);
if (IS_ERR(nvidia_smmu->mc))
return ERR_CAST(nvidia_smmu->mc);
nvidia_smmu->bases[0] = smmu->base;
nvidia_smmu->num_instances++;
nvidia_smmu->bases[i] = devm_ioremap_resource(dev, res);
if (IS_ERR(nvidia_smmu->bases[i]))
return ERR_CAST(nvidia_smmu->bases[i]);
nvidia_smmu->num_instances++;
if (nvidia_smmu->num_instances == 1)
nvidia_smmu->smmu.impl = &nvidia_smmu_single_impl;
nvidia_smmu->smmu.impl = &nvidia_smmu_impl;
return &nvidia_smmu->smmu;
static inline struct nvidia_smmu *to_nvidia_smmu(struct arm_smmu_device *smmu)
return container_of(smmu, struct nvidia_smmu, smmu);
struct nvidia_smmu *nvidia_smmu;
nvidia_smmu = container_of(smmu, struct nvidia_smmu, smmu);
return nvidia_smmu->bases[inst] + (page << smmu->pgshift);
struct nvidia_smmu *nvidia = to_nvidia_smmu(smmu);
struct nvidia_smmu *nvidia = to_nvidia_smmu(smmu);