Skip to content
Snippets Groups Projects
  1. Jul 15, 2018
  2. May 25, 2018
    • Alan Tull's avatar
      documentation: fpga: move fpga-region.txt to driver-api · fcc80395
      Alan Tull authored
      
      Move Documentation/fpga/fpga-region.txt to
      driver-api/fpga/fpga-region.rst.  Including:
       - Add it to driver-api/fpga/index.rst
       - Formatting changes to build cleanly as ReST documentation
       - Some rewrites for better flow as a ReST doc such as moving
         API reference to the end of the doc
       - Rewrite API reference section to refer to kernel-doc
         documentation in fpga-region.c driver code
      
      Signed-off-by: default avatarAlan Tull <atull@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      fcc80395
    • Alan Tull's avatar
      documentation: fpga: move fpga-mgr.txt to driver-api · 547b822c
      Alan Tull authored
      
      Move Documentation/fpga/fpga-mgr.txt to driver-api/fpga/fpga-mgr.rst
      and:
       - Add to driver-api/fpga/index.rst
       - Format changes so documentation builds cleanly.
       - Minor rewrites that make the doc flow better as ReST documentation.
         - Such as moving API reference to end of doc
       - Change API reference section to refer to kernel-doc documentation in
         fpga-mgr.c driver code rather than statically defining each function.
      
      Signed-off-by: default avatarAlan Tull <atull@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      547b822c
    • Alan Tull's avatar
      Documentation: fpga: move fpga overview to driver-api · 66c472cd
      Alan Tull authored
      
      Start of moving Documentation/fpga/*.txt to driver-api, including:
       - Add new directory driver-api/fpga
       - Add new file driver-api/fpga/index.rst
       - Add driver-api/fpga to driver-api/index.rst
       - Move Documentation/fpga/overview.txt to driver-api/fpga/intro.rst
       - Formatting and rewrites so that intro.rst will build cleanly
         and form a good introduction to the rest of the docs to be added.
      
      Signed-off-by: default avatarAlan Tull <atull@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      66c472cd
    • Alan Tull's avatar
      fpga: region: change api, add fpga_region_create/free · 9f368977
      Alan Tull authored
      
      Add fpga_region_create/free API functions.
      
      Change fpga_region_register to take FPGA region struct as the only
      parameter.  Change fpga_region_unregister to return void.
      
        struct fpga_region *fpga_region_create(struct device *dev,
                              struct fpga_manager *mgr,
                              int (*get_bridges)(struct fpga_region *));
        void fpga_region_free(struct fpga_region *region);
        int fpga_region_register(struct fpga_region *region);
        void fpga_region_unregister(struct fpga_region *region);
      
      Remove groups storage from struct fpga_region, it's not
      needed.  Callers can just "region->dev.groups = groups;"
      after calling fpga_region_create.
      
      Update the drivers that call fpga_region_register with the new API.
      
      Signed-off-by: default avatarAlan Tull <atull@kernel.org>
      Signed-off-by: default avatarMoritz Fischer <mdf@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      9f368977
    • Alan Tull's avatar
      fpga: manager: change api, don't use drvdata · 7085e2a9
      Alan Tull authored
      
      Change fpga_mgr_register to not set or use drvdata.  This supports
      the case where a PCIe device has more than one manager.
      
      Add fpga_mgr_create/free functions.  Change fpga_mgr_register and
      fpga_mgr_unregister functions to take the mgr struct as their only
      parameter.
      
        struct fpga_manager *fpga_mgr_create(struct device *dev,
                      const char *name,
                      const struct fpga_manager_ops *mops,
                      void *priv);
        void fpga_mgr_free(struct fpga_manager *mgr);
        int fpga_mgr_register(struct fpga_manager *mgr);
        void fpga_mgr_unregister(struct fpga_manager *mgr);
      
      Update the drivers that call fpga_mgr_register with the new API.
      
      Signed-off-by: default avatarAlan Tull <atull@kernel.org>
      [Moritz: Fixup whitespace issue]
      Reported-by: default avatarJiuyue Ma <majiuyue@huawei.com>
      Signed-off-by: default avatarMoritz Fischer <mdf@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      7085e2a9
  3. Nov 28, 2017
    • Alan Tull's avatar
      fpga: mgr: separate getting/locking FPGA manager · ebf877a5
      Alan Tull authored
      
      Previously when the user gets a FPGA manager, it was locked
      and nobody else could use it for programming.
      
      This commit makes it straightforward to save a reference to an
      FPGA manager and only lock it when programming the FPGA.
      
      Add functions that get an FPGA manager's mutex for exclusive use:
      * fpga_mgr_lock
      * fpga_mgr_unlock
      
      The following functions no longer lock an FPGA manager's mutex:
      * of_fpga_mgr_get
      * fpga_mgr_get
      * fpga_mgr_put
      
      Signed-off-by: default avatarAlan Tull <atull@kernel.org>
      Acked-by: default avatarMoritz Fischer <mdf@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      ebf877a5
    • Alan Tull's avatar
      fpga: mgr: API change to replace fpga load functions with single function · 5cf0c7f6
      Alan Tull authored
      
      fpga-mgr has three methods for programming FPGAs, depending on
      whether the image is in a scatter gather list, a contiguous
      buffer, or a firmware file. This makes it difficult to write
      upper layers as the caller has to assume whether the FPGA image
      is in a sg table, as a single buffer, or a firmware file.
      This commit moves these parameters to struct fpga_image_info
      and adds a single function for programming fpgas.
      
      New functions:
      * fpga_mgr_load - given fpga manager and struct fpga_image_info,
         program the fpga.
      
      * fpga_image_info_alloc - alloc a struct fpga_image_info.
      
      * fpga_image_info_free - free a struct fpga_image_info.
      
      These three functions are unexported:
      * fpga_mgr_buf_load_sg
      * fpga_mgr_buf_load
      * fpga_mgr_firmware_load
      
      Also use devm_kstrdup to copy firmware_name so we aren't making
      assumptions about where it comes from when allocing/freeing the
      struct fpga_image_info.
      
      API documentation has been updated and a new document for
      FPGA region has been added.
      
      Signed-off-by: default avatarAlan Tull <atull@kernel.org>
      Acked-by: default avatarMoritz Fischer <mdf@kernel.org>
      Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
      5cf0c7f6
  4. Feb 10, 2017
  5. Nov 29, 2016
  6. Nov 10, 2016
  7. Oct 07, 2015
Loading