Lines Matching refs:smrs
278 struct arm_smmu_smr *smrs; member
991 struct arm_smmu_smr *smrs; in arm_smmu_master_configure_smrs() local
997 if (cfg->smrs) in arm_smmu_master_configure_smrs()
1000 smrs = kmalloc_array(cfg->num_streamids, sizeof(*smrs), GFP_KERNEL); in arm_smmu_master_configure_smrs()
1001 if (!smrs) { in arm_smmu_master_configure_smrs()
1016 smrs[i] = (struct arm_smmu_smr) { in arm_smmu_master_configure_smrs()
1025 u32 reg = SMR_VALID | smrs[i].id << SMR_ID_SHIFT | in arm_smmu_master_configure_smrs()
1026 smrs[i].mask << SMR_MASK_SHIFT; in arm_smmu_master_configure_smrs()
1027 writel_relaxed(reg, gr0_base + ARM_SMMU_GR0_SMR(smrs[i].idx)); in arm_smmu_master_configure_smrs()
1030 cfg->smrs = smrs; in arm_smmu_master_configure_smrs()
1035 __arm_smmu_free_bitmap(smmu->smr_map, smrs[i].idx); in arm_smmu_master_configure_smrs()
1036 kfree(smrs); in arm_smmu_master_configure_smrs()
1045 struct arm_smmu_smr *smrs = cfg->smrs; in arm_smmu_master_free_smrs() local
1047 if (!smrs) in arm_smmu_master_free_smrs()
1052 u8 idx = smrs[i].idx; in arm_smmu_master_free_smrs()
1058 cfg->smrs = NULL; in arm_smmu_master_free_smrs()
1059 kfree(smrs); in arm_smmu_master_free_smrs()
1077 idx = cfg->smrs ? cfg->smrs[i].idx : cfg->streamids[i]; in arm_smmu_domain_add_master()
1094 if ((smmu->features & ARM_SMMU_FEAT_STREAM_MATCH) && !cfg->smrs) in arm_smmu_domain_remove_master()
1102 u32 idx = cfg->smrs ? cfg->smrs[i].idx : cfg->streamids[i]; in arm_smmu_domain_remove_master()