diff options
author | Alan Tull <atull@kernel.org> | 2018-05-16 19:49:57 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2018-05-25 12:23:56 -0400 |
commit | 9f368977b4589e2fe0b9d3a4cbaf11ff6a58ecf5 (patch) | |
tree | 7b2e8d00ea068aa78dc308bb9d7c8cd4d55017bf /include/linux/fpga/fpga-region.h | |
parent | 371cd1b1fdabb33603340559049e46dfeae45b1e (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.h | 11 |
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 | */ |
19 | struct fpga_region { | 18 | struct 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 | ||
36 | int fpga_region_program_fpga(struct fpga_region *region); | 34 | int fpga_region_program_fpga(struct fpga_region *region); |
37 | int fpga_region_register(struct device *dev, struct fpga_region *region); | 35 | |
38 | int fpga_region_unregister(struct fpga_region *region); | 36 | struct fpga_region |
37 | *fpga_region_create(struct device *dev, struct fpga_manager *mgr, | ||
38 | int (*get_bridges)(struct fpga_region *)); | ||
39 | void fpga_region_free(struct fpga_region *region); | ||
40 | int fpga_region_register(struct fpga_region *region); | ||
41 | void fpga_region_unregister(struct fpga_region *region); | ||
39 | 42 | ||
40 | #endif /* _FPGA_REGION_H */ | 43 | #endif /* _FPGA_REGION_H */ |