[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAP=VYLpxK7qt25pmC2byYRm1zVbVrkf2f1+xctoSTSAy+n9QdA@mail.gmail.com>
Date: Thu, 14 Jul 2016 16:54:13 -0400
From: Paul Gortmaker <paul.gortmaker@...driver.com>
To: Alan Tull <atull@...nsource.altera.com>
Cc: Rob Herring <robh+dt@...nel.org>,
Mark Rutland <mark.rutland@....com>,
Greg Kroah-Hartman <gregkh@...uxfoundation.org>,
Moritz Fischer <moritz.fischer@...us.com>,
Ian Campbell <ijc+devicetree@...lion.org.uk>,
Dinh Nguyen <dinguyen@...nsource.altera.com>,
devicetree@...r.kernel.org,
"linux-arm-kernel@...ts.infradead.org"
<linux-arm-kernel@...ts.infradead.org>,
LKML <linux-kernel@...r.kernel.org>, delicious.quinoa@...il.com
Subject: Re: [PATCH v18 4/6] fpga: add fpga bridge framework
On Tue, Jul 12, 2016 at 3:36 PM, Alan Tull <atull@...nsource.altera.com> wrote:
> This framework adds API functions for enabling/
> disabling FPGA bridges under kernel control.
>
> This allows the Linux kernel to disable FPGA bridges
> during FPGA reprogramming and to enable FPGA bridges
> when FPGA reprogramming is done. This framework is
> be manufacturer-agnostic, allowing it to be used in
> interfaces that use the FPGA Manager Framework to
> reprogram FPGA's.
>
> The functions are:
> * of_fpga_bridge_get
> * fpga_bridge_put
> Get/put an exclusive reference to a FPGA bridge.
>
> * fpga_bridge_enable
> * fpga_bridge_disable
> Enable/Disable traffic through a bridge.
>
> * fpga_bridge_register
> * fpga_bridge_unregister
> Register/unregister a device-specific low level FPGA
> Bridge driver.
>
> Get an exclusive reference to a bridge and add it to a list:
> * fpga_bridge_get_to_list
>
> To enable/disable/put a set of bridges that are on a list:
> * fpga_bridges_enable
> * fpga_bridges_disable
> * fpga_bridges_put
>
> Signed-off-by: Alan Tull <atull@...nsource.altera.com>
> ---
> v2: Minor cleanup
> v12: Bump version to line up with simple fpga bus
> Remove sysfs
> Improve get/put functions, get the low level driver too.
> Clean up class implementation
> Add kernel doc documentation
> Rename (un)register_fpga_bridge -> fpga_bridge_(un)register
> v13: Add inlined empty functions for if not CONFIG_FPGA_BRIDGE
> Clean up debugging
> Remove unneeded #include in .h
> Remove unnecessary prints
> Remove 'label' DT binding.
> Document the mutex
> v14: Allow bridges with no ops
> *const* struct fpga_bridge_ops
> Add functions to git/put/enable/disable list of bridges
> Add list node to struct fpga_bridge
> Do of_node_get/put in of_fpga_bridge_get()
> Add r/o attributes: name and state
> v15: No change in this patch for v15 of this patch set
> v16: Remove of_get_fpga_bus function
> v17: No change to this patch in v17 of patch set
> v18: No change to this patch in v18 of patch set
> ---
> drivers/fpga/Kconfig | 7 +
> drivers/fpga/Makefile | 3 +
> drivers/fpga/fpga-bridge.c | 388 +++++++++++++++++++++++++++++++++++++++
> include/linux/fpga/fpga-bridge.h | 55 ++++++
> 4 files changed, 453 insertions(+)
> create mode 100644 drivers/fpga/fpga-bridge.c
> create mode 100644 include/linux/fpga/fpga-bridge.h
>
> diff --git a/drivers/fpga/Kconfig b/drivers/fpga/Kconfig
> index d614102..46e20af 100644
> --- a/drivers/fpga/Kconfig
> +++ b/drivers/fpga/Kconfig
> @@ -25,6 +25,13 @@ config FPGA_MGR_ZYNQ_FPGA
> help
> FPGA manager driver support for Xilinx Zynq FPGAs.
>
> +config FPGA_BRIDGE
> + bool "FPGA Bridge Framework"
Same here. A bool Kconfig but module.h etc. used in the driver.
Either make the code modular with a tristate if there is a valid
use case for that, or get rid of the modular references.
Thanks,
Paul.
--
Powered by blists - more mailing lists