Lines Matching refs:finfo
766 struct dfl_feature_info *finfo, *p; in build_info_commit_dev() local
810 list_for_each_entry_safe(finfo, p, &binfo->sub_features, node) { in build_info_commit_dev()
817 feature->id = finfo->fid; in build_info_commit_dev()
818 feature->revision = finfo->revision; in build_info_commit_dev()
819 feature->dfh_version = finfo->dfh_version; in build_info_commit_dev()
821 if (finfo->param_size) { in build_info_commit_dev()
823 finfo->params, finfo->param_size, in build_info_commit_dev()
828 feature->param_size = finfo->param_size; in build_info_commit_dev()
841 &finfo->mmio_res); in build_info_commit_dev()
846 fdev->resource[res_idx++] = finfo->mmio_res; in build_info_commit_dev()
849 if (finfo->nr_irqs) { in build_info_commit_dev()
850 ctx = devm_kcalloc(binfo->dev, finfo->nr_irqs, in build_info_commit_dev()
855 for (i = 0; i < finfo->nr_irqs; i++) in build_info_commit_dev()
857 binfo->irq_table[finfo->irq_base + i]; in build_info_commit_dev()
860 feature->nr_irqs = finfo->nr_irqs; in build_info_commit_dev()
863 list_del(&finfo->node); in build_info_commit_dev()
864 kfree(finfo); in build_info_commit_dev()
922 struct dfl_feature_info *finfo, *p; in build_info_free() local
932 list_for_each_entry_safe(finfo, p, &binfo->sub_features, node) { in build_info_free()
933 list_del(&finfo->node); in build_info_free()
934 kfree(finfo); in build_info_free()
1009 resource_size_t ofst, struct dfl_feature_info *finfo) in parse_feature_irqs() argument
1013 void *params = finfo->params; in parse_feature_irqs()
1015 u16 fid = finfo->fid; in parse_feature_irqs()
1020 switch (finfo->dfh_version) { in parse_feature_irqs()
1058 p = find_param(params, finfo->param_size, DFHv1_PARAM_ID_MSI_X); in parse_feature_irqs()
1068 dev_warn(binfo->dev, "unexpected DFH version %d\n", finfo->dfh_version); in parse_feature_irqs()
1073 finfo->irq_base = 0; in parse_feature_irqs()
1074 finfo->nr_irqs = 0; in parse_feature_irqs()
1097 finfo->irq_base = ibase; in parse_feature_irqs()
1098 finfo->nr_irqs = inr; in parse_feature_irqs()
1139 struct dfl_feature_info *finfo; in create_feature_instance() local
1169 finfo = kzalloc(struct_size(finfo, params, dfh_psize / sizeof(u64)), GFP_KERNEL); in create_feature_instance()
1170 if (!finfo) in create_feature_instance()
1173 memcpy_fromio(finfo->params, binfo->ioaddr + ofst + DFHv1_PARAM_HDR, dfh_psize); in create_feature_instance()
1174 finfo->param_size = dfh_psize; in create_feature_instance()
1176 finfo->fid = fid; in create_feature_instance()
1177 finfo->revision = revision; in create_feature_instance()
1178 finfo->dfh_version = dfh_ver; in create_feature_instance()
1193 finfo->mmio_res.flags = IORESOURCE_MEM; in create_feature_instance()
1194 finfo->mmio_res.start = start; in create_feature_instance()
1195 finfo->mmio_res.end = end; in create_feature_instance()
1197 ret = parse_feature_irqs(binfo, ofst, finfo); in create_feature_instance()
1199 kfree(finfo); in create_feature_instance()
1203 list_add_tail(&finfo->node, &binfo->sub_features); in create_feature_instance()