Lines Matching refs:cdcfg
968 struct arm_smmu_ctx_desc_cfg *cdcfg = &smmu_domain->s1_cfg.cdcfg;
971 return cdcfg->cdtab + ssid * CTXDESC_CD_DWORDS;
974 l1_desc = &cdcfg->l1_desc[idx];
979 l1ptr = cdcfg->cdtab + idx * CTXDESC_L1_DESC_DWORDS;
1072 struct arm_smmu_ctx_desc_cfg *cdcfg = &cfg->cdcfg;
1079 cdcfg->num_l1_ents = max_contexts;
1084 cdcfg->num_l1_ents = DIV_ROUND_UP(max_contexts,
1087 cdcfg->l1_desc = devm_kcalloc(smmu->dev, cdcfg->num_l1_ents,
1088 sizeof(*cdcfg->l1_desc),
1090 if (!cdcfg->l1_desc)
1093 l1size = cdcfg->num_l1_ents * (CTXDESC_L1_DESC_DWORDS << 3);
1096 cdcfg->cdtab = dmam_alloc_coherent(smmu->dev, l1size, &cdcfg->cdtab_dma,
1098 if (!cdcfg->cdtab) {
1107 if (cdcfg->l1_desc) {
1108 devm_kfree(smmu->dev, cdcfg->l1_desc);
1109 cdcfg->l1_desc = NULL;
1119 struct arm_smmu_ctx_desc_cfg *cdcfg = &smmu_domain->s1_cfg.cdcfg;
1121 if (cdcfg->l1_desc) {
1124 for (i = 0; i < cdcfg->num_l1_ents; i++) {
1125 if (!cdcfg->l1_desc[i].l2ptr)
1129 cdcfg->l1_desc[i].l2ptr,
1130 cdcfg->l1_desc[i].l2ptr_dma);
1132 devm_kfree(smmu->dev, cdcfg->l1_desc);
1133 cdcfg->l1_desc = NULL;
1135 l1size = cdcfg->num_l1_ents * (CTXDESC_L1_DESC_DWORDS << 3);
1137 l1size = cdcfg->num_l1_ents * (CTXDESC_CD_DWORDS << 3);
1140 dmam_free_coherent(smmu->dev, l1size, cdcfg->cdtab, cdcfg->cdtab_dma);
1141 cdcfg->cdtab_dma = 0;
1142 cdcfg->cdtab = NULL;
1291 val |= (s1_cfg->cdcfg.cdtab_dma & STRTAB_STE_0_S1CTXPTR_MASK) |
1843 if (cfg->cdcfg.cdtab)