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