From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S935175AbdBQWCX (ORCPT ); Fri, 17 Feb 2017 17:02:23 -0500 Received: from mail-qk0-f194.google.com ([209.85.220.194]:35027 "EHLO mail-qk0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934415AbdBQWCW (ORCPT ); Fri, 17 Feb 2017 17:02:22 -0500 MIME-Version: 1.0 In-Reply-To: References: <1487175261-7051-1-git-send-email-atull@kernel.org> <1487175261-7051-5-git-send-email-atull@kernel.org> From: Alan Tull Date: Fri, 17 Feb 2017 16:02:20 -0600 Message-ID: Subject: Re: [RFC 4/8] doc: fpga-mgr: separate getting/locking FPGA manager To: Moritz Fischer Cc: Jason Gunthorpe , Linux Kernel Mailing List , linux-fpga@vger.kernel.org Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Fri, Feb 17, 2017 at 11:52 AM, Moritz Fischer wrote: > Alan, > > small nits inline Hi Moritz, Thanks for the review! Alan > > On Wed, Feb 15, 2017 at 8:14 AM, Alan Tull wrote: >> Document that getting a reference to a FPGA Manager has been >> separated from locking the FPGA Mangager for use. >> >> fpga_mgr_lock/unlock functions get/release mutex. >> >> of_fpga_mgr_get, fpga_mgr_get, and fpga_mgr_put no longer lock >> the FPGA manager mutex. >> >> This makes it more straigtforward to save a reference to >> a FPGA manager and only attempting to lock it when programming >> the FPGA. >> >> Signed-off-by: Alan Tull > Acked-by: Moritz Fischer > >> --- >> Documentation/fpga/fpga-mgr.txt | 19 ++++++++++++++++++- >> 1 file changed, 18 insertions(+), 1 deletion(-) >> >> diff --git a/Documentation/fpga/fpga-mgr.txt b/Documentation/fpga/fpga-mgr.txt >> index 78f197f..06d5d5b 100644 >> --- a/Documentation/fpga/fpga-mgr.txt >> +++ b/Documentation/fpga/fpga-mgr.txt >> @@ -53,13 +53,26 @@ To get/put a reference to a FPGA manager: >> struct fpga_manager *of_fpga_mgr_get(struct device_node *node); >> struct fpga_manager *fpga_mgr_get(struct device *dev); >> >> -Given a DT node or device, get an exclusive reference to a FPGA manager. >> +Given a DT node or device, get an reference to a FPGA manager. Pointer > > Nits: get *a* reference, 'A' pointer or 'The' pointer. > >> +can be saved until you are ready to program the FPGA. >> >> void fpga_mgr_put(struct fpga_manager *mgr); >> >> Release the reference. >> >> >> +To get exclusive control of a FPGA manager: >> +------------------------------------------- >> + >> + int fpga_mgr_lock(struct fpga_magager *mgr); >> + >> +Call fpga_mgr_lock and verify that it returns 0 before attempting to >> +program the FPGA. >> + >> + void fpga_mgr_unlock(struct fpga_magager *mgr); >> + >> +Call fpga_mgr_unlock when done programming the FPGA. >> + >> To register or unregister the low level FPGA-specific driver: >> ------------------------------------------------------------- >> >> @@ -95,11 +108,13 @@ int ret; >> >> /* Get exclusive control of FPGA manager */ >> struct fpga_manager *mgr = of_fpga_mgr_get(mgr_node); >> +ret = fpga_mgr_lock(mgr); >> >> /* Load the buffer to the FPGA */ >> ret = fpga_mgr_buf_load(mgr, &info, buf, count); >> >> /* Release the FPGA manager */ >> +fpga_mgr_unlock(mgr); >> fpga_mgr_put(mgr); >> >> >> @@ -124,11 +139,13 @@ int ret; >> >> /* Get exclusive control of FPGA manager */ >> struct fpga_manager *mgr = of_fpga_mgr_get(mgr_node); >> +ret = fpga_mgr_lock(mgr); >> >> /* Get the firmware image (path) and load it to the FPGA */ >> ret = fpga_mgr_firmware_load(mgr, &info, path); >> >> /* Release the FPGA manager */ >> +fpga_mgr_unlock(mgr); >> fpga_mgr_put(mgr); >> >> >> -- >> 2.7.4 >> > > Cheers, > > Moritz