This patch set goes on top of v6 of the non-dt support patchset that has been acked and I've asked Greg KH to send upstream.
This patchset changes the fpga_*_register functions to not set drvdata, and changes parameters for register/unregister functions. Also a bug fix due to changes in the DT overlay code. Setting drvdata is fine for DT based devices, that will have one manager, bridge, or region device per platform device. PCIe based devices may have multiple FPGA mgr/bridge/regions under one pcie device. Without these changes, PCIe-based solutions have to create an extra device for each child mgr/bridge/region to hold drvdata. Also changing the fpga_*_register/unregister functions to take the corresponding struct as the only parameter wherever they weren't already. * int fpga_bridge_register(struct fpga_bridge *br) * int fpga_mgr_register(struct fpga_manager *mgr) * int fpga_region_register(struct fpga_region *region) * void fpga_bridge_unregister(struct fpga_bridge *br) * void fpga_mgr_unregister(struct fpga_manager *mgr) * int fpga_region_unregister(struct fpga_region *region) Other changes: - Callers of fpga_(bridge|mgr)_register, are changed to alloc the bridge/mgr struct and partly fill it, adding name, ops and priv. - Caller uses devm for allocating the mgr/bridge structures. - Change the FPGA Region DT notifier to return NOTIFY_STOP if the overlay should be accepted. I posted a branch to the linux-fpga repo on kernel.org which has both the v6 non-DT support patchset and this v2 patchset for convenience. Branch name is next-20171113-non-dt-support-v6+v2 Alan Alan Tull (5): fpga: region: don't use drvdata in common fpga code fpga: manager: don't use drvdata in common fpga code fpga: bridge: don't use drvdata in common fpga code fpga: region: change fpga_region_register to have one param fpga: region: return NOTIFY_STOP if overlay shoud be accepted Documentation/fpga/fpga-mgr.txt | 24 ++++++++++++----- Documentation/fpga/fpga-region.txt | 3 +-- drivers/fpga/altera-cvp.c | 18 ++++++++++--- drivers/fpga/altera-fpga2sdram.c | 20 +++++++++++--- drivers/fpga/altera-freeze-bridge.c | 18 ++++++++++--- drivers/fpga/altera-hps2fpga.c | 16 ++++++++--- drivers/fpga/altera-pr-ip-core.c | 17 ++++++++++-- drivers/fpga/altera-ps-spi.c | 18 ++++++++++--- drivers/fpga/fpga-bridge.c | 53 ++++++++++++++----------------------- drivers/fpga/fpga-mgr.c | 49 +++++++++++++--------------------- drivers/fpga/fpga-region.c | 13 ++++++--- drivers/fpga/ice40-spi.c | 20 +++++++++++--- drivers/fpga/of-fpga-region.c | 9 ++++--- drivers/fpga/socfpga-a10.c | 16 ++++++++--- drivers/fpga/socfpga.c | 18 ++++++++++--- drivers/fpga/ts73xx-fpga.c | 18 ++++++++++--- drivers/fpga/xilinx-pr-decoupler.c | 15 ++++++++--- drivers/fpga/xilinx-spi.c | 18 ++++++++++--- drivers/fpga/zynq-fpga.c | 16 ++++++++--- include/linux/fpga/fpga-bridge.h | 7 ++--- include/linux/fpga/fpga-mgr.h | 8 +++--- include/linux/fpga/fpga-region.h | 4 ++- 22 files changed, 270 insertions(+), 128 deletions(-) -- 2.7.4