04 Sep, 2019

1 commit


15 Jul, 2019

1 commit

  • The contents of those directories were orphaned at the documentation
    body.

    While those directories could likely be moved to be inside some guide,
    I'm opting to just adding their indexes to the main one, removing the
    :orphan: and adding the SPDX header.

    For the drivers, the rationale is that the documentation contains
    a mix of Kernelspace, uAPI and admin-guide. So, better to keep them on
    separate directories, as we've be doing with similar subsystem-specific
    docs that were not split yet.

    For the others, well... I'm too lazy to do the move. Also, it
    seems to make sense to keep at least some of those at the main
    dir (like kbuild, for example). In any case, a latter patch
    could do the move.

    Signed-off-by: Mauro Carvalho Chehab
    Acked-by: Bartlomiej Zolnierkiewicz

    Mauro Carvalho Chehab
     

15 Jun, 2019

1 commit

  • The dfl.txt file is almost there. It needs just a few
    adjustments to be properly parsed.

    The conversion is actually:
    - add blank lines and identation in order to identify paragraphs;
    - fix tables markups;
    - add some lists markups;
    - mark literal blocks;
    - adjust title markups.

    At its new index.rst, let's add a :orphan: while this is not linked to
    the main index.rst file, in order to avoid build warnings.

    Signed-off-by: Mauro Carvalho Chehab
    Signed-off-by: Jonathan Corbet

    Mauro Carvalho Chehab
     

15 Jul, 2018

1 commit


26 May, 2018

5 commits

  • 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: Alan Tull
    Signed-off-by: Greg Kroah-Hartman

    Alan Tull
     
  • 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: Alan Tull
    Signed-off-by: Greg Kroah-Hartman

    Alan Tull
     
  • 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: Alan Tull
    Signed-off-by: Greg Kroah-Hartman

    Alan Tull
     
  • 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: Alan Tull
    Signed-off-by: Moritz Fischer
    Signed-off-by: Greg Kroah-Hartman

    Alan Tull
     
  • 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: Alan Tull
    [Moritz: Fixup whitespace issue]
    Reported-by: Jiuyue Ma
    Signed-off-by: Moritz Fischer
    Signed-off-by: Greg Kroah-Hartman

    Alan Tull
     

28 Nov, 2017

2 commits

  • 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: Alan Tull
    Acked-by: Moritz Fischer
    Signed-off-by: Greg Kroah-Hartman

    Alan Tull
     
  • 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: Alan Tull
    Acked-by: Moritz Fischer
    Signed-off-by: Greg Kroah-Hartman

    Alan Tull
     

10 Feb, 2017

1 commit

  • Requiring contiguous kernel memory is not a good idea, this is a limited
    resource and allocation can fail under normal work loads.

    This introduces a .write_sg op that supporting drivers can provide
    to DMA directly from dis-contiguous memory and a new entry point
    fpga_mgr_buf_load_sg that users can call to directly provide page
    lists.

    The full matrix of compatibility is provided, either the linear or sg
    interface can be used by the user with a driver supporting either
    interface.

    A notable change for drivers is that the .write op can now be called
    multiple times.

    Signed-off-by: Jason Gunthorpe
    Acked-by: Alan Tull
    Acked-by: Moritz Fischer
    Signed-off-by: Greg Kroah-Hartman

    Jason Gunthorpe
     

30 Nov, 2016

1 commit

  • This interface was designed for streaming, but write_init's buf
    argument has an unclear purpose. Define it to be the first bytes
    of the bitstream. Each driver gets to set how many bytes (at most)
    it wants to see. Short bitstreams will be passed through as-is, while
    long ones will be truncated.

    The intent is to allow drivers to peek at the header before the transfer
    actually starts.

    Signed-off-by: Jason Gunthorpe
    Acked-by: Alan Tull

    Jason Gunthorpe
     

11 Nov, 2016

2 commits

  • This patch adds a minor change in the FPGA Manager API
    to hold information that is specific to an FPGA image
    file. This change is expected to bring little, if any,
    pain.

    An FPGA image file will have particulars that affect how the
    image is programmed to the FPGA. One example is that
    current 'flags' currently has one bit which shows whether the
    FPGA image was built for full reconfiguration or partial
    reconfiguration. Another example is timeout values for
    enabling or disabling the bridges in the FPGA. As the
    complexity of the FPGA design increases, the bridges in the
    FPGA may take longer times to enable or disable.

    This patch documents the change in the FPGA Manager API
    functions, replacing the 'u32 flag' parameter with a pointer
    to struct fpga_image_info.

    Signed-off-by: Alan Tull
    Acked-by: Moritz Fischer
    Signed-off-by: Greg Kroah-Hartman

    Alan Tull
     
  • The intent is to provide a non-DT method of getting
    ahold of a FPGA manager to do some FPGA programming.

    This patch refactors of_fpga_mgr_get() to reuse most of it
    while adding a new method fpga_mgr_get() for getting a
    pointer to a fpga manager struct, given the device.

    Signed-off-by: Alan Tull
    Signed-off-by: Greg Kroah-Hartman

    Alan Tull
     

08 Oct, 2015

1 commit