Lines Matching refs:region

10 #include <linux/fpga/fpga-region.h>
22 { .compatible = "fpga-region", },
28 * of_fpga_region_find - find FPGA region
31 * Caller will need to put_device(&region->dev) when done.
42 * @np: device node of FPGA region
44 * Get FPGA Manager from "fpga-mgr" property or from ancestor region.
57 if (of_device_is_compatible(np, "fpga-region")) {
75 * @region: FPGA region
82 * Caller should call fpga_bridges_put(&region->bridge_list) when
88 static int of_fpga_region_get_bridges(struct fpga_region *region)
90 struct device *dev = &region->dev;
92 struct fpga_image_info *info = region->info;
98 &region->bridge_list);
130 &region->bridge_list);
135 fpga_bridges_put(&region->bridge_list);
144 * child_regions_with_firmware - Used to check the child region info.
150 * Return: 0 for OK or -EINVAL if child FPGA region adds firmware-name.
174 pr_err("firmware-name not allowed in child FPGA region: %pOF",
181 * of_fpga_region_parse_ov - parse and check overlay applied to region
183 * @region: FPGA region
184 * @overlay: overlay applied to the FPGA region
186 * Given an overlay applied to an FPGA region, parse the FPGA image specific
195 of_fpga_region_parse_ov(struct fpga_region *region,
198 struct device *dev = &region->dev;
203 if (region->info) {
210 * firmware-name property (would mean that an FPGA region that has
223 /* Read FPGA region properties from the overlay */
241 of_property_read_u32(overlay, "region-unfreeze-timeout-us",
244 of_property_read_u32(overlay, "region-freeze-timeout-us",
275 * @region: FPGA region that the overlay was applied to
286 static int of_fpga_region_notify_pre_apply(struct fpga_region *region,
289 struct device *dev = &region->dev;
293 info = of_fpga_region_parse_ov(region, nd->overlay);
301 if (region->info) {
306 region->info = info;
307 ret = fpga_region_program_fpga(region);
311 region->info = NULL;
320 * @region: FPGA region that was targeted by the overlay that was removed
324 * FPGA region.
326 static void of_fpga_region_notify_post_remove(struct fpga_region *region,
329 fpga_bridges_disable(&region->bridge_list);
330 fpga_bridges_put(&region->bridge_list);
331 fpga_image_info_free(region->info);
332 region->info = NULL;
342 * added to an fpga-region.
350 struct fpga_region *region;
370 region = of_fpga_region_find(nd->target);
371 if (!region)
377 ret = of_fpga_region_notify_pre_apply(region, nd);
381 of_fpga_region_notify_post_remove(region, nd);
385 put_device(&region->dev);
401 struct fpga_region *region;
405 /* Find the FPGA mgr specified by region or parent region. */
410 region = fpga_region_register(dev, mgr, of_fpga_region_get_bridges);
411 if (IS_ERR(region)) {
412 ret = PTR_ERR(region);
416 of_platform_populate(np, fpga_region_of_match, NULL, &region->dev);
417 platform_set_drvdata(pdev, region);
430 struct fpga_region *region = platform_get_drvdata(pdev);
431 struct fpga_manager *mgr = region->mgr;
433 fpga_region_unregister(region);
443 .name = "of-fpga-region",