Re: [PATCH v5 00/18] Enable upper layers using FPGA region w/o device tree

From: Moritz Fischer
Date: Wed Nov 15 2017 - 10:55:33 EST


On Tue, Oct 17, 2017 at 04:20:13PM -0500, Alan Tull wrote:
> * Change the fpga-mgr API to have one fpga_mgr_load function
> instead of three.
>
> * Separate common FPGA region code from Device Tree support
>
> * Expose API functions for FPGA regions
>
> * Add API functions for bridges where DT is not used.
>
> * clean up drivers/fpga/Kconfig
>
> * add attribute groups when registering a fpga manager, bridge, or region.
>
> Needed because the current FPGA layer has a couple of problems:
>
> * We now have 3 functions for programming a FPGA, depending on whether
> the image is in a sg list, a buffer, or firmware. So upper layers
> have to be written assuming where the image will be or will have to
> write extra code to maintain flexibility.
>
> * users who aren't using device tree are left to write their
> own code that is essentially a rewrite of FPGA region.
>
> v5 changes are small:
> * add back in fpga_mgr_put in of_fpga_region_remove
> * make __fpga_bridge_get static
> * move #ifndef before #includes in headers
> * Spelling fixes and other nits
>
> Alan Tull (18):
> fpga: bridge: support getting bridge from device
> fpga: mgr: API change to replace fpga load functions with single
> function
> fpga: mgr: separate getting/locking FPGA manager
> fpga: region: use dev_err instead of pr_err
> fpga: region: remove unneeded of_node_get and put
> fpga: region: get mgr early on
> fpga: region: check for child regions before allocing image info
> fpga: region: fix slow warning with more than one overlay
> fpga: region: use image info as parameter for programming region
> fpga: region: separate out code that parses the overlay
> fpga: region: add fpga-region.h header
> fpga: region: rename some functions prior to moving
> fpga: region: add register/unregister functions
> fpga: region: add fpga_region_class_find
> fpga: region: move device tree support to of-fpga-region.c
> fpga: of-fpga-region: accept overlays that don't program FPGA
> fpga: clean up fpga Kconfig
> fpga: add attribute groups

Anyways, feel free to add my Acked-by's to the series. I have tried to /
done my change with bridge locking on top of this, but it became quickly
ugly. Let's get this stuff merged, and I'll try with a follow up patch.

>
> Documentation/fpga/fpga-mgr.txt | 132 +++++-----
> Documentation/fpga/fpga-region.txt | 95 +++++++
> Documentation/fpga/overview.txt | 23 ++
> drivers/fpga/Kconfig | 103 ++++----
> drivers/fpga/Makefile | 1 +
> drivers/fpga/fpga-bridge.c | 111 +++++++--
> drivers/fpga/fpga-mgr.c | 121 +++++++--
> drivers/fpga/fpga-region.c | 464 ++++------------------------------
> drivers/fpga/of-fpga-region.c | 497 +++++++++++++++++++++++++++++++++++++
> include/linux/fpga/fpga-bridge.h | 15 +-
> include/linux/fpga/fpga-mgr.h | 39 ++-
> include/linux/fpga/fpga-region.h | 40 +++
> 12 files changed, 1044 insertions(+), 597 deletions(-)
> create mode 100644 Documentation/fpga/fpga-region.txt
> create mode 100644 Documentation/fpga/overview.txt
> create mode 100644 drivers/fpga/of-fpga-region.c
> create mode 100644 include/linux/fpga/fpga-region.h
>
> --
> 2.7.4
>
Thanks,

Moritz