• Home
  • Raw
  • Download

Lines Matching refs:region

45 static struct fpga_region *fpga_region_get(struct fpga_region *region)  in fpga_region_get()  argument
47 struct device *dev = &region->dev; in fpga_region_get()
49 if (!mutex_trylock(&region->mutex)) { in fpga_region_get()
57 mutex_unlock(&region->mutex); in fpga_region_get()
63 return region; in fpga_region_get()
71 static void fpga_region_put(struct fpga_region *region) in fpga_region_put() argument
73 struct device *dev = &region->dev; in fpga_region_put()
79 mutex_unlock(&region->mutex); in fpga_region_put()
96 int fpga_region_program_fpga(struct fpga_region *region) in fpga_region_program_fpga() argument
98 struct device *dev = &region->dev; in fpga_region_program_fpga()
99 struct fpga_image_info *info = region->info; in fpga_region_program_fpga()
102 region = fpga_region_get(region); in fpga_region_program_fpga()
103 if (IS_ERR(region)) { in fpga_region_program_fpga()
105 return PTR_ERR(region); in fpga_region_program_fpga()
108 ret = fpga_mgr_lock(region->mgr); in fpga_region_program_fpga()
118 if (region->get_bridges) { in fpga_region_program_fpga()
119 ret = region->get_bridges(region); in fpga_region_program_fpga()
126 ret = fpga_bridges_disable(&region->bridge_list); in fpga_region_program_fpga()
132 ret = fpga_mgr_load(region->mgr, info); in fpga_region_program_fpga()
138 ret = fpga_bridges_enable(&region->bridge_list); in fpga_region_program_fpga()
144 fpga_mgr_unlock(region->mgr); in fpga_region_program_fpga()
145 fpga_region_put(region); in fpga_region_program_fpga()
150 if (region->get_bridges) in fpga_region_program_fpga()
151 fpga_bridges_put(&region->bridge_list); in fpga_region_program_fpga()
153 fpga_mgr_unlock(region->mgr); in fpga_region_program_fpga()
155 fpga_region_put(region); in fpga_region_program_fpga()
164 struct fpga_region *region = to_fpga_region(dev); in compat_id_show() local
166 if (!region->compat_id) in compat_id_show()
170 (unsigned long long)region->compat_id->id_h, in compat_id_show()
171 (unsigned long long)region->compat_id->id_l); in compat_id_show()
199 struct fpga_region *region; in fpga_region_create() local
202 region = kzalloc(sizeof(*region), GFP_KERNEL); in fpga_region_create()
203 if (!region) in fpga_region_create()
210 region->mgr = mgr; in fpga_region_create()
211 region->get_bridges = get_bridges; in fpga_region_create()
212 mutex_init(&region->mutex); in fpga_region_create()
213 INIT_LIST_HEAD(&region->bridge_list); in fpga_region_create()
215 device_initialize(&region->dev); in fpga_region_create()
216 region->dev.class = fpga_region_class; in fpga_region_create()
217 region->dev.parent = dev; in fpga_region_create()
218 region->dev.of_node = dev->of_node; in fpga_region_create()
219 region->dev.id = id; in fpga_region_create()
221 ret = dev_set_name(&region->dev, "region%d", id); in fpga_region_create()
225 return region; in fpga_region_create()
230 kfree(region); in fpga_region_create()
240 void fpga_region_free(struct fpga_region *region) in fpga_region_free() argument
242 ida_simple_remove(&fpga_region_ida, region->dev.id); in fpga_region_free()
243 kfree(region); in fpga_region_free()
249 struct fpga_region *region = *(struct fpga_region **)res; in devm_fpga_region_release() local
251 fpga_region_free(region); in devm_fpga_region_release()
275 struct fpga_region **ptr, *region; in devm_fpga_region_create() local
281 region = fpga_region_create(dev, mgr, get_bridges); in devm_fpga_region_create()
282 if (!region) { in devm_fpga_region_create()
285 *ptr = region; in devm_fpga_region_create()
289 return region; in devm_fpga_region_create()
299 int fpga_region_register(struct fpga_region *region) in fpga_region_register() argument
301 return device_add(&region->dev); in fpga_region_register()
311 void fpga_region_unregister(struct fpga_region *region) in fpga_region_unregister() argument
313 device_unregister(&region->dev); in fpga_region_unregister()