summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Tull <atull@kernel.org>2018-05-16 18:49:54 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2018-05-25 18:23:55 +0200
commitbbaa9cd3a605e337cefc566e5ac1b110763c8d1c (patch)
treec38257f4e57adb0d5ec9cd7b706dcc4a0d509292
parent897609370d25c69e95a174dbd75df6e5bc3a26c8 (diff)
downloadlinux-stable-bbaa9cd3a605e337cefc566e5ac1b110763c8d1c.tar.gz
linux-stable-bbaa9cd3a605e337cefc566e5ac1b110763c8d1c.tar.bz2
linux-stable-bbaa9cd3a605e337cefc566e5ac1b110763c8d1c.zip
fpga: region: don't use drvdata in common fpga code
Changes to fpga_region_register function to not set drvdata. Setting drvdata is fine for DT based devices that will have one region per platform device. However PCIe based devices may have multiple FPGA regions under one PCIe device. Without these changes, the PCIe solution has to create an extra device for each child region to hold drvdata. Signed-off-by: Alan Tull <atull@kernel.org> Reported-by: Jiuyue Ma <majiuyue@huawei.com> Signed-off-by: Moritz Fischer <mdf@kernel.org> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--drivers/fpga/fpga-region.c1
-rw-r--r--drivers/fpga/of-fpga-region.c1
2 files changed, 1 insertions, 1 deletions
diff --git a/drivers/fpga/fpga-region.c b/drivers/fpga/fpga-region.c
index cb0603e07ff8..f634a8ed5e2c 100644
--- a/drivers/fpga/fpga-region.c
+++ b/drivers/fpga/fpga-region.c
@@ -183,7 +183,6 @@ int fpga_region_register(struct device *dev, struct fpga_region *region)
region->dev.parent = dev;
region->dev.of_node = dev->of_node;
region->dev.id = id;
- dev_set_drvdata(dev, region);
ret = dev_set_name(&region->dev, "region%d", id);
if (ret)
diff --git a/drivers/fpga/of-fpga-region.c b/drivers/fpga/of-fpga-region.c
index 119ff75522f1..35e7e8c4a0cb 100644
--- a/drivers/fpga/of-fpga-region.c
+++ b/drivers/fpga/of-fpga-region.c
@@ -438,6 +438,7 @@ static int of_fpga_region_probe(struct platform_device *pdev)
goto eprobe_mgr_put;
of_platform_populate(np, fpga_region_of_match, NULL, &region->dev);
+ dev_set_drvdata(dev, region);
dev_info(dev, "FPGA Region probed\n");