Skip to content

Commit

Permalink
Merge tag 'docs/v5.10-1' of git://git.kernel.org/pub/scm/linux/kernel…
Browse files Browse the repository at this point in the history
…/git/mchehab/linux-media

Pull documentation updates from Mauro Carvalho Chehab:
 "A series of patches addressing warnings produced by make htmldocs.
  This includes:

   - kernel-doc markup fixes

   - ReST fixes

   - Updates at the build system in order to support newer versions of
     the docs build toolchain (Sphinx)

  After this series, the number of html build warnings should reduce
  significantly, and building with Sphinx 3.1 or later should now be
  supported (although it is still recommended to use Sphinx 2.4.4).

  As agreed with Jon, I should be sending you a late pull request by the
  end of the merge window addressing remaining issues with docs build,
  as there are a number of warning fixes that depends on pull requests
  that should be happening along the merge window.

  The end goal is to have a clean htmldocs build on Kernel 5.10.

  PS. It should be noticed that Sphinx 3.0 is not currently supported,
  as it lacks support for C domain namespaces. Such feature, needed in
  order to document uAPI system calls with Sphinx 3.x, was added only on
  Sphinx 3.1"

* tag 'docs/v5.10-1' of git://git.kernel.org/pub/scm/linux/kernel/git/mchehab/linux-media: (75 commits)
  PM / devfreq: remove a duplicated kernel-doc markup
  mm/doc: fix a literal block markup
  workqueue: fix a kernel-doc warning
  docs: virt: user_mode_linux_howto_v2.rst: fix a literal block markup
  Input: sparse-keymap: add a description for @sw
  rcu/tree: docs: document bkvcache new members at struct kfree_rcu_cpu
  nl80211: docs: add a description for s1g_cap parameter
  usb: docs: document altmode register/unregister functions
  kunit: test.h: fix a bad kernel-doc markup
  drivers: core: fix kernel-doc markup for dev_err_probe()
  docs: bio: fix a kerneldoc markup
  kunit: test.h: solve kernel-doc warnings
  block: bio: fix a warning at the kernel-doc markups
  docs: powerpc: syscall64-abi.rst: fix a malformed table
  drivers: net: hamradio: fix document location
  net: appletalk: Kconfig: Fix docs location
  dt-bindings: fix references to files converted to yaml
  memblock: get rid of a :c:type leftover
  math64.h: kernel-docs: Convert some markups into normal comments
  media: uAPI: buffer.rst: remove a left-over documentation
  ...
  • Loading branch information
torvalds committed Oct 16, 2020
2 parents 93f3d8f + 3e2ac97 commit 54a4c78
Show file tree
Hide file tree
Showing 309 changed files with 1,952 additions and 2,275 deletions.
11 changes: 5 additions & 6 deletions Documentation/admin-guide/pm/cpufreq.rst
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
.. SPDX-License-Identifier: GPL-2.0
.. include:: <isonum.txt>

.. |struct cpufreq_policy| replace:: :c:type:`struct cpufreq_policy <cpufreq_policy>`
.. |intel_pstate| replace:: :doc:`intel_pstate <intel_pstate>`

=======================
Expand Down Expand Up @@ -92,16 +91,16 @@ control the P-state of multiple CPUs at the same time and writing to it affects
all of those CPUs simultaneously.

Sets of CPUs sharing hardware P-state control interfaces are represented by
``CPUFreq`` as |struct cpufreq_policy| objects. For consistency,
|struct cpufreq_policy| is also used when there is only one CPU in the given
``CPUFreq`` as struct cpufreq_policy objects. For consistency,
struct cpufreq_policy is also used when there is only one CPU in the given
set.

The ``CPUFreq`` core maintains a pointer to a |struct cpufreq_policy| object for
The ``CPUFreq`` core maintains a pointer to a struct cpufreq_policy object for
every CPU in the system, including CPUs that are currently offline. If multiple
CPUs share the same hardware P-state control interface, all of the pointers
corresponding to them point to the same |struct cpufreq_policy| object.
corresponding to them point to the same struct cpufreq_policy object.

``CPUFreq`` uses |struct cpufreq_policy| as its basic data type and the design
``CPUFreq`` uses struct cpufreq_policy as its basic data type and the design
of its user space interface is based on the policy concept.


Expand Down
10 changes: 2 additions & 8 deletions Documentation/admin-guide/pstore-blk.rst
Original file line number Diff line number Diff line change
Expand Up @@ -154,17 +154,11 @@ Configurations for driver
Only a block device driver cares about these configurations. A block device
driver uses ``register_pstore_blk`` to register to pstore/blk.

.. kernel-doc:: fs/pstore/blk.c
:identifiers: register_pstore_blk

A non-block device driver uses ``register_pstore_device`` with
``struct pstore_device_info`` to register to pstore/blk.

.. kernel-doc:: fs/pstore/blk.c
:identifiers: register_pstore_device

.. kernel-doc:: include/linux/pstore_blk.h
:identifiers: pstore_device_info
:export:

Compression and header
----------------------
Expand Down Expand Up @@ -237,7 +231,7 @@ For developer reference, here are all the important structures and APIs:
:internal:

.. kernel-doc:: fs/pstore/blk.c
:export:
:internal:

.. kernel-doc:: include/linux/pstore_blk.h
:internal:
12 changes: 6 additions & 6 deletions Documentation/block/blk-mq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -63,10 +63,10 @@ Software staging queues
~~~~~~~~~~~~~~~~~~~~~~~

The block IO subsystem adds requests in the software staging queues
(represented by struct :c:type:`blk_mq_ctx`) in case that they weren't sent
(represented by struct blk_mq_ctx) in case that they weren't sent
directly to the driver. A request is one or more BIOs. They arrived at the
block layer through the data structure struct :c:type:`bio`. The block layer
will then build a new structure from it, the struct :c:type:`request` that will
block layer through the data structure struct bio. The block layer
will then build a new structure from it, the struct request that will
be used to communicate with the device driver. Each queue has its own lock and
the number of queues is defined by a per-CPU or per-node basis.

Expand Down Expand Up @@ -102,17 +102,17 @@ hardware queue will be drained in sequence according to their mapping.
Hardware dispatch queues
~~~~~~~~~~~~~~~~~~~~~~~~

The hardware queue (represented by struct :c:type:`blk_mq_hw_ctx`) is a struct
The hardware queue (represented by struct blk_mq_hw_ctx) is a struct
used by device drivers to map the device submission queues (or device DMA ring
buffer), and are the last step of the block layer submission code before the
low level device driver taking ownership of the request. To run this queue, the
block layer removes requests from the associated software queues and tries to
dispatch to the hardware.

If it's not possible to send the requests directly to hardware, they will be
added to a linked list (:c:type:`hctx->dispatch`) of requests. Then,
added to a linked list (``hctx->dispatch``) of requests. Then,
next time the block layer runs a queue, it will send the requests laying at the
:c:type:`dispatch` list first, to ensure a fairness dispatch with those
``dispatch`` list first, to ensure a fairness dispatch with those
requests that were ready to be sent first. The number of hardware queues
depends on the number of hardware contexts supported by the hardware and its
device driver, but it will not be more than the number of cores of the system.
Expand Down
8 changes: 4 additions & 4 deletions Documentation/block/inline-encryption.rst
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ Constraints and notes
Design
======

We add a :c:type:`struct bio_crypt_ctx` to :c:type:`struct bio` that can
We add a struct bio_crypt_ctx to struct bio that can
represent an encryption context, because we need to be able to pass this
encryption context from the upper layers (like the fs layer) to the
device driver to act upon.
Expand Down Expand Up @@ -85,7 +85,7 @@ blk-mq changes, other block layer changes and blk-crypto-fallback
=================================================================

We add a pointer to a ``bi_crypt_context`` and ``keyslot`` to
:c:type:`struct request`. These will be referred to as the ``crypto fields``
struct request. These will be referred to as the ``crypto fields``
for the request. This ``keyslot`` is the keyslot into which the
``bi_crypt_context`` has been programmed in the KSM of the ``request_queue``
that this request is being sent to.
Expand Down Expand Up @@ -118,7 +118,7 @@ of the algorithm being used adheres to spec and functions correctly).
If a ``request queue``'s inline encryption hardware claimed to support the
encryption context specified with a bio, then it will not be handled by the
``blk-crypto-fallback``. We will eventually reach a point in blk-mq when a
:c:type:`struct request` needs to be allocated for that bio. At that point,
struct request needs to be allocated for that bio. At that point,
blk-mq tries to program the encryption context into the ``request_queue``'s
keyslot_manager, and obtain a keyslot, which it stores in its newly added
``keyslot`` field. This keyslot is released when the request is completed.
Expand Down Expand Up @@ -188,7 +188,7 @@ keyslots supported by the hardware.
The device driver also needs to tell the KSM how to actually manipulate the
IE hardware in the device to do things like programming the crypto key into
the IE hardware into a particular keyslot. All this is achieved through the
:c:type:`struct blk_ksm_ll_ops` field in the KSM that the device driver
struct blk_ksm_ll_ops field in the KSM that the device driver
must fill up after initing the ``blk_keyslot_manager``.

The KSM also handles runtime power management for the device when applicable
Expand Down
65 changes: 62 additions & 3 deletions Documentation/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,68 @@
#
if major >= 3:
sys.stderr.write('''WARNING: The kernel documentation build process
does not work correctly with Sphinx v3.0 and above. Expect errors
in the generated output.
''')
support for Sphinx v3.0 and above is brand new. Be prepared for
possible issues in the generated output.
''')
if minor > 0 or patch >= 2:
# Sphinx c function parser is more pedantic with regards to type
# checking. Due to that, having macros at c:function cause problems.
# Those needed to be scaped by using c_id_attributes[] array
c_id_attributes = [
# GCC Compiler types not parsed by Sphinx:
"__restrict__",

# include/linux/compiler_types.h:
"__iomem",
"__kernel",
"noinstr",
"notrace",
"__percpu",
"__rcu",
"__user",

# include/linux/compiler_attributes.h:
"__alias",
"__aligned",
"__aligned_largest",
"__always_inline",
"__assume_aligned",
"__cold",
"__attribute_const__",
"__copy",
"__pure",
"__designated_init",
"__visible",
"__printf",
"__scanf",
"__gnu_inline",
"__malloc",
"__mode",
"__no_caller_saved_registers",
"__noclone",
"__nonstring",
"__noreturn",
"__packed",
"__pure",
"__section",
"__always_unused",
"__maybe_unused",
"__used",
"__weak",
"noinline",

# include/linux/memblock.h:
"__init_memblock",
"__meminit",

# include/linux/init.h:
"__init",
"__ref",

# include/linux/linkage.h:
"asmlinkage",
]

else:
extensions.append('cdomain')

Expand Down
2 changes: 2 additions & 0 deletions Documentation/core-api/genericirq.rst
Original file line number Diff line number Diff line change
Expand Up @@ -419,6 +419,7 @@ functions which are exported.
.. kernel-doc:: kernel/irq/manage.c

.. kernel-doc:: kernel/irq/chip.c
:export:

Internal Functions Provided
===========================
Expand All @@ -431,6 +432,7 @@ functions.
.. kernel-doc:: kernel/irq/handle.c

.. kernel-doc:: kernel/irq/chip.c
:internal:

Credits
=======
Expand Down
6 changes: 0 additions & 6 deletions Documentation/core-api/kernel-api.rst
Original file line number Diff line number Diff line change
Expand Up @@ -231,12 +231,6 @@ Refer to the file kernel/module.c for more information.
Hardware Interfaces
===================

Interrupt Handling
------------------

.. kernel-doc:: kernel/irq/manage.c
:export:

DMA Channels
------------

Expand Down
2 changes: 2 additions & 0 deletions Documentation/core-api/workqueue.rst
Original file line number Diff line number Diff line change
Expand Up @@ -396,3 +396,5 @@ Kernel Inline Documentations Reference
======================================

.. kernel-doc:: include/linux/workqueue.h

.. kernel-doc:: kernel/workqueue.c
6 changes: 3 additions & 3 deletions Documentation/dev-tools/kgdb.rst
Original file line number Diff line number Diff line change
Expand Up @@ -726,7 +726,7 @@ The kernel debugger is organized into a number of components:
- contains an arch-specific trap catcher which invokes
kgdb_handle_exception() to start kgdb about doing its work

- translation to and from gdb specific packet format to :c:type:`pt_regs`
- translation to and from gdb specific packet format to struct pt_regs

- Registration and unregistration of architecture specific trap
hooks
Expand Down Expand Up @@ -846,7 +846,7 @@ invokes a callback in the serial core which in turn uses the callback in
the UART driver.

When using kgdboc with a UART, the UART driver must implement two
callbacks in the :c:type:`struct uart_ops <uart_ops>`.
callbacks in the struct uart_ops.
Example from ``drivers/8250.c``::


Expand Down Expand Up @@ -875,7 +875,7 @@ kernel when ``CONFIG_KDB_KEYBOARD=y`` is set in the kernel configuration.
The core polled keyboard driver for PS/2 type keyboards is in
``drivers/char/kdb_keyboard.c``. This driver is hooked into the debug core
when kgdboc populates the callback in the array called
:c:type:`kdb_poll_funcs[]`. The kdb_get_kbd_char() is the top-level
:c:expr:`kdb_poll_funcs[]`. The kdb_get_kbd_char() is the top-level
function which polls hardware for single character input.

kgdboc and kms
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ Optional nodes:
supports a single port with a single endpoint.

- See also Documentation/devicetree/bindings/display/tilcdc/panel.txt and
Documentation/devicetree/bindings/display/bridge/ti,tfp410.txt for connecting
Documentation/devicetree/bindings/display/bridge/ti,tfp410.yaml for connecting
tfp410 DVI encoder or lcd panel to lcdc

[1] There is an errata about AM335x color wiring. For 16-bit color mode
Expand Down
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/mailbox/omap-mailbox.txt
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ The following are mandatory properties for the K3 AM65x and J721E SoCs only:
the interrupt routes between the IP and the main GIC
controllers. See the following binding for additional
details,
Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.txt
Documentation/devicetree/bindings/interrupt-controller/ti,sci-intr.yaml

Child Nodes:
============
Expand Down
2 changes: 1 addition & 1 deletion Documentation/devicetree/bindings/media/i2c/tvp5150.txt
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,7 @@ Optional Connector Properties:
instead of using the autodetection mechnism. Please look at
[1] for more information.

[1] Documentation/devicetree/bindings/display/connector/analog-tv-connector.txt.
[1] Documentation/devicetree/bindings/display/connector/analog-tv-connector.yaml.

Example - three input sources:
#include <dt-bindings/display/sdtv-standards.h>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ description: |
Google's ChromeOS EC PWM is a simple PWM attached to the Embedded Controller
(EC) and controlled via a host-command interface.
An EC PWM node should be only found as a sub-node of the EC node (see
Documentation/devicetree/bindings/mfd/cros-ec.txt).
Documentation/devicetree/bindings/mfd/google,cros-ec.yaml).
properties:
compatible:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ description: |
present and this subnode may contain children that designate regulator
resources.
Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.txt
Refer to Documentation/devicetree/bindings/regulator/qcom,smd-rpm-regulator.yaml
for information on the regulator subnodes that can exist under the
rpm_requests.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ description: |
Google's ChromeOS EC codec is a digital mic codec provided by the
Embedded Controller (EC) and is controlled via a host-command interface.
An EC codec node should only be found as a sub-node of the EC node (see
Documentation/devicetree/bindings/mfd/cros-ec.txt).
Documentation/devicetree/bindings/mfd/google,cros-ec.yaml).
properties:
compatible:
Expand Down
8 changes: 8 additions & 0 deletions Documentation/doc-guide/kernel-doc.rst
Original file line number Diff line number Diff line change
Expand Up @@ -490,6 +490,14 @@ identifiers: *[ function/type ...]*
.. kernel-doc:: lib/idr.c
:identifiers:

no-identifiers: *[ function/type ...]*
Exclude documentation for each *function* and *type* in *source*.

Example::

.. kernel-doc:: lib/bitmap.c
:no-identifiers: bitmap_parselist

functions: *[ function/type ...]*
This is an alias of the 'identifiers' directive and deprecated.

Expand Down
19 changes: 4 additions & 15 deletions Documentation/driver-api/basics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@ Driver device table

.. kernel-doc:: include/linux/mod_devicetable.h
:internal:
:no-identifiers: pci_device_id


Delaying, scheduling, and timer routines
----------------------------------------
Expand Down Expand Up @@ -55,15 +57,6 @@ High-resolution timers
.. kernel-doc:: kernel/time/hrtimer.c
:export:

Workqueues and Kevents
----------------------

.. kernel-doc:: include/linux/workqueue.h
:internal:

.. kernel-doc:: kernel/workqueue.c
:export:

Internal Functions
------------------

Expand Down Expand Up @@ -105,19 +98,15 @@ Kernel utility functions

.. kernel-doc:: include/linux/kernel.h
:internal:
:no-identifiers: kstrtol kstrtoul

.. kernel-doc:: kernel/printk/printk.c
:export:
:no-identifiers: printk

.. kernel-doc:: kernel/panic.c
:export:

.. kernel-doc:: kernel/rcu/tree.c
:export:

.. kernel-doc:: kernel/rcu/update.c
:export:

.. kernel-doc:: include/linux/overflow.h
:internal:

Expand Down
Loading

0 comments on commit 54a4c78

Please sign in to comment.