16 Sep, 2016

1 commit


06 Sep, 2016

5 commits

  • Add yet another regex to kernel-doc to trap @param() references separately
    and not produce corrupt RST markup.

    Signed-off-by: Jonathan Corbet

    Jonathan Corbet
     
  • As far as I can tell, the handling of "..." arguments has never worked
    right, so any documentation provided was ignored in favor of "variable
    arguments." This makes kernel-doc handle "@...:" as documented. It does
    *not* fix spots in kerneldoc comments that don't follow that convention,
    but they are no more broken than before.

    Signed-off-by: Jonathan Corbet

    Jonathan Corbet
     
  • This is a trivial fix to correct upper bound addresses to always be
    inclusive. Previously, the majority of ranges specified were inclusive with a
    small minority specifying an exclusive upper bound. This patch fixes this
    inconsistency.

    Signed-off-by: Lorenzo Stoakes
    Signed-off-by: Jonathan Corbet

    Lorenzo Stoakes
     
  • The driver that used the 'nodisconnect' parameter was removed in
    commit 565bae6a4a8f ("[SCSI] 53c7xx: kill driver"). Related documentation
    was cleaned up in commit f37a7238d379 ("[SCSI] 53c7xx: fix removal
    fallout"), except for the remaining two mentions that are removed here.

    Signed-off-by: Finn Thain
    Reviewed-by: Geert Uytterhoeven
    Signed-off-by: Jonathan Corbet

    Finn Thain
     
  • - The guide currently says to pad the structure to a multiple of
    64-bits. This is not necessary in cases where the structure contains
    no 64-bit types. Clarify this concept to avoid unnecessary padding.
    - When using __u64 to hold user pointers, blindly trying to do a cast to
    a void __user * may generate a warning on 32-bit systems about a cast
    from an integer to a pointer of different size. There is a macro to
    deal with this which hides an ugly double cast. Add a reference to
    this macro.

    Signed-off-by: Laura Abbott
    Acked-by: Arnd Bergmann
    Signed-off-by: Jonathan Corbet

    Laura Abbott
     

01 Sep, 2016

5 commits

  • To build only the PDF of the media folder run::

    make SPHINXDIRS=media pdfdocs

    Signed-off-by: Markus Heiser
    Signed-off-by: Jonathan Corbet

    Markus Heiser
     
  • This extends the method to build only sub-folders to the targets
    "latexdocs" and "pdfdocs". To do so, a conf.py in the sub-folder is
    required, where the latex_documents of the sub-folder are
    defined. E.g. to build only gpu's PDF add the following to the
    Documentation/gpu/conf.py::

    +latex_documents = [
    + ("index", "gpu.tex", "Linux GPU Driver Developer's Guide",
    + "The kernel development community", "manual"),
    +]

    and run:

    make SPHINXDIRS=gpu pdfdocs

    Signed-off-by: Markus Heiser
    Signed-off-by: Jonathan Corbet

    Markus Heiser
     
  • The setup() function of a Sphinx-extension can return a dictionary. This
    is treated by Sphinx as metadata of the extension [1].

    With metadata "parallel_read_safe = True" a extension is marked as
    save for "parallel reading of source". This is needed if you want
    build in parallel with N processes. E.g.:

    make SPHINXOPTS=-j4 htmldocs

    will no longer log warnings like:

    WARNING: the foobar extension does not declare if it is safe for
    parallel reading, assuming it isn't - please ask the extension author
    to check and make it explicit.

    Add metadata to extensions:

    * kernel-doc
    * flat-table
    * kernel-include

    [1] http://www.sphinx-doc.org/en/stable/extdev/#extension-metadata

    Signed-off-by: Markus Heiser
    Tested-by: Mauro Carvalho Chehab
    Signed-off-by: Jonathan Corbet

    Markus Heiser
     
  • When using a typedef function like this one:
    typedef bool v4l2_check_dv_timings_fnc (const struct v4l2_dv_timings * t, void * handle);

    The Sphinx C domain expects it to create a c:type: reference,
    as that's the way it creates the type references when parsing
    a c:function:: declaration.

    So, a declaration like:

    .. c:function:: bool v4l2_valid_dv_timings (const struct v4l2_dv_timings * t, const struct v4l2_dv_timings_cap * cap, v4l2_check_dv_timings_fnc fnc, void * fnc_handle)

    Will create a cross reference for :c:type:`v4l2_check_dv_timings_fnc`.

    So, when outputting such typedefs in RST format, we need to handle
    this special case, as otherwise it will produce those warnings:

    ./include/media/v4l2-dv-timings.h:43: WARNING: c:type reference target not found: v4l2_check_dv_timings_fnc
    ./include/media/v4l2-dv-timings.h:60: WARNING: c:type reference target not found: v4l2_check_dv_timings_fnc
    ./include/media/v4l2-dv-timings.h:81: WARNING: c:type reference target not found: v4l2_check_dv_timings_fnc

    So, change the kernel-doc script to produce a RST output for the
    above typedef as:
    .. c:type:: v4l2_check_dv_timings_fnc

    **Typedef**: timings check callback

    **Syntax**

    ``bool v4l2_check_dv_timings_fnc (const struct v4l2_dv_timings * t, void * handle);``

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

    Mauro Carvalho Chehab
     
  • Improve the parser to handle typedefs like:

    typedef bool v4l2_check_dv_timings_fnc(const struct v4l2_dv_timings *t, void *handle);

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

    Mauro Carvalho Chehab
     

26 Aug, 2016

1 commit

  • From the old description people still can't get what's the exact
    difference between nr_cpus and maxcpus. Especially in kdump kernel
    nr_cpus is always suggested if it's implemented in the ARCH. The
    reason is nr_cpus is used to limit the max number of possible cpu
    in system, the sum of already plugged cpus and hot plug cpus can't
    exceed its value. However maxcpus is used to limit how many cpus
    are allowed to be brought up during bootup.

    Signed-off-by: Baoquan He
    Signed-off-by: Jonathan Corbet

    Baoquan He
     

25 Aug, 2016

1 commit

  • Right now, for a struct, kernel-doc produces the following output:

    .. c:type:: struct v4l2_prio_state

    stores the priority states

    **Definition**

    ::

    struct v4l2_prio_state {
    atomic_t prios[4];
    };

    **Members**

    ``atomic_t prios[4]``
    array with elements to store the array priorities

    Putting a member name in verbatim and adding a continuation line
    causes the LaTeX output to generate something like:
    item[atomic_t prios\[4\]] array with elements to store the array priorities

    Everything inside "item" is non-breakable, with may produce
    lines bigger than the column width.

    Also, for function members, like:

    int (* rx_read) (struct v4l2_subdev *sd, u8 *buf, size_t count,ssize_t *num);

    It puts the name of the member at the end, like:

    int (*) (struct v4l2_subdev *sd, u8 *buf, size_t count,ssize_t *num) read

    With is very confusing.

    The best is to highlight what really matters: the member name.
    is a secondary information.

    So, change kernel-doc, for it to produce the output on a different way:

    **Members**

    ``prios[4]``

    array with elements to store the array priorities

    Also, as the type is not part of LaTeX "item[]", LaTeX will split it into
    multiple lines, if needed.

    So, both LaTeX/PDF and HTML outputs will look good.

    It should be noticed, however, that the way Sphinx LaTeX output handles
    things like:

    Foo
    bar

    is different than the HTML output. On HTML, it will produce something
    like:

    **Foo**
    bar

    While, on LaTeX, it puts both foo and bar at the same line, like:

    **Foo** bar

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

    Mauro Carvalho Chehab
     

23 Aug, 2016

10 commits

  • We need adjustbox to allow adjusting the size of tables that
    are bigger than the line width. There are quite a few of them
    at the media books.

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

    Mauro Carvalho Chehab
     
  • When XeLaTeX is in interactive mode, it complains that
    py@noticelength already exists. Rename it and declare it
    only once to avoid such messages.

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

    Mauro Carvalho Chehab
     
  • Instead of painting the box with gray, let's use a colored
    box. IMHO, that makes easier to warn users about some issue
    pointed by the Sphinx. It also matches to what we do already
    with the HTML output.

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

    Mauro Carvalho Chehab
     
  • While the current implementation works well when using as a
    paragraph, it doesn't work properly if inside a table. As we
    have quite a few such cases, fix the logic to take the column
    size into account.

    PS.: I took the logic there from the latest version of Sphinx.sty

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

    Mauro Carvalho Chehab
     
  • Sphinx supports LaTeX output. Sometimes, it is interesting to
    call it directly, instead of also generating a PDF. As it comes
    for free, add a target for it.

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

    Mauro Carvalho Chehab
     
  • This is only one example, demonstrating the benefits of the patch
    series. The CEC_DQEVENT ioctl is migrated to the sphinx c-domain and
    referred by ":name: CEC_DQEVENT".

    With this change the indirection using ":ref:`CEC_DQEVENT` is no longer
    needed, we can refer the ioctl directly with ":c:func:`CEC_DQEVENT`". As
    addition in the index, there is a entry "CEC_DQEVENT (C function)".

    Signed-off-by: Markus Heiser
    Signed-off-by: Jonathan Corbet

    Markus Heiser
     
  • This reverts commit a88b1672d4ddf9895eb53e6980926d5e960dea8e.

    From the origin comit log::

    The RST cpp:function handler is very pedantic: it doesn't allow any
    macros like __user on it

    Since the kernel-doc parser does NOT make use of the cpp:domain, there
    is no need to change the kernel-doc parser eleminating the address_space
    tags.

    Signed-off-by: Markus Heiser
    Signed-off-by: Jonathan Corbet

    Markus Heiser
     
  • Moved the *duplicate C object description* warnings for function
    declarations in the nitpicky mode. In nitpick mode, you can suppress
    those warnings (e.g. ioctl) with::

    nitpicky = True
    nitpick_ignore = [
    ("c:func", "ioctl"),
    ]

    See Sphinx documentation for the config values for ``nitpick`` and
    ``nitpick_ignore`` [1].

    With this change all the ".. cpp:function:: int ioctl(..)" descriptions
    (found in the media book) can be migrated to ".. c:function:: int
    ioctl(..)", without getting any warnings. E.g.::

    .. cpp:function:: int ioctl( int fd, int request, struct cec_event *argp )

    .. c:function:: int ioctl( int fd, int request, struct cec_event *argp )

    The main effect, is that we get those *CPP-types* back into Sphinx's C-
    namespace and we need no longer to distinguish between c/cpp references,
    when we refer a function like the ioctl.

    [1] http://www.sphinx-doc.org/en/stable/config.html?highlight=nitpick#confval-nitpicky

    Signed-off-by: Markus Heiser
    Signed-off-by: Jonathan Corbet

    Markus Heiser
     
  • Add option 'name' to the "c:function:" directive. With option 'name'
    the ref-name of a function can be modified. E.g.::

    .. c:function:: int ioctl( int fd, int request )
    :name: VIDIOC_LOG_STATUS

    The func-name (e.g. ioctl) remains in the output but the ref-name
    changed from ``ioctl`` to ``VIDIOC_LOG_STATUS``. The index entry for
    this function is also changed to ``VIDIOC_LOG_STATUS`` and the function
    can now referenced by::

    :c:func:`VIDIOC_LOG_STATUS`

    Signed-off-by: Markus Heiser
    Signed-off-by: Jonathan Corbet

    Markus Heiser
     
  • Add a sphinx-extension to customize the sphinx c-domain. No functional
    changes right yet, just the boilerplate code.

    Signed-off-by: Markus Heiser
    [ jc: coding-style tweak ]
    Signed-off-by: Jonathan Corbet

    Markus Heiser
     

20 Aug, 2016

1 commit


19 Aug, 2016

16 commits