Lines Matching refs:finfo

751 	struct dfl_feature_info *finfo, *p;
799 list_for_each_entry_safe(finfo, p, &binfo->sub_features, node) {
805 feature->id = finfo->fid;
806 feature->revision = finfo->revision;
807 feature->dfh_version = finfo->dfh_version;
809 if (finfo->param_size) {
811 finfo->params, finfo->param_size,
816 feature->param_size = finfo->param_size;
829 &finfo->mmio_res);
834 fdata->resources[res_idx++] = finfo->mmio_res;
837 if (finfo->nr_irqs) {
838 ctx = devm_kcalloc(binfo->dev, finfo->nr_irqs,
843 for (i = 0; i < finfo->nr_irqs; i++)
845 binfo->irq_table[finfo->irq_base + i];
848 feature->nr_irqs = finfo->nr_irqs;
851 list_del(&finfo->node);
852 kfree(finfo);
949 struct dfl_feature_info *finfo, *p;
951 list_for_each_entry_safe(finfo, p, &binfo->sub_features, node) {
952 list_del(&finfo->node);
953 kfree(finfo);
1025 resource_size_t ofst, struct dfl_feature_info *finfo)
1029 void *params = finfo->params;
1031 u16 fid = finfo->fid;
1036 switch (finfo->dfh_version) {
1074 p = find_param(params, finfo->param_size, DFHv1_PARAM_ID_MSI_X);
1084 dev_warn(binfo->dev, "unexpected DFH version %d\n", finfo->dfh_version);
1089 finfo->irq_base = 0;
1090 finfo->nr_irqs = 0;
1113 finfo->irq_base = ibase;
1114 finfo->nr_irqs = inr;
1155 struct dfl_feature_info *finfo;
1185 finfo = kzalloc(struct_size(finfo, params, dfh_psize / sizeof(u64)), GFP_KERNEL);
1186 if (!finfo)
1189 memcpy_fromio(finfo->params, binfo->ioaddr + ofst + DFHv1_PARAM_HDR, dfh_psize);
1190 finfo->param_size = dfh_psize;
1192 finfo->fid = fid;
1193 finfo->revision = revision;
1194 finfo->dfh_version = dfh_ver;
1209 finfo->mmio_res.flags = IORESOURCE_MEM;
1210 finfo->mmio_res.start = start;
1211 finfo->mmio_res.end = end;
1213 ret = parse_feature_irqs(binfo, ofst, finfo);
1215 kfree(finfo);
1219 list_add_tail(&finfo->node, &binfo->sub_features);