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 */ |
