Commit c3328c5e authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman
Browse files

Merge tag 'fpga-for-5.15-early' of...

Merge tag 'fpga-for-5.15-early' of git://git.kernel.org/pub/scm/linux/kernel/git/mdf/linux-fpga

 into char-misc-next

Moritz writes:

FPGA Manager Changes for 5.15-rc1

FPGA Manager

- Navin's change removes a duplicate word in a comment
- Tom's change fixes a spelling mistake
- Mauro's change fixes up documentation
- Tom's second set adds wrappers to allow drivers not having to
  implement empty functions by moving checks into fpga-mgr core code
- My changes address a bunch of warnings

DFL

- Martin's change adds a new PCI ID for Silicom N501x PAC cards

All patches have been reviewed on the mailing list, and have been in the
last linux-next releases (as part of my for-next branch).

I did get a complaint about one of the commit messages w/ a Fixes: tags
which has been addressed.

Signed-offy-by: default avatarMoritz Fischer <mdf@kernel.org>

* tag 'fpga-for-5.15-early' of git://git.kernel.org/pub/scm/linux/kernel/git/mdf/linux-fpga:
  fpga: fpga-mgr: wrap the write_sg() op
  fpga: fpga-mgr: wrap the fpga_remove() op
  fpga: fpga-mgr: wrap the state() op
  fpga: fpga-mgr: wrap the status() op
  fpga: fpga-mgr: wrap the write() op
  fpga: fpga-mgr: make write_complete() op optional
  fpga: fpga-mgr: wrap the write_init() op
  fpga: zynqmp-fpga: Address warning about unused variable
  fpga: xilinx-pr-decoupler: Address warning about unused variable
  fpga: xiilnx-spi: Address warning about unused variable
  fpga: altera-freeze-bridge: Address warning about unused variable
  fpga: dfl: pci: add device IDs for Silicom N501x PAC cards
  fpga: fpga-bridge: removed repeated word
  fpga: fix spelling mistakes
  docs: driver-api: fpga: avoid using UTF-8 chars
parents 71e69d7a 630211a1
Loading
Loading
Loading
Loading
+5 −5
Original line number Diff line number Diff line
@@ -4,11 +4,11 @@ FPGA Bridge
API to implement a new FPGA bridge
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

* struct fpga_bridge  The FPGA Bridge structure
* struct fpga_bridge_ops  Low level Bridge driver ops
* devm_fpga_bridge_create()  Allocate and init a bridge struct
* fpga_bridge_register()  Register a bridge
* fpga_bridge_unregister()  Unregister a bridge
* struct fpga_bridge - The FPGA Bridge structure
* struct fpga_bridge_ops - Low level Bridge driver ops
* devm_fpga_bridge_create() - Allocate and init a bridge struct
* fpga_bridge_register() - Register a bridge
* fpga_bridge_unregister() - Unregister a bridge

.. kernel-doc:: include/linux/fpga/fpga-bridge.h
   :functions: fpga_bridge
+6 −6
Original line number Diff line number Diff line
@@ -101,12 +101,12 @@ in state.
API for implementing a new FPGA Manager driver
----------------------------------------------

* ``fpga_mgr_states``   Values for :c:expr:`fpga_manager->state`.
* struct fpga_manager   the FPGA manager struct
* struct fpga_manager_ops   Low level FPGA manager driver ops
* devm_fpga_mgr_create()   Allocate and init a manager struct
* fpga_mgr_register()   Register an FPGA manager
* fpga_mgr_unregister()   Unregister an FPGA manager
* ``fpga_mgr_states`` -  Values for :c:expr:`fpga_manager->state`.
* struct fpga_manager -  the FPGA manager struct
* struct fpga_manager_ops -  Low level FPGA manager driver ops
* devm_fpga_mgr_create() -  Allocate and init a manager struct
* fpga_mgr_register() -  Register an FPGA manager
* fpga_mgr_unregister() -  Unregister an FPGA manager

.. kernel-doc:: include/linux/fpga/fpga-mgr.h
   :functions: fpga_mgr_states
+4 −4
Original line number Diff line number Diff line
@@ -84,10 +84,10 @@ will generate that list. Here's some sample code of what to do next::
API for programming an FPGA
---------------------------

* fpga_region_program_fpga()   Program an FPGA
* fpga_image_info()   Specifies what FPGA image to program
* fpga_image_info_alloc()   Allocate an FPGA image info struct
* fpga_image_info_free()   Free an FPGA image info struct
* fpga_region_program_fpga() -  Program an FPGA
* fpga_image_info() -  Specifies what FPGA image to program
* fpga_image_info_alloc() -  Allocate an FPGA image info struct
* fpga_image_info_free() -  Free an FPGA image info struct

.. kernel-doc:: drivers/fpga/fpga-region.c
   :functions: fpga_region_program_fpga
+10 −10
Original line number Diff line number Diff line
@@ -45,19 +45,19 @@ An example of usage can be seen in the probe function of [#f2]_.
API to add a new FPGA region
----------------------------

* struct fpga_region  The FPGA region struct
* devm_fpga_region_create()  Allocate and init a region struct
* fpga_region_register()   Register an FPGA region
* fpga_region_unregister()   Unregister an FPGA region
* struct fpga_region - The FPGA region struct
* devm_fpga_region_create() - Allocate and init a region struct
* fpga_region_register() -  Register an FPGA region
* fpga_region_unregister() -  Unregister an FPGA region

The FPGA region's probe function will need to get a reference to the FPGA
Manager it will be using to do the programming.  This usually would happen
during the region's probe function.

* fpga_mgr_get()  Get a reference to an FPGA manager, raise ref count
* of_fpga_mgr_get()   Get a reference to an FPGA manager, raise ref count,
* fpga_mgr_get() - Get a reference to an FPGA manager, raise ref count
* of_fpga_mgr_get() -  Get a reference to an FPGA manager, raise ref count,
  given a device node.
* fpga_mgr_put()  Put an FPGA manager
* fpga_mgr_put() - Put an FPGA manager

The FPGA region will need to specify which bridges to control while programming
the FPGA.  The region driver can build a list of bridges during probe time
@@ -66,11 +66,11 @@ the list of bridges to program just before programming
(:c:expr:`fpga_region->get_bridges`).  The FPGA bridge framework supplies the
following APIs to handle building or tearing down that list.

* fpga_bridge_get_to_list()  Get a ref of an FPGA bridge, add it to a
* fpga_bridge_get_to_list() - Get a ref of an FPGA bridge, add it to a
  list
* of_fpga_bridge_get_to_list()  Get a ref of an FPGA bridge, add it to a
* of_fpga_bridge_get_to_list() - Get a ref of an FPGA bridge, add it to a
  list, given a device node
* fpga_bridges_put()  Given a list of bridges, put them
* fpga_bridges_put() - Given a list of bridges, put them

.. kernel-doc:: include/linux/fpga/fpga-region.h
   :functions: fpga_region
+2 −2
Original line number Diff line number Diff line
@@ -10,7 +10,7 @@ Authors:
- Xu Yilun <yilun.xu@intel.com>

The Device Feature List (DFL) FPGA framework (and drivers according to
this framework) hides the very details of low layer hardwares and provides
this framework) hides the very details of low layer hardware and provides
unified interfaces to userspace. Applications could use these interfaces to
configure, enumerate, open and access FPGA accelerators on platforms which
implement the DFL in the device memory. Besides this, the DFL framework
@@ -205,7 +205,7 @@ given Device Feature Lists and create platform devices for feature devices
also abstracts operations for the private features and exposes common ops to
feature device drivers.

The FPGA DFL Device could be different hardwares, e.g. PCIe device, platform
The FPGA DFL Device could be different hardware, e.g. PCIe device, platform
device and etc. Its driver module is always loaded first once the device is
created by the system. This driver plays an infrastructural role in the
driver architecture. It locates the DFLs in the device memory, handles them
Loading