From: Alan Tull <atull@kernel.org>
To: Moritz Fischer <moritz.fischer@ettus.com>
Cc: Alan Tull <atull@kernel.org>,
linux-kernel@vger.kernel.org, linux-fpga@vger.kernel.org
Subject: [PATCH v3 00/16] Enable upper layers using FPGA region w/o device tree
Date: Thu, 6 Jul 2017 13:47:00 -0500 [thread overview]
Message-ID: <20170706184716.3179-1-atull@kernel.org> (raw)
* Change the fpga-mgr API to have one fpga_mgr_load function
instead of three.
* Expose API functions for FPGA region
* Separate common FPGA region code from Device Tree support
* Add API functions for bridges where DT is not used.
This is 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.
Currently on the linux-fpga git repo as branch
next-20170615-fpga-region-api-v3
Patch 1 updates documentation and adds a FPGA region API doc.
Patch 2 adds non-dt support for fpga-bridges
Patch 3 changes the FPGA manager API, replacing the 3 FPGA load
functions with a single function that can handle whether the image
is a sg list, a contiguous buffer, or a firmware file.
Patch 4 separates getting a ref to a manager from locking it so
code can hang onto a ref without preventing other users from
using the manager to program a FPGA.
Patches 5 to 16 separate FPGA region common code from DT overlay
support and adds API functions. Functional code changes are separated
into a bunch of little patches. The last patch actually moves code to
of-fpga-region.c with only minor init/probe changes as this becomes
two modules.
I've tested this functionally for all patches separately.
Code changes from v3 are pretty small.
Changes in v3:
* rewrite fpga-region.txt
* fix bisect, test on each patch
* change fpga_region_program_fpga take only the region as a parameter
* update docs for fpga_region_program_fpga change
Changes in v2:
* split the final (large) patch into smaller patches for easier reviewability.
* documentation has been expanded
* reorder things, clean up
* dev_err instead of pr_err
* move functions that alloc/free image info from fpga-region.c to fpga-mgr.c
* move fpga-region.h to include/linux/fpga/
* add fpga_region_class_find to fpga-region.c
* move of_fpga_region_find to of-fpga-region.c
Alan Tull (16):
doc: fpga: update documents for the FPGA API
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
Documentation/fpga/fpga-mgr.txt | 133 +++++-----
Documentation/fpga/fpga-region.txt | 95 +++++++
Documentation/fpga/overview.txt | 23 ++
drivers/fpga/Kconfig | 13 +-
drivers/fpga/Makefile | 1 +
drivers/fpga/fpga-bridge.c | 110 +++++++--
drivers/fpga/fpga-mgr.c | 111 +++++++--
drivers/fpga/fpga-region.c | 463 ++++------------------------------
drivers/fpga/of-fpga-region.c | 495 +++++++++++++++++++++++++++++++++++++
include/linux/fpga/fpga-bridge.h | 7 +-
include/linux/fpga/fpga-mgr.h | 29 ++-
include/linux/fpga/fpga-region.h | 38 +++
12 files changed, 975 insertions(+), 543 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
next reply other threads:[~2017-07-06 18:47 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-07-06 18:47 Alan Tull [this message]
2017-07-06 18:47 ` [PATCH v3 01/16] doc: fpga: update documents for the FPGA API Alan Tull
2017-08-17 19:42 ` Moritz Fischer
2017-08-17 19:52 ` Alan Tull
2017-07-06 18:47 ` [PATCH v3 02/16] fpga: bridge: support getting bridge from device Alan Tull
2017-07-06 18:47 ` [PATCH v3 03/16] fpga: mgr: API change to replace fpga load functions with single function Alan Tull
2017-07-10 17:36 ` Moritz Fischer
2017-07-10 18:23 ` Alan Tull
2017-07-12 16:33 ` Alan Tull
2017-07-06 18:47 ` [PATCH v3 04/16] fpga: mgr: separate getting/locking FPGA manager Alan Tull
2017-07-06 18:47 ` [PATCH v3 05/16] fpga: region: use dev_err instead of pr_err Alan Tull
2017-07-06 18:47 ` [PATCH v3 06/16] fpga: region: remove unneeded of_node_get and put Alan Tull
2017-07-06 18:47 ` [PATCH v3 07/16] fpga: region: get mgr early on Alan Tull
2017-07-06 18:47 ` [PATCH v3 08/16] fpga: region: check for child regions before allocing image info Alan Tull
2017-07-06 18:47 ` [PATCH v3 09/16] fpga: region: fix slow warning with more than one overlay Alan Tull
2017-07-06 18:47 ` [PATCH v3 10/16] fpga: region: use image info as parameter for programming region Alan Tull
2017-07-06 18:47 ` [PATCH v3 11/16] fpga: region: separate out code that parses the overlay Alan Tull
2017-07-06 18:47 ` [PATCH v3 12/16] fpga: region: add fpga-region.h header Alan Tull
2017-07-06 18:47 ` [PATCH v3 13/16] fpga: region: rename some functions prior to moving Alan Tull
2017-07-06 18:47 ` [PATCH v3 14/16] fpga: region: add register/unregister functions Alan Tull
2017-07-06 18:47 ` [PATCH v3 15/16] fpga: region: add fpga_region_class_find Alan Tull
2017-07-06 18:47 ` [PATCH v3 16/16] fpga: region: move device tree support to of-fpga-region.c Alan Tull
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170706184716.3179-1-atull@kernel.org \
--to=atull@kernel.org \
--cc=linux-fpga@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=moritz.fischer@ettus.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.