aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/fpga/fpga-region.c
diff options
context:
space:
mode:
authorAlan Tull <atull@kernel.org>2017-11-15 14:20:11 -0600
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2017-11-28 16:30:36 +0100
commit9c1c4b2753fea36a072e78a5efc82fca0d13b455 (patch)
treedfac82fbde45ad1a5fd62aef49b82bf995509d14 /drivers/fpga/fpga-region.c
parentLinux 4.15-rc1 (diff)
downloadlinux-dev-9c1c4b2753fea36a072e78a5efc82fca0d13b455.tar.xz
linux-dev-9c1c4b2753fea36a072e78a5efc82fca0d13b455.zip
fpga: bridge: support getting bridge from device
Add two functions for getting the FPGA bridge from the device rather than device tree node. This is to enable writing code that will support using FPGA bridges without device tree. Rename one old function to make it clear that it is device tree-ish. This leaves us with 3 functions for getting a bridge: * fpga_bridge_get Get the bridge given the device. * fpga_bridges_get_to_list Given the device, get the bridge and add it to a list. * of_fpga_bridges_get_to_list Renamed from priviously existing fpga_bridges_get_to_list. Given the device node, get the bridge and add it to a list. Signed-off-by: Alan Tull <atull@kernel.org> Acked-by: Moritz Fischer <mdf@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'drivers/fpga/fpga-region.c')
-rw-r--r--drivers/fpga/fpga-region.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/drivers/fpga/fpga-region.c b/drivers/fpga/fpga-region.c
index d9ab7c75b14f..9175556215b1 100644
--- a/drivers/fpga/fpga-region.c
+++ b/drivers/fpga/fpga-region.c
@@ -183,11 +183,14 @@ static int fpga_region_get_bridges(struct fpga_region *region,
int i, ret;
/* If parent is a bridge, add to list */
- ret = fpga_bridge_get_to_list(region_np->parent, region->info,
- &region->bridge_list);
+ ret = of_fpga_bridge_get_to_list(region_np->parent, region->info,
+ &region->bridge_list);
+
+ /* -EBUSY means parent is a bridge that is under use. Give up. */
if (ret == -EBUSY)
return ret;
+ /* Zero return code means parent was a bridge and was added to list. */
if (!ret)
parent_br = region_np->parent;
@@ -207,8 +210,8 @@ static int fpga_region_get_bridges(struct fpga_region *region,
continue;
/* If node is a bridge, get it and add to list */
- ret = fpga_bridge_get_to_list(br, region->info,
- &region->bridge_list);
+ ret = of_fpga_bridge_get_to_list(br, region->info,
+ &region->bridge_list);
/* If any of the bridges are in use, give up */
if (ret == -EBUSY) {