aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/fpga/fpga-region.h
diff options
context:
space:
mode:
authorAlan Tull <atull@kernel.org>2018-05-16 19:49:57 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-05-25 12:23:56 -0400
commit9f368977b4589e2fe0b9d3a4cbaf11ff6a58ecf5 (patch)
tree7b2e8d00ea068aa78dc308bb9d7c8cd4d55017bf /include/linux/fpga/fpga-region.h
parent371cd1b1fdabb33603340559049e46dfeae45b1e (diff)
fpga: region: change api, add fpga_region_create/free
Add fpga_region_create/free API functions. Change fpga_region_register to take FPGA region struct as the only parameter. Change fpga_region_unregister to return void. struct fpga_region *fpga_region_create(struct device *dev, struct fpga_manager *mgr, int (*get_bridges)(struct fpga_region *)); void fpga_region_free(struct fpga_region *region); int fpga_region_register(struct fpga_region *region); void fpga_region_unregister(struct fpga_region *region); Remove groups storage from struct fpga_region, it's not needed. Callers can just "region->dev.groups = groups;" after calling fpga_region_create. Update the drivers that call fpga_region_register with the new API. Signed-off-by: Alan Tull <atull@kernel.org> Signed-off-by: Moritz Fischer <mdf@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'include/linux/fpga/fpga-region.h')
-rw-r--r--include/linux/fpga/fpga-region.h11
1 files changed, 7 insertions, 4 deletions
diff --git a/include/linux/fpga/fpga-region.h b/include/linux/fpga/fpga-region.h
index b6520318ab9c..f2e215bd1330 100644
--- a/include/linux/fpga/fpga-region.h
+++ b/include/linux/fpga/fpga-region.h
@@ -14,7 +14,6 @@
14 * @info: FPGA image info 14 * @info: FPGA image info
15 * @priv: private data 15 * @priv: private data
16 * @get_bridges: optional function to get bridges to a list 16 * @get_bridges: optional function to get bridges to a list
17 * @groups: optional attribute groups.
18 */ 17 */
19struct fpga_region { 18struct fpga_region {
20 struct device dev; 19 struct device dev;
@@ -24,7 +23,6 @@ struct fpga_region {
24 struct fpga_image_info *info; 23 struct fpga_image_info *info;
25 void *priv; 24 void *priv;
26 int (*get_bridges)(struct fpga_region *region); 25 int (*get_bridges)(struct fpga_region *region);
27 const struct attribute_group **groups;
28}; 26};
29 27
30#define to_fpga_region(d) container_of(d, struct fpga_region, dev) 28#define to_fpga_region(d) container_of(d, struct fpga_region, dev)
@@ -34,7 +32,12 @@ struct fpga_region *fpga_region_class_find(
34 int (*match)(struct device *, const void *)); 32 int (*match)(struct device *, const void *));
35 33
36int fpga_region_program_fpga(struct fpga_region *region); 34int fpga_region_program_fpga(struct fpga_region *region);
37int fpga_region_register(struct device *dev, struct fpga_region *region); 35
38int fpga_region_unregister(struct fpga_region *region); 36struct fpga_region
37*fpga_region_create(struct device *dev, struct fpga_manager *mgr,
38 int (*get_bridges)(struct fpga_region *));
39void fpga_region_free(struct fpga_region *region);
40int fpga_region_register(struct fpga_region *region);
41void fpga_region_unregister(struct fpga_region *region);
39 42
40#endif /* _FPGA_REGION_H */ 43#endif /* _FPGA_REGION_H */