Lines Matching refs:smrs
268 struct arm_smmu_smr *smrs; member
1009 struct arm_smmu_smr *smrs; in arm_smmu_master_configure_smrs() local
1015 if (cfg->smrs) in arm_smmu_master_configure_smrs()
1018 smrs = kmalloc_array(cfg->num_streamids, sizeof(*smrs), GFP_KERNEL); in arm_smmu_master_configure_smrs()
1019 if (!smrs) { in arm_smmu_master_configure_smrs()
1034 smrs[i] = (struct arm_smmu_smr) { in arm_smmu_master_configure_smrs()
1043 u32 reg = SMR_VALID | smrs[i].id << SMR_ID_SHIFT | in arm_smmu_master_configure_smrs()
1044 smrs[i].mask << SMR_MASK_SHIFT; in arm_smmu_master_configure_smrs()
1045 writel_relaxed(reg, gr0_base + ARM_SMMU_GR0_SMR(smrs[i].idx)); in arm_smmu_master_configure_smrs()
1048 cfg->smrs = smrs; in arm_smmu_master_configure_smrs()
1053 __arm_smmu_free_bitmap(smmu->smr_map, smrs[i].idx); in arm_smmu_master_configure_smrs()
1054 kfree(smrs); in arm_smmu_master_configure_smrs()
1063 struct arm_smmu_smr *smrs = cfg->smrs; in arm_smmu_master_free_smrs() local
1065 if (!smrs) in arm_smmu_master_free_smrs()
1070 u8 idx = smrs[i].idx; in arm_smmu_master_free_smrs()
1076 cfg->smrs = NULL; in arm_smmu_master_free_smrs()
1077 kfree(smrs); in arm_smmu_master_free_smrs()
1095 idx = cfg->smrs ? cfg->smrs[i].idx : cfg->streamids[i]; in arm_smmu_domain_add_master()
1112 if ((smmu->features & ARM_SMMU_FEAT_STREAM_MATCH) && !cfg->smrs) in arm_smmu_domain_remove_master()
1120 u32 idx = cfg->smrs ? cfg->smrs[i].idx : cfg->streamids[i]; in arm_smmu_domain_remove_master()