Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Alan Tull and committed by
Greg Kroah-Hartman
bbaa9cd3 89760937

+1 -1
-1
drivers/fpga/fpga-region.c
··· 183 183 region->dev.parent = dev; 184 184 region->dev.of_node = dev->of_node; 185 185 region->dev.id = id; 186 - dev_set_drvdata(dev, region); 187 186 188 187 ret = dev_set_name(&region->dev, "region%d", id); 189 188 if (ret)
+1
drivers/fpga/of-fpga-region.c
··· 438 438 goto eprobe_mgr_put; 439 439 440 440 of_platform_populate(np, fpga_region_of_match, NULL, &region->dev); 441 + dev_set_drvdata(dev, region); 441 442 442 443 dev_info(dev, "FPGA Region probed\n"); 443 444