2019-10-13 05:55:41

by Changbin Du

[permalink] [raw]
Subject: [PATCH] kernel-doc: rename the kernel-doc directive 'functions' to 'specific'

The 'functions' directive is not only for functions, but also works for
structs/unions. So the name is misleading. This patch renames it to
'specific', so now we have export/internal/specific directives to limit
the functions/types to be included in documentation. Meanwhile we improved
the warning message.

Signed-off-by: Changbin Du <[email protected]>
---
Documentation/PCI/pci.rst | 4 +-
Documentation/core-api/boot-time-mm.rst | 2 +-
Documentation/core-api/debug-objects.rst | 14 +-
Documentation/core-api/genalloc.rst | 34 +--
Documentation/core-api/generic-radix-tree.rst | 2 +-
.../core-api/gfp_mask-from-fs-io.rst | 4 +-
Documentation/core-api/idr.rst | 4 +-
Documentation/core-api/kernel-api.rst | 12 +-
Documentation/core-api/mm-api.rst | 4 +-
Documentation/crypto/api-aead.rst | 6 +-
Documentation/crypto/api-akcipher.rst | 6 +-
Documentation/crypto/api-digest.rst | 8 +-
Documentation/crypto/api-kpp.rst | 10 +-
Documentation/crypto/api-rng.rst | 4 +-
Documentation/crypto/api-skcipher.rst | 14 +-
Documentation/dev-tools/kselftest.rst | 4 +-
Documentation/doc-guide/kernel-doc.rst | 26 +--
Documentation/driver-api/80211/cfg80211.rst | 200 +++++++++---------
.../driver-api/80211/mac80211-advanced.rst | 88 ++++----
Documentation/driver-api/80211/mac80211.rst | 80 +++----
.../driver-api/device_connection.rst | 2 +-
Documentation/driver-api/device_link.rst | 4 +-
.../firmware/fallback-mechanisms.rst | 2 +-
.../driver-api/firmware/other_interfaces.rst | 10 +-
.../driver-api/firmware/request_firmware.rst | 12 +-
Documentation/driver-api/fpga/fpga-bridge.rst | 10 +-
Documentation/driver-api/fpga/fpga-mgr.rst | 12 +-
.../driver-api/fpga/fpga-programming.rst | 8 +-
Documentation/driver-api/fpga/fpga-region.rst | 20 +-
Documentation/driver-api/i2c.rst | 2 +-
Documentation/driver-api/mei/hdcp.rst | 2 +-
Documentation/driver-api/spi.rst | 2 +-
Documentation/driver-api/usb/typec.rst | 26 +--
Documentation/driver-api/usb/typec_bus.rst | 10 +-
Documentation/gpu/amdgpu-dc.rst | 6 +-
Documentation/gpu/drm-kms-helpers.rst | 2 +-
Documentation/gpu/i915.rst | 70 +++---
Documentation/gpu/vga-switcheroo.rst | 14 +-
Documentation/security/tpm/tpm_vtpm_proxy.rst | 2 +-
Documentation/sphinx/kerneldoc.py | 10 +-
.../it_IT/doc-guide/kernel-doc.rst | 2 +-
Documentation/vm/ksm.rst | 2 +-
scripts/kernel-doc | 9 +-
43 files changed, 385 insertions(+), 380 deletions(-)

diff --git a/Documentation/PCI/pci.rst b/Documentation/PCI/pci.rst
index 6864f9a70f5f..6f310807f74c 100644
--- a/Documentation/PCI/pci.rst
+++ b/Documentation/PCI/pci.rst
@@ -79,13 +79,13 @@ initialization with a pointer to a structure describing the driver
(``struct pci_driver``):

.. kernel-doc:: include/linux/pci.h
- :functions: pci_driver
+ :specific: pci_driver

The ID table is an array of ``struct pci_device_id`` entries ending with an
all-zero entry. Definitions with static const are generally preferred.

.. kernel-doc:: include/linux/mod_devicetable.h
- :functions: pci_device_id
+ :specific: pci_device_id

Most drivers only need ``PCI_DEVICE()`` or ``PCI_DEVICE_CLASS()`` to set up
a pci_device_id table.
diff --git a/Documentation/core-api/boot-time-mm.rst b/Documentation/core-api/boot-time-mm.rst
index e5ec9f1a563d..54824740d010 100644
--- a/Documentation/core-api/boot-time-mm.rst
+++ b/Documentation/core-api/boot-time-mm.rst
@@ -38,4 +38,4 @@ really happens under the hood.

.. kernel-doc:: include/linux/memblock.h
.. kernel-doc:: mm/memblock.c
- :functions:
+ :specific:
diff --git a/Documentation/core-api/debug-objects.rst b/Documentation/core-api/debug-objects.rst
index ac926fd55a64..352fc2d8abbd 100644
--- a/Documentation/core-api/debug-objects.rst
+++ b/Documentation/core-api/debug-objects.rst
@@ -65,7 +65,7 @@ Debug functions
===============

.. kernel-doc:: lib/debugobjects.c
- :functions: debug_object_init
+ :specific: debug_object_init

This function is called whenever the initialization function of a real
object is called.
@@ -88,7 +88,7 @@ calling code must use debug_object_init_on_stack() and remove the
object before leaving the function which allocated it. See next section.

.. kernel-doc:: lib/debugobjects.c
- :functions: debug_object_init_on_stack
+ :specific: debug_object_init_on_stack

This function is called whenever the initialization function of a real
object which resides on the stack is called.
@@ -112,7 +112,7 @@ calling debug_object_free() before the function which allocates the
object returns. Otherwise we keep track of stale objects.

.. kernel-doc:: lib/debugobjects.c
- :functions: debug_object_activate
+ :specific: debug_object_activate

This function is called whenever the activation function of a real
object is called.
@@ -137,7 +137,7 @@ tracker object is set to ODEBUG_STATE_ACTIVE.


.. kernel-doc:: lib/debugobjects.c
- :functions: debug_object_deactivate
+ :specific: debug_object_deactivate

This function is called whenever the deactivation function of a real
object is called.
@@ -150,7 +150,7 @@ When the deactivation is legitimate, then the state of the associated
tracker object is set to ODEBUG_STATE_INACTIVE.

.. kernel-doc:: lib/debugobjects.c
- :functions: debug_object_destroy
+ :specific: debug_object_destroy

This function is called to mark an object destroyed. This is useful to
prevent the usage of invalid objects, which are still available in
@@ -169,7 +169,7 @@ When the destruction is legitimate, then the state of the associated
tracker object is set to ODEBUG_STATE_DESTROYED.

.. kernel-doc:: lib/debugobjects.c
- :functions: debug_object_free
+ :specific: debug_object_free

This function is called before an object is freed.

@@ -186,7 +186,7 @@ usage of the object is detected by the other debug checks.


.. kernel-doc:: lib/debugobjects.c
- :functions: debug_object_assert_init
+ :specific: debug_object_assert_init

This function is called to assert that an object has been initialized.

diff --git a/Documentation/core-api/genalloc.rst b/Documentation/core-api/genalloc.rst
index 6b38a39fab24..28a665c28852 100644
--- a/Documentation/core-api/genalloc.rst
+++ b/Documentation/core-api/genalloc.rst
@@ -18,10 +18,10 @@ Code using this allocator should include <linux/genalloc.h>. The action
begins with the creation of a pool using one of:

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_create
+ :specific: gen_pool_create

.. kernel-doc:: lib/genalloc.c
- :functions: devm_gen_pool_create
+ :specific: devm_gen_pool_create

A call to :c:func:`gen_pool_create` will create a pool. The granularity of
allocations is set with min_alloc_order; it is a log-base-2 number like
@@ -39,7 +39,7 @@ pool when the given device is destroyed.
A pool is shut down with:

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_destroy
+ :specific: gen_pool_destroy

It's worth noting that, if there are still allocations outstanding from the
given pool, this function will take the rather extreme step of invoking
@@ -50,10 +50,10 @@ that state, so one of the first orders of business is usually to add memory
to the pool. That can be done with one of:

.. kernel-doc:: include/linux/genalloc.h
- :functions: gen_pool_add
+ :specific: gen_pool_add

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_add_virt
+ :specific: gen_pool_add_virt

A call to :c:func:`gen_pool_add` will place the size bytes of memory
starting at addr (in the kernel's virtual address space) into the given
@@ -66,13 +66,13 @@ The functions for allocating memory from the pool (and putting it back)
are:

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_alloc
+ :specific: gen_pool_alloc

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_dma_alloc
+ :specific: gen_pool_dma_alloc

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_free
+ :specific: gen_pool_free

As one would expect, :c:func:`gen_pool_alloc` will allocate size< bytes
from the given pool. The :c:func:`gen_pool_dma_alloc` variant allocates
@@ -89,10 +89,10 @@ return. If that sort of control is needed, the following functions will be
of interest:

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_alloc_algo
+ :specific: gen_pool_alloc_algo

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_set_algo
+ :specific: gen_pool_set_algo

Allocations with :c:func:`gen_pool_alloc_algo` specify an algorithm to be
used to choose the memory to be allocated; the default algorithm can be set
@@ -123,22 +123,22 @@ above. With luck, wider awareness of this module will help to prevent the
writing of special-purpose memory allocators in the future.

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_virt_to_phys
+ :specific: gen_pool_virt_to_phys

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_for_each_chunk
+ :specific: gen_pool_for_each_chunk

.. kernel-doc:: lib/genalloc.c
- :functions: addr_in_gen_pool
+ :specific: addr_in_gen_pool

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_avail
+ :specific: gen_pool_avail

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_size
+ :specific: gen_pool_size

.. kernel-doc:: lib/genalloc.c
- :functions: gen_pool_get
+ :specific: gen_pool_get

.. kernel-doc:: lib/genalloc.c
- :functions: of_gen_pool_get
+ :specific: of_gen_pool_get
diff --git a/Documentation/core-api/generic-radix-tree.rst b/Documentation/core-api/generic-radix-tree.rst
index ed42839ae42f..373380f6c037 100644
--- a/Documentation/core-api/generic-radix-tree.rst
+++ b/Documentation/core-api/generic-radix-tree.rst
@@ -9,4 +9,4 @@ generic radix tree functions
----------------------------

.. kernel-doc:: include/linux/generic-radix-tree.h
- :functions:
+ :specific:
diff --git a/Documentation/core-api/gfp_mask-from-fs-io.rst b/Documentation/core-api/gfp_mask-from-fs-io.rst
index e7c32a8de126..b6eff1c8b3b7 100644
--- a/Documentation/core-api/gfp_mask-from-fs-io.rst
+++ b/Documentation/core-api/gfp_mask-from-fs-io.rst
@@ -36,9 +36,9 @@ scope will inherently drop __GFP_FS respectively __GFP_IO from the given
mask so no memory allocation can recurse back in the FS/IO.

.. kernel-doc:: include/linux/sched/mm.h
- :functions: memalloc_nofs_save memalloc_nofs_restore
+ :specific: memalloc_nofs_save memalloc_nofs_restore
.. kernel-doc:: include/linux/sched/mm.h
- :functions: memalloc_noio_save memalloc_noio_restore
+ :specific: memalloc_noio_save memalloc_noio_restore

FS/IO code then simply calls the appropriate save function before
any critical section with respect to the reclaim is started - e.g.
diff --git a/Documentation/core-api/idr.rst b/Documentation/core-api/idr.rst
index a2738050c4f0..d54425605a8f 100644
--- a/Documentation/core-api/idr.rst
+++ b/Documentation/core-api/idr.rst
@@ -76,6 +76,6 @@ Functions and structures
========================

.. kernel-doc:: include/linux/idr.h
- :functions:
+ :specific:
.. kernel-doc:: lib/idr.c
- :functions:
+ :specific:
diff --git a/Documentation/core-api/kernel-api.rst b/Documentation/core-api/kernel-api.rst
index f77de49b1d51..8cec422f0d8e 100644
--- a/Documentation/core-api/kernel-api.rst
+++ b/Documentation/core-api/kernel-api.rst
@@ -25,10 +25,10 @@ String Conversions
:export:

.. kernel-doc:: include/linux/kernel.h
- :functions: kstrtol
+ :specific: kstrtol

.. kernel-doc:: include/linux/kernel.h
- :functions: kstrtoul
+ :specific: kstrtoul

.. kernel-doc:: lib/kstrtox.c
:export:
@@ -46,7 +46,7 @@ String Manipulation
:internal:

.. kernel-doc:: mm/util.c
- :functions: kstrdup kstrdup_const kstrndup kmemdup kmemdup_nul memdup_user
+ :specific: kstrdup kstrdup_const kstrndup kmemdup kmemdup_nul memdup_user
vmemdup_user strndup_user memdup_user_nul

Basic Kernel Library Functions
@@ -109,7 +109,7 @@ Text Searching
:export:

.. kernel-doc:: include/linux/textsearch.h
- :functions: textsearch_find textsearch_next \
+ :specific: textsearch_find textsearch_next \
textsearch_get_pattern textsearch_get_pattern_len

CRC and Math Functions in Linux
@@ -157,13 +157,13 @@ Division Functions
------------------

.. kernel-doc:: include/asm-generic/div64.h
- :functions: do_div
+ :specific: do_div

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

.. kernel-doc:: lib/math/div64.c
- :functions: div_s64_rem div64_u64_rem div64_u64 div64_s64
+ :specific: div_s64_rem div64_u64_rem div64_u64 div64_s64

.. kernel-doc:: lib/math/gcd.c
:export:
diff --git a/Documentation/core-api/mm-api.rst b/Documentation/core-api/mm-api.rst
index 128e8a721c1e..12579eaca4d6 100644
--- a/Documentation/core-api/mm-api.rst
+++ b/Documentation/core-api/mm-api.rst
@@ -12,7 +12,7 @@ User Space Memory Access
:export:

.. kernel-doc:: mm/util.c
- :functions: get_user_pages_fast
+ :specific: get_user_pages_fast

.. _mm-api-gfp-flags:

@@ -50,7 +50,7 @@ The Slab Cache
:export:

.. kernel-doc:: mm/util.c
- :functions: kfree_const kvmalloc_node kvfree
+ :specific: kfree_const kvmalloc_node kvfree

Virtually Contiguous Mappings
=============================
diff --git a/Documentation/crypto/api-aead.rst b/Documentation/crypto/api-aead.rst
index d15256f1ae36..c195acca0ca3 100644
--- a/Documentation/crypto/api-aead.rst
+++ b/Documentation/crypto/api-aead.rst
@@ -5,13 +5,13 @@ Authenticated Encryption With Associated Data (AEAD) Algorithm Definitions
:doc: Authenticated Encryption With Associated Data (AEAD) Cipher API

.. kernel-doc:: include/crypto/aead.h
- :functions: aead_request aead_alg
+ :specific: aead_request aead_alg

Authenticated Encryption With Associated Data (AEAD) Cipher API
---------------------------------------------------------------

.. kernel-doc:: include/crypto/aead.h
- :functions: crypto_alloc_aead crypto_free_aead crypto_aead_ivsize crypto_aead_authsize crypto_aead_blocksize crypto_aead_setkey crypto_aead_setauthsize crypto_aead_encrypt crypto_aead_decrypt
+ :specific: crypto_alloc_aead crypto_free_aead crypto_aead_ivsize crypto_aead_authsize crypto_aead_blocksize crypto_aead_setkey crypto_aead_setauthsize crypto_aead_encrypt crypto_aead_decrypt

Asynchronous AEAD Request Handle
--------------------------------
@@ -20,4 +20,4 @@ Asynchronous AEAD Request Handle
:doc: Asynchronous AEAD Request Handle

.. kernel-doc:: include/crypto/aead.h
- :functions: crypto_aead_reqsize aead_request_set_tfm aead_request_alloc aead_request_free aead_request_set_callback aead_request_set_crypt aead_request_set_ad
+ :specific: crypto_aead_reqsize aead_request_set_tfm aead_request_alloc aead_request_free aead_request_set_callback aead_request_set_crypt aead_request_set_ad
diff --git a/Documentation/crypto/api-akcipher.rst b/Documentation/crypto/api-akcipher.rst
index 40aa8746e2a1..db4d16b5920e 100644
--- a/Documentation/crypto/api-akcipher.rst
+++ b/Documentation/crypto/api-akcipher.rst
@@ -2,7 +2,7 @@ Asymmetric Cipher Algorithm Definitions
---------------------------------------

.. kernel-doc:: include/crypto/akcipher.h
- :functions: akcipher_alg akcipher_request
+ :specific: akcipher_alg akcipher_request

Asymmetric Cipher API
---------------------
@@ -11,10 +11,10 @@ Asymmetric Cipher API
:doc: Generic Public Key API

.. kernel-doc:: include/crypto/akcipher.h
- :functions: crypto_alloc_akcipher crypto_free_akcipher crypto_akcipher_set_pub_key crypto_akcipher_set_priv_key crypto_akcipher_maxsize crypto_akcipher_encrypt crypto_akcipher_decrypt crypto_akcipher_sign crypto_akcipher_verify
+ :specific: crypto_alloc_akcipher crypto_free_akcipher crypto_akcipher_set_pub_key crypto_akcipher_set_priv_key crypto_akcipher_maxsize crypto_akcipher_encrypt crypto_akcipher_decrypt crypto_akcipher_sign crypto_akcipher_verify

Asymmetric Cipher Request Handle
--------------------------------

.. kernel-doc:: include/crypto/akcipher.h
- :functions: akcipher_request_alloc akcipher_request_free akcipher_request_set_callback akcipher_request_set_crypt
+ :specific: akcipher_request_alloc akcipher_request_free akcipher_request_set_callback akcipher_request_set_crypt
diff --git a/Documentation/crypto/api-digest.rst b/Documentation/crypto/api-digest.rst
index 7a1e670d6ce1..5ac8e2db0410 100644
--- a/Documentation/crypto/api-digest.rst
+++ b/Documentation/crypto/api-digest.rst
@@ -5,7 +5,7 @@ Message Digest Algorithm Definitions
:doc: Message Digest Algorithm Definitions

.. kernel-doc:: include/crypto/hash.h
- :functions: hash_alg_common ahash_alg shash_alg
+ :specific: hash_alg_common ahash_alg shash_alg

Asynchronous Message Digest API
-------------------------------
@@ -14,7 +14,7 @@ Asynchronous Message Digest API
:doc: Asynchronous Message Digest API

.. kernel-doc:: include/crypto/hash.h
- :functions: crypto_alloc_ahash crypto_free_ahash crypto_ahash_init crypto_ahash_digestsize crypto_ahash_reqtfm crypto_ahash_reqsize crypto_ahash_statesize crypto_ahash_setkey crypto_ahash_finup crypto_ahash_final crypto_ahash_digest crypto_ahash_export crypto_ahash_import
+ :specific: crypto_alloc_ahash crypto_free_ahash crypto_ahash_init crypto_ahash_digestsize crypto_ahash_reqtfm crypto_ahash_reqsize crypto_ahash_statesize crypto_ahash_setkey crypto_ahash_finup crypto_ahash_final crypto_ahash_digest crypto_ahash_export crypto_ahash_import

Asynchronous Hash Request Handle
--------------------------------
@@ -23,7 +23,7 @@ Asynchronous Hash Request Handle
:doc: Asynchronous Hash Request Handle

.. kernel-doc:: include/crypto/hash.h
- :functions: ahash_request_set_tfm ahash_request_alloc ahash_request_free ahash_request_set_callback ahash_request_set_crypt
+ :specific: ahash_request_set_tfm ahash_request_alloc ahash_request_free ahash_request_set_callback ahash_request_set_crypt

Synchronous Message Digest API
------------------------------
@@ -32,4 +32,4 @@ Synchronous Message Digest API
:doc: Synchronous Message Digest API

.. kernel-doc:: include/crypto/hash.h
- :functions: crypto_alloc_shash crypto_free_shash crypto_shash_blocksize crypto_shash_digestsize crypto_shash_descsize crypto_shash_setkey crypto_shash_digest crypto_shash_export crypto_shash_import crypto_shash_init crypto_shash_update crypto_shash_final crypto_shash_finup
+ :specific: crypto_alloc_shash crypto_free_shash crypto_shash_blocksize crypto_shash_digestsize crypto_shash_descsize crypto_shash_setkey crypto_shash_digest crypto_shash_export crypto_shash_import crypto_shash_init crypto_shash_update crypto_shash_final crypto_shash_finup
diff --git a/Documentation/crypto/api-kpp.rst b/Documentation/crypto/api-kpp.rst
index 7d86ab906bdf..eff06d515a10 100644
--- a/Documentation/crypto/api-kpp.rst
+++ b/Documentation/crypto/api-kpp.rst
@@ -2,7 +2,7 @@ Key-agreement Protocol Primitives (KPP) Cipher Algorithm Definitions
--------------------------------------------------------------------

.. kernel-doc:: include/crypto/kpp.h
- :functions: kpp_request crypto_kpp kpp_alg kpp_secret
+ :specific: kpp_request crypto_kpp kpp_alg kpp_secret

Key-agreement Protocol Primitives (KPP) Cipher API
--------------------------------------------------
@@ -11,13 +11,13 @@ Key-agreement Protocol Primitives (KPP) Cipher API
:doc: Generic Key-agreement Protocol Primitives API

.. kernel-doc:: include/crypto/kpp.h
- :functions: crypto_alloc_kpp crypto_free_kpp crypto_kpp_set_secret crypto_kpp_generate_public_key crypto_kpp_compute_shared_secret crypto_kpp_maxsize
+ :specific: crypto_alloc_kpp crypto_free_kpp crypto_kpp_set_secret crypto_kpp_generate_public_key crypto_kpp_compute_shared_secret crypto_kpp_maxsize

Key-agreement Protocol Primitives (KPP) Cipher Request Handle
-------------------------------------------------------------

.. kernel-doc:: include/crypto/kpp.h
- :functions: kpp_request_alloc kpp_request_free kpp_request_set_callback kpp_request_set_input kpp_request_set_output
+ :specific: kpp_request_alloc kpp_request_free kpp_request_set_callback kpp_request_set_input kpp_request_set_output

ECDH Helper Functions
---------------------
@@ -26,7 +26,7 @@ ECDH Helper Functions
:doc: ECDH Helper Functions

.. kernel-doc:: include/crypto/ecdh.h
- :functions: ecdh crypto_ecdh_key_len crypto_ecdh_encode_key crypto_ecdh_decode_key
+ :specific: ecdh crypto_ecdh_key_len crypto_ecdh_encode_key crypto_ecdh_decode_key

DH Helper Functions
-------------------
@@ -35,4 +35,4 @@ DH Helper Functions
:doc: DH Helper Functions

.. kernel-doc:: include/crypto/dh.h
- :functions: dh crypto_dh_key_len crypto_dh_encode_key crypto_dh_decode_key
+ :specific: dh crypto_dh_key_len crypto_dh_encode_key crypto_dh_decode_key
diff --git a/Documentation/crypto/api-rng.rst b/Documentation/crypto/api-rng.rst
index 10ba7436cee4..2359a161efd5 100644
--- a/Documentation/crypto/api-rng.rst
+++ b/Documentation/crypto/api-rng.rst
@@ -2,7 +2,7 @@ Random Number Algorithm Definitions
-----------------------------------

.. kernel-doc:: include/crypto/rng.h
- :functions: rng_alg
+ :specific: rng_alg

Crypto API Random Number API
----------------------------
@@ -11,4 +11,4 @@ Crypto API Random Number API
:doc: Random number generator API

.. kernel-doc:: include/crypto/rng.h
- :functions: crypto_alloc_rng crypto_rng_alg crypto_free_rng crypto_rng_generate crypto_rng_get_bytes crypto_rng_reset crypto_rng_seedsize
+ :specific: crypto_alloc_rng crypto_rng_alg crypto_free_rng crypto_rng_generate crypto_rng_get_bytes crypto_rng_reset crypto_rng_seedsize
diff --git a/Documentation/crypto/api-skcipher.rst b/Documentation/crypto/api-skcipher.rst
index 20ba08dddf2e..7934edd73932 100644
--- a/Documentation/crypto/api-skcipher.rst
+++ b/Documentation/crypto/api-skcipher.rst
@@ -5,7 +5,7 @@ Block Cipher Algorithm Definitions
:doc: Block Cipher Algorithm Definitions

.. kernel-doc:: include/linux/crypto.h
- :functions: crypto_alg ablkcipher_alg blkcipher_alg cipher_alg compress_alg
+ :specific: crypto_alg ablkcipher_alg blkcipher_alg cipher_alg compress_alg

Symmetric Key Cipher API
------------------------
@@ -14,7 +14,7 @@ Symmetric Key Cipher API
:doc: Symmetric Key Cipher API

.. kernel-doc:: include/crypto/skcipher.h
- :functions: crypto_alloc_skcipher crypto_free_skcipher crypto_has_skcipher crypto_skcipher_ivsize crypto_skcipher_blocksize crypto_skcipher_setkey crypto_skcipher_reqtfm crypto_skcipher_encrypt crypto_skcipher_decrypt
+ :specific: crypto_alloc_skcipher crypto_free_skcipher crypto_has_skcipher crypto_skcipher_ivsize crypto_skcipher_blocksize crypto_skcipher_setkey crypto_skcipher_reqtfm crypto_skcipher_encrypt crypto_skcipher_decrypt

Symmetric Key Cipher Request Handle
-----------------------------------
@@ -23,7 +23,7 @@ Symmetric Key Cipher Request Handle
:doc: Symmetric Key Cipher Request Handle

.. kernel-doc:: include/crypto/skcipher.h
- :functions: crypto_skcipher_reqsize skcipher_request_set_tfm skcipher_request_alloc skcipher_request_free skcipher_request_set_callback skcipher_request_set_crypt
+ :specific: crypto_skcipher_reqsize skcipher_request_set_tfm skcipher_request_alloc skcipher_request_free skcipher_request_set_callback skcipher_request_set_crypt

Single Block Cipher API
-----------------------
@@ -32,7 +32,7 @@ Single Block Cipher API
:doc: Single Block Cipher API

.. kernel-doc:: include/linux/crypto.h
- :functions: crypto_alloc_cipher crypto_free_cipher crypto_has_cipher crypto_cipher_blocksize crypto_cipher_setkey crypto_cipher_encrypt_one crypto_cipher_decrypt_one
+ :specific: crypto_alloc_cipher crypto_free_cipher crypto_has_cipher crypto_cipher_blocksize crypto_cipher_setkey crypto_cipher_encrypt_one crypto_cipher_decrypt_one

Asynchronous Block Cipher API - Deprecated
------------------------------------------
@@ -41,7 +41,7 @@ Asynchronous Block Cipher API - Deprecated
:doc: Asynchronous Block Cipher API

.. kernel-doc:: include/linux/crypto.h
- :functions: crypto_free_ablkcipher crypto_has_ablkcipher crypto_ablkcipher_ivsize crypto_ablkcipher_blocksize crypto_ablkcipher_setkey crypto_ablkcipher_reqtfm crypto_ablkcipher_encrypt crypto_ablkcipher_decrypt
+ :specific: crypto_free_ablkcipher crypto_has_ablkcipher crypto_ablkcipher_ivsize crypto_ablkcipher_blocksize crypto_ablkcipher_setkey crypto_ablkcipher_reqtfm crypto_ablkcipher_encrypt crypto_ablkcipher_decrypt

Asynchronous Cipher Request Handle - Deprecated
-----------------------------------------------
@@ -50,7 +50,7 @@ Asynchronous Cipher Request Handle - Deprecated
:doc: Asynchronous Cipher Request Handle

.. kernel-doc:: include/linux/crypto.h
- :functions: crypto_ablkcipher_reqsize ablkcipher_request_set_tfm ablkcipher_request_alloc ablkcipher_request_free ablkcipher_request_set_callback ablkcipher_request_set_crypt
+ :specific: crypto_ablkcipher_reqsize ablkcipher_request_set_tfm ablkcipher_request_alloc ablkcipher_request_free ablkcipher_request_set_callback ablkcipher_request_set_crypt

Synchronous Block Cipher API - Deprecated
-----------------------------------------
@@ -59,4 +59,4 @@ Synchronous Block Cipher API - Deprecated
:doc: Synchronous Block Cipher API

.. kernel-doc:: include/linux/crypto.h
- :functions: crypto_alloc_blkcipher crypto_free_blkcipher crypto_has_blkcipher crypto_blkcipher_name crypto_blkcipher_ivsize crypto_blkcipher_blocksize crypto_blkcipher_setkey crypto_blkcipher_encrypt crypto_blkcipher_encrypt_iv crypto_blkcipher_decrypt crypto_blkcipher_decrypt_iv crypto_blkcipher_set_iv crypto_blkcipher_get_iv
+ :specific: crypto_alloc_blkcipher crypto_free_blkcipher crypto_has_blkcipher crypto_blkcipher_name crypto_blkcipher_ivsize crypto_blkcipher_blocksize crypto_blkcipher_setkey crypto_blkcipher_encrypt crypto_blkcipher_encrypt_iv crypto_blkcipher_decrypt crypto_blkcipher_decrypt_iv crypto_blkcipher_set_iv crypto_blkcipher_get_iv
diff --git a/Documentation/dev-tools/kselftest.rst b/Documentation/dev-tools/kselftest.rst
index ecdfdc9d4b03..da60a749eb10 100644
--- a/Documentation/dev-tools/kselftest.rst
+++ b/Documentation/dev-tools/kselftest.rst
@@ -300,7 +300,7 @@ Helpers
-------

.. kernel-doc:: tools/testing/selftests/kselftest_harness.h
- :functions: TH_LOG TEST TEST_SIGNAL FIXTURE FIXTURE_DATA FIXTURE_SETUP
+ :specific: TH_LOG TEST TEST_SIGNAL FIXTURE FIXTURE_DATA FIXTURE_SETUP
FIXTURE_TEARDOWN TEST_F TEST_HARNESS_MAIN

Operators
@@ -310,7 +310,7 @@ Operators
:doc: operators

.. kernel-doc:: tools/testing/selftests/kselftest_harness.h
- :functions: ASSERT_EQ ASSERT_NE ASSERT_LT ASSERT_LE ASSERT_GT ASSERT_GE
+ :specific: ASSERT_EQ ASSERT_NE ASSERT_LT ASSERT_LE ASSERT_GT ASSERT_GE
ASSERT_NULL ASSERT_TRUE ASSERT_NULL ASSERT_TRUE ASSERT_FALSE
ASSERT_STREQ ASSERT_STRNE EXPECT_EQ EXPECT_NE EXPECT_LT
EXPECT_LE EXPECT_GT EXPECT_GE EXPECT_NULL EXPECT_TRUE
diff --git a/Documentation/doc-guide/kernel-doc.rst b/Documentation/doc-guide/kernel-doc.rst
index 192c36af39e2..c287c5edaa5c 100644
--- a/Documentation/doc-guide/kernel-doc.rst
+++ b/Documentation/doc-guide/kernel-doc.rst
@@ -476,6 +476,19 @@ internal: *[source-pattern ...]*
.. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c
:internal:

+specific: *[ function/type ...]*
+ Include documentation for each *function* and *type* in *source*.
+ If no *function* is specified, the documentation for all functions
+ and types in the *source* will be included.
+
+ Examples::
+
+ .. kernel-doc:: lib/bitmap.c
+ :specific: bitmap_parselist bitmap_parselist_user
+
+ .. kernel-doc:: lib/idr.c
+ :specific:
+
doc: *title*
Include documentation for the ``DOC:`` paragraph identified by *title* in
*source*. Spaces are allowed in *title*; do not quote the *title*. The *title*
@@ -488,19 +501,6 @@ doc: *title*
.. kernel-doc:: drivers/gpu/drm/i915/intel_audio.c
:doc: High Definition Audio over HDMI and Display Port

-functions: *[ function ...]*
- Include documentation for each *function* in *source*.
- If no *function* is specified, the documentation for all functions
- and types in the *source* will be included.
-
- Examples::
-
- .. kernel-doc:: lib/bitmap.c
- :functions: bitmap_parselist bitmap_parselist_user
-
- .. kernel-doc:: lib/idr.c
- :functions:
-
Without options, the kernel-doc directive includes all documentation comments
from the source file.

diff --git a/Documentation/driver-api/80211/cfg80211.rst b/Documentation/driver-api/80211/cfg80211.rst
index eeab91b59457..aeecafeaa0b7 100644
--- a/Documentation/driver-api/80211/cfg80211.rst
+++ b/Documentation/driver-api/80211/cfg80211.rst
@@ -12,79 +12,79 @@ Device registration
:doc: Device registration

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_channel_flags
+ :specific: ieee80211_channel_flags

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_channel
+ :specific: ieee80211_channel

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_rate_flags
+ :specific: ieee80211_rate_flags

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_rate
+ :specific: ieee80211_rate

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_sta_ht_cap
+ :specific: ieee80211_sta_ht_cap

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_supported_band
+ :specific: ieee80211_supported_band

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_signal_type
+ :specific: cfg80211_signal_type

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_params_flags
+ :specific: wiphy_params_flags

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_flags
+ :specific: wiphy_flags

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy
+ :specific: wiphy

.. kernel-doc:: include/net/cfg80211.h
- :functions: wireless_dev
+ :specific: wireless_dev

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_new
+ :specific: wiphy_new

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_read_of_freq_limits
+ :specific: wiphy_read_of_freq_limits

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_register
+ :specific: wiphy_register

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_unregister
+ :specific: wiphy_unregister

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_free
+ :specific: wiphy_free

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_name
+ :specific: wiphy_name

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_dev
+ :specific: wiphy_dev

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_priv
+ :specific: wiphy_priv

.. kernel-doc:: include/net/cfg80211.h
- :functions: priv_to_wiphy
+ :specific: priv_to_wiphy

.. kernel-doc:: include/net/cfg80211.h
- :functions: set_wiphy_dev
+ :specific: set_wiphy_dev

.. kernel-doc:: include/net/cfg80211.h
- :functions: wdev_priv
+ :specific: wdev_priv

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_iface_limit
+ :specific: ieee80211_iface_limit

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_iface_combination
+ :specific: ieee80211_iface_combination

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_check_combinations
+ :specific: cfg80211_check_combinations

Actions and configuration
=========================
@@ -93,139 +93,139 @@ Actions and configuration
:doc: Actions and configuration

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_ops
+ :specific: cfg80211_ops

.. kernel-doc:: include/net/cfg80211.h
- :functions: vif_params
+ :specific: vif_params

.. kernel-doc:: include/net/cfg80211.h
- :functions: key_params
+ :specific: key_params

.. kernel-doc:: include/net/cfg80211.h
- :functions: survey_info_flags
+ :specific: survey_info_flags

.. kernel-doc:: include/net/cfg80211.h
- :functions: survey_info
+ :specific: survey_info

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_beacon_data
+ :specific: cfg80211_beacon_data

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_ap_settings
+ :specific: cfg80211_ap_settings

.. kernel-doc:: include/net/cfg80211.h
- :functions: station_parameters
+ :specific: station_parameters

.. kernel-doc:: include/net/cfg80211.h
- :functions: rate_info_flags
+ :specific: rate_info_flags

.. kernel-doc:: include/net/cfg80211.h
- :functions: rate_info
+ :specific: rate_info

.. kernel-doc:: include/net/cfg80211.h
- :functions: station_info
+ :specific: station_info

.. kernel-doc:: include/net/cfg80211.h
- :functions: monitor_flags
+ :specific: monitor_flags

.. kernel-doc:: include/net/cfg80211.h
- :functions: mpath_info_flags
+ :specific: mpath_info_flags

.. kernel-doc:: include/net/cfg80211.h
- :functions: mpath_info
+ :specific: mpath_info

.. kernel-doc:: include/net/cfg80211.h
- :functions: bss_parameters
+ :specific: bss_parameters

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_txq_params
+ :specific: ieee80211_txq_params

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_crypto_settings
+ :specific: cfg80211_crypto_settings

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_auth_request
+ :specific: cfg80211_auth_request

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_assoc_request
+ :specific: cfg80211_assoc_request

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_deauth_request
+ :specific: cfg80211_deauth_request

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_disassoc_request
+ :specific: cfg80211_disassoc_request

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_ibss_params
+ :specific: cfg80211_ibss_params

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_connect_params
+ :specific: cfg80211_connect_params

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_pmksa
+ :specific: cfg80211_pmksa

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_rx_mlme_mgmt
+ :specific: cfg80211_rx_mlme_mgmt

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_auth_timeout
+ :specific: cfg80211_auth_timeout

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_rx_assoc_resp
+ :specific: cfg80211_rx_assoc_resp

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_assoc_timeout
+ :specific: cfg80211_assoc_timeout

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_tx_mlme_mgmt
+ :specific: cfg80211_tx_mlme_mgmt

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_ibss_joined
+ :specific: cfg80211_ibss_joined

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_connect_resp_params
+ :specific: cfg80211_connect_resp_params

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_connect_done
+ :specific: cfg80211_connect_done

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_connect_result
+ :specific: cfg80211_connect_result

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_connect_bss
+ :specific: cfg80211_connect_bss

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_connect_timeout
+ :specific: cfg80211_connect_timeout

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_roamed
+ :specific: cfg80211_roamed

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_disconnected
+ :specific: cfg80211_disconnected

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_ready_on_channel
+ :specific: cfg80211_ready_on_channel

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_remain_on_channel_expired
+ :specific: cfg80211_remain_on_channel_expired

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_new_sta
+ :specific: cfg80211_new_sta

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_rx_mgmt
+ :specific: cfg80211_rx_mgmt

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_mgmt_tx_status
+ :specific: cfg80211_mgmt_tx_status

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_cqm_rssi_notify
+ :specific: cfg80211_cqm_rssi_notify

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_cqm_pktloss_notify
+ :specific: cfg80211_cqm_pktloss_notify

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_michael_mic_failure
+ :specific: cfg80211_michael_mic_failure

Scanning and BSS list handling
==============================
@@ -234,34 +234,34 @@ Scanning and BSS list handling
:doc: Scanning and BSS list handling

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_ssid
+ :specific: cfg80211_ssid

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_scan_request
+ :specific: cfg80211_scan_request

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_scan_done
+ :specific: cfg80211_scan_done

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_bss
+ :specific: cfg80211_bss

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_inform_bss
+ :specific: cfg80211_inform_bss

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_inform_bss_frame_data
+ :specific: cfg80211_inform_bss_frame_data

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_inform_bss_data
+ :specific: cfg80211_inform_bss_data

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_unlink_bss
+ :specific: cfg80211_unlink_bss

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_find_ie
+ :specific: cfg80211_find_ie

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_bss_get_ie
+ :specific: ieee80211_bss_get_ie

Utility functions
=================
@@ -270,25 +270,25 @@ Utility functions
:doc: Utility functions

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_channel_to_frequency
+ :specific: ieee80211_channel_to_frequency

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_frequency_to_channel
+ :specific: ieee80211_frequency_to_channel

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_get_channel
+ :specific: ieee80211_get_channel

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_get_response_rate
+ :specific: ieee80211_get_response_rate

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_hdrlen
+ :specific: ieee80211_hdrlen

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_get_hdrlen_from_skb
+ :specific: ieee80211_get_hdrlen_from_skb

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_radiotap_iterator
+ :specific: ieee80211_radiotap_iterator

Data path helpers
=================
@@ -297,13 +297,13 @@ Data path helpers
:doc: Data path helpers

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_data_to_8023
+ :specific: ieee80211_data_to_8023

.. kernel-doc:: include/net/cfg80211.h
- :functions: ieee80211_amsdu_to_8023s
+ :specific: ieee80211_amsdu_to_8023s

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_classify8021d
+ :specific: cfg80211_classify8021d

Regulatory enforcement infrastructure
=====================================
@@ -312,13 +312,13 @@ Regulatory enforcement infrastructure
:doc: Regulatory enforcement infrastructure

.. kernel-doc:: include/net/cfg80211.h
- :functions: regulatory_hint
+ :specific: regulatory_hint

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_apply_custom_regulatory
+ :specific: wiphy_apply_custom_regulatory

.. kernel-doc:: include/net/cfg80211.h
- :functions: freq_reg_info
+ :specific: freq_reg_info

RFkill integration
==================
@@ -327,13 +327,13 @@ RFkill integration
:doc: RFkill integration

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_rfkill_set_hw_state
+ :specific: wiphy_rfkill_set_hw_state

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_rfkill_start_polling
+ :specific: wiphy_rfkill_start_polling

.. kernel-doc:: include/net/cfg80211.h
- :functions: wiphy_rfkill_stop_polling
+ :specific: wiphy_rfkill_stop_polling

Test mode
=========
@@ -342,13 +342,13 @@ Test mode
:doc: Test mode

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_testmode_alloc_reply_skb
+ :specific: cfg80211_testmode_alloc_reply_skb

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_testmode_reply
+ :specific: cfg80211_testmode_reply

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_testmode_alloc_event_skb
+ :specific: cfg80211_testmode_alloc_event_skb

.. kernel-doc:: include/net/cfg80211.h
- :functions: cfg80211_testmode_event
+ :specific: cfg80211_testmode_event
diff --git a/Documentation/driver-api/80211/mac80211-advanced.rst b/Documentation/driver-api/80211/mac80211-advanced.rst
index 9f1c5bb7ac35..9eeff622a192 100644
--- a/Documentation/driver-api/80211/mac80211-advanced.rst
+++ b/Documentation/driver-api/80211/mac80211-advanced.rst
@@ -15,25 +15,25 @@ appropriate trigger, which will then be triggered appropriately by
mac80211.

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_get_tx_led_name
+ :specific: ieee80211_get_tx_led_name

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_get_rx_led_name
+ :specific: ieee80211_get_rx_led_name

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_get_assoc_led_name
+ :specific: ieee80211_get_assoc_led_name

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_get_radio_led_name
+ :specific: ieee80211_get_radio_led_name

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_tpt_blink
+ :specific: ieee80211_tpt_blink

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_tpt_led_trigger_flags
+ :specific: ieee80211_tpt_led_trigger_flags

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_create_tpt_led_trigger
+ :specific: ieee80211_create_tpt_led_trigger

Hardware crypto acceleration
============================
@@ -42,22 +42,22 @@ Hardware crypto acceleration
:doc: Hardware crypto acceleration

.. kernel-doc:: include/net/mac80211.h
- :functions: set_key_cmd
+ :specific: set_key_cmd

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_key_conf
+ :specific: ieee80211_key_conf

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_key_flags
+ :specific: ieee80211_key_flags

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_get_tkip_p1k
+ :specific: ieee80211_get_tkip_p1k

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_get_tkip_p1k_iv
+ :specific: ieee80211_get_tkip_p1k_iv

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_get_tkip_p2k
+ :specific: ieee80211_get_tkip_p2k

Powersave support
=================
@@ -72,7 +72,7 @@ Beacon filter support
:doc: Beacon filter support

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_beacon_loss
+ :specific: ieee80211_beacon_loss

Multiple queues and QoS support
===============================
@@ -80,7 +80,7 @@ Multiple queues and QoS support
TBD

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_tx_queue_params
+ :specific: ieee80211_tx_queue_params

Access point mode support
=========================
@@ -99,28 +99,28 @@ support for powersaving clients
:doc: AP support for powersaving clients

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_get_buffered_bc
+ :specific: ieee80211_get_buffered_bc

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_beacon_get
+ :specific: ieee80211_beacon_get

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_sta_eosp
+ :specific: ieee80211_sta_eosp

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_frame_release_type
+ :specific: ieee80211_frame_release_type

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_sta_ps_transition
+ :specific: ieee80211_sta_ps_transition

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_sta_ps_transition_ni
+ :specific: ieee80211_sta_ps_transition_ni

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_sta_set_buffered
+ :specific: ieee80211_sta_set_buffered

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_sta_block_awake
+ :specific: ieee80211_sta_block_awake

Supporting multiple virtual interfaces
======================================
@@ -134,10 +134,10 @@ addresses here, note which configurations are supported by mac80211, add
notes about supporting hw crypto with it.

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_iterate_active_interfaces
+ :specific: ieee80211_iterate_active_interfaces

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_iterate_active_interfaces_atomic
+ :specific: ieee80211_iterate_active_interfaces_atomic

Station handling
================
@@ -145,16 +145,16 @@ Station handling
TODO

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_sta
+ :specific: ieee80211_sta

.. kernel-doc:: include/net/mac80211.h
- :functions: sta_notify_cmd
+ :specific: sta_notify_cmd

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_find_sta
+ :specific: ieee80211_find_sta

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_find_sta_by_ifaddr
+ :specific: ieee80211_find_sta_by_ifaddr

Hardware scan offload
=====================
@@ -162,7 +162,7 @@ Hardware scan offload
TBD

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_scan_completed
+ :specific: ieee80211_scan_completed

Aggregation
===========
@@ -184,7 +184,7 @@ RX A-MPDU aggregation
.. WARNING: DOCPROC directive not supported: !Cnet/mac80211/agg-rx.c

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_ampdu_mlme_action
+ :specific: ieee80211_ampdu_mlme_action

Spatial Multiplexing Powersave (SMPS)
=====================================
@@ -193,10 +193,10 @@ Spatial Multiplexing Powersave (SMPS)
:doc: Spatial multiplexing power save

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_request_smps
+ :specific: ieee80211_request_smps

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_smps_mode
+ :specific: ieee80211_smps_mode

TBD

@@ -209,22 +209,22 @@ Rate Control API
TBD

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_start_tx_ba_session
+ :specific: ieee80211_start_tx_ba_session

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_start_tx_ba_cb_irqsafe
+ :specific: ieee80211_start_tx_ba_cb_irqsafe

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_stop_tx_ba_session
+ :specific: ieee80211_stop_tx_ba_session

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_stop_tx_ba_cb_irqsafe
+ :specific: ieee80211_stop_tx_ba_cb_irqsafe

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_rate_control_changed
+ :specific: ieee80211_rate_control_changed

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_tx_rate_control
+ :specific: ieee80211_tx_rate_control

TBD

@@ -261,10 +261,10 @@ Programming information
-----------------------

.. kernel-doc:: net/mac80211/sta_info.h
- :functions: sta_info
+ :specific: sta_info

.. kernel-doc:: net/mac80211/sta_info.h
- :functions: ieee80211_sta_info_flags
+ :specific: ieee80211_sta_info_flags

STA information lifetime rules
------------------------------
@@ -276,13 +276,13 @@ Aggregation
===========

.. kernel-doc:: net/mac80211/sta_info.h
- :functions: sta_ampdu_mlme
+ :specific: sta_ampdu_mlme

.. kernel-doc:: net/mac80211/sta_info.h
- :functions: tid_ampdu_tx
+ :specific: tid_ampdu_tx

.. kernel-doc:: net/mac80211/sta_info.h
- :functions: tid_ampdu_rx
+ :specific: tid_ampdu_rx

Synchronisation
===============
diff --git a/Documentation/driver-api/80211/mac80211.rst b/Documentation/driver-api/80211/mac80211.rst
index eab40bcf3987..6ac0fa665532 100644
--- a/Documentation/driver-api/80211/mac80211.rst
+++ b/Documentation/driver-api/80211/mac80211.rst
@@ -30,31 +30,31 @@ Finally, a discussion of hardware capabilities should be done with
references to other parts of the book.

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_hw
+ :specific: ieee80211_hw

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_hw_flags
+ :specific: ieee80211_hw_flags

.. kernel-doc:: include/net/mac80211.h
- :functions: SET_IEEE80211_DEV
+ :specific: SET_IEEE80211_DEV

.. kernel-doc:: include/net/mac80211.h
- :functions: SET_IEEE80211_PERM_ADDR
+ :specific: SET_IEEE80211_PERM_ADDR

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_ops
+ :specific: ieee80211_ops

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_alloc_hw
+ :specific: ieee80211_alloc_hw

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_register_hw
+ :specific: ieee80211_register_hw

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_unregister_hw
+ :specific: ieee80211_unregister_hw

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_free_hw
+ :specific: ieee80211_free_hw

PHY configuration
=================
@@ -65,10 +65,10 @@ This chapter should describe PHY handling including start/stop callbacks
and the various structures used.

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_conf
+ :specific: ieee80211_conf

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_conf_flags
+ :specific: ieee80211_conf_flags

Virtual interfaces
==================
@@ -88,7 +88,7 @@ the recommendation to allow only a single interface in STA mode at
first!

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_vif
+ :specific: ieee80211_vif

Receive and transmit processing
===============================
@@ -123,79 +123,79 @@ functions/definitions
---------------------

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_rx_status
+ :specific: ieee80211_rx_status

.. kernel-doc:: include/net/mac80211.h
- :functions: mac80211_rx_encoding_flags
+ :specific: mac80211_rx_encoding_flags

.. kernel-doc:: include/net/mac80211.h
- :functions: mac80211_rx_flags
+ :specific: mac80211_rx_flags

.. kernel-doc:: include/net/mac80211.h
- :functions: mac80211_tx_info_flags
+ :specific: mac80211_tx_info_flags

.. kernel-doc:: include/net/mac80211.h
- :functions: mac80211_tx_control_flags
+ :specific: mac80211_tx_control_flags

.. kernel-doc:: include/net/mac80211.h
- :functions: mac80211_rate_control_flags
+ :specific: mac80211_rate_control_flags

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_tx_rate
+ :specific: ieee80211_tx_rate

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_tx_info
+ :specific: ieee80211_tx_info

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_tx_info_clear_status
+ :specific: ieee80211_tx_info_clear_status

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_rx
+ :specific: ieee80211_rx

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_rx_ni
+ :specific: ieee80211_rx_ni

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_rx_irqsafe
+ :specific: ieee80211_rx_irqsafe

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_tx_status
+ :specific: ieee80211_tx_status

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_tx_status_ni
+ :specific: ieee80211_tx_status_ni

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_tx_status_irqsafe
+ :specific: ieee80211_tx_status_irqsafe

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_rts_get
+ :specific: ieee80211_rts_get

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_rts_duration
+ :specific: ieee80211_rts_duration

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_ctstoself_get
+ :specific: ieee80211_ctstoself_get

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_ctstoself_duration
+ :specific: ieee80211_ctstoself_duration

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_generic_frame_duration
+ :specific: ieee80211_generic_frame_duration

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_wake_queue
+ :specific: ieee80211_wake_queue

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_stop_queue
+ :specific: ieee80211_stop_queue

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_wake_queues
+ :specific: ieee80211_wake_queues

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_stop_queues
+ :specific: ieee80211_stop_queues

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_queue_stopped
+ :specific: ieee80211_queue_stopped

Frame filtering
===============
@@ -204,7 +204,7 @@ Frame filtering
:doc: Frame filtering

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_filter_flags
+ :specific: ieee80211_filter_flags

The mac80211 workqueue
======================
@@ -213,7 +213,7 @@ The mac80211 workqueue
:doc: mac80211 workqueue

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_queue_work
+ :specific: ieee80211_queue_work

.. kernel-doc:: include/net/mac80211.h
- :functions: ieee80211_queue_delayed_work
+ :specific: ieee80211_queue_delayed_work
diff --git a/Documentation/driver-api/device_connection.rst b/Documentation/driver-api/device_connection.rst
index ba364224c349..0feaf7146dd6 100644
--- a/Documentation/driver-api/device_connection.rst
+++ b/Documentation/driver-api/device_connection.rst
@@ -40,4 +40,4 @@ API
---

.. kernel-doc:: drivers/base/devcon.c
- :functions: device_connection_find_match device_connection_find device_connection_add device_connection_remove
+ :specific: device_connection_find_match device_connection_find device_connection_add device_connection_remove
diff --git a/Documentation/driver-api/device_link.rst b/Documentation/driver-api/device_link.rst
index 1b5020ec6517..6e79007d41cd 100644
--- a/Documentation/driver-api/device_link.rst
+++ b/Documentation/driver-api/device_link.rst
@@ -258,7 +258,7 @@ State machine
=============

.. kernel-doc:: include/linux/device.h
- :functions: device_link_state
+ :specific: device_link_state

::

@@ -321,4 +321,4 @@ API
===

.. kernel-doc:: drivers/base/core.c
- :functions: device_link_add device_link_del device_link_remove
+ :specific: device_link_add device_link_del device_link_remove
diff --git a/Documentation/driver-api/firmware/fallback-mechanisms.rst b/Documentation/driver-api/firmware/fallback-mechanisms.rst
index 8b041d0ab426..08d60ae4e138 100644
--- a/Documentation/driver-api/firmware/fallback-mechanisms.rst
+++ b/Documentation/driver-api/firmware/fallback-mechanisms.rst
@@ -111,7 +111,7 @@ expected to be used regularly by userspace.
firmware_fallback_sysfs
-----------------------
.. kernel-doc:: drivers/base/firmware_loader/fallback.c
- :functions: firmware_fallback_sysfs
+ :specific: firmware_fallback_sysfs

Firmware kobject uevent fallback mechanism
==========================================
diff --git a/Documentation/driver-api/firmware/other_interfaces.rst b/Documentation/driver-api/firmware/other_interfaces.rst
index b81794e0cfbb..da948488a4c4 100644
--- a/Documentation/driver-api/firmware/other_interfaces.rst
+++ b/Documentation/driver-api/firmware/other_interfaces.rst
@@ -27,19 +27,19 @@ and processed one by one. ARM’s SMCCC is used to pass the execution
of the requests on to a secure monitor (EL3).

.. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
- :functions: stratix10_svc_command_code
+ :specific: stratix10_svc_command_code

.. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
- :functions: stratix10_svc_client_msg
+ :specific: stratix10_svc_client_msg

.. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
- :functions: stratix10_svc_command_config_type
+ :specific: stratix10_svc_command_config_type

.. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
- :functions: stratix10_svc_cb_data
+ :specific: stratix10_svc_cb_data

.. kernel-doc:: include/linux/firmware/intel/stratix10-svc-client.h
- :functions: stratix10_svc_client
+ :specific: stratix10_svc_client

.. kernel-doc:: drivers/firmware/stratix10-svc.c
:export:
diff --git a/Documentation/driver-api/firmware/request_firmware.rst b/Documentation/driver-api/firmware/request_firmware.rst
index f62bdcbfed5b..5d3cee760735 100644
--- a/Documentation/driver-api/firmware/request_firmware.rst
+++ b/Documentation/driver-api/firmware/request_firmware.rst
@@ -18,22 +18,22 @@ an error is returned.
request_firmware
----------------
.. kernel-doc:: drivers/base/firmware_loader/main.c
- :functions: request_firmware
+ :specific: request_firmware

firmware_request_nowarn
-----------------------
.. kernel-doc:: drivers/base/firmware_loader/main.c
- :functions: firmware_request_nowarn
+ :specific: firmware_request_nowarn

request_firmware_direct
-----------------------
.. kernel-doc:: drivers/base/firmware_loader/main.c
- :functions: request_firmware_direct
+ :specific: request_firmware_direct

request_firmware_into_buf
-------------------------
.. kernel-doc:: drivers/base/firmware_loader/main.c
- :functions: request_firmware_into_buf
+ :specific: request_firmware_into_buf

Asynchronous firmware requests
==============================
@@ -47,7 +47,7 @@ in atomic contexts.
request_firmware_nowait
-----------------------
.. kernel-doc:: drivers/base/firmware_loader/main.c
- :functions: request_firmware_nowait
+ :specific: request_firmware_nowait

Special optimizations on reboot
===============================
@@ -61,7 +61,7 @@ firmware to be loaded.
firmware_request_cache()
------------------------
.. kernel-doc:: drivers/base/firmware_loader/main.c
- :functions: firmware_request_cache
+ :specific: firmware_request_cache

request firmware API expected driver use
========================================
diff --git a/Documentation/driver-api/fpga/fpga-bridge.rst b/Documentation/driver-api/fpga/fpga-bridge.rst
index 71c5a40da320..3aaecbffcf97 100644
--- a/Documentation/driver-api/fpga/fpga-bridge.rst
+++ b/Documentation/driver-api/fpga/fpga-bridge.rst
@@ -11,16 +11,16 @@ API to implement a new FPGA bridge
* :c:func:`fpga_bridge_unregister()` — Unregister a bridge

.. kernel-doc:: include/linux/fpga/fpga-bridge.h
- :functions: fpga_bridge
+ :specific: fpga_bridge

.. kernel-doc:: include/linux/fpga/fpga-bridge.h
- :functions: fpga_bridge_ops
+ :specific: fpga_bridge_ops

.. kernel-doc:: drivers/fpga/fpga-bridge.c
- :functions: devm_fpga_bridge_create
+ :specific: devm_fpga_bridge_create

.. kernel-doc:: drivers/fpga/fpga-bridge.c
- :functions: fpga_bridge_register
+ :specific: fpga_bridge_register

.. kernel-doc:: drivers/fpga/fpga-bridge.c
- :functions: fpga_bridge_unregister
+ :specific: fpga_bridge_unregister
diff --git a/Documentation/driver-api/fpga/fpga-mgr.rst b/Documentation/driver-api/fpga/fpga-mgr.rst
index 576f1945eacd..5445f66910ca 100644
--- a/Documentation/driver-api/fpga/fpga-mgr.rst
+++ b/Documentation/driver-api/fpga/fpga-mgr.rst
@@ -109,19 +109,19 @@ API for implementing a new FPGA Manager driver
* :c:func:`fpga_mgr_unregister` — Unregister an FPGA manager

.. kernel-doc:: include/linux/fpga/fpga-mgr.h
- :functions: fpga_mgr_states
+ :specific: fpga_mgr_states

.. kernel-doc:: include/linux/fpga/fpga-mgr.h
- :functions: fpga_manager
+ :specific: fpga_manager

.. kernel-doc:: include/linux/fpga/fpga-mgr.h
- :functions: fpga_manager_ops
+ :specific: fpga_manager_ops

.. kernel-doc:: drivers/fpga/fpga-mgr.c
- :functions: devm_fpga_mgr_create
+ :specific: devm_fpga_mgr_create

.. kernel-doc:: drivers/fpga/fpga-mgr.c
- :functions: fpga_mgr_register
+ :specific: fpga_mgr_register

.. kernel-doc:: drivers/fpga/fpga-mgr.c
- :functions: fpga_mgr_unregister
+ :specific: fpga_mgr_unregister
diff --git a/Documentation/driver-api/fpga/fpga-programming.rst b/Documentation/driver-api/fpga/fpga-programming.rst
index b5484df6ff0f..4abf868898e9 100644
--- a/Documentation/driver-api/fpga/fpga-programming.rst
+++ b/Documentation/driver-api/fpga/fpga-programming.rst
@@ -90,7 +90,7 @@ API for programming an FPGA
* :c:func:`fpga_image_info_free()` — Free an FPGA image info struct

.. kernel-doc:: drivers/fpga/fpga-region.c
- :functions: fpga_region_program_fpga
+ :specific: fpga_region_program_fpga

FPGA Manager flags

@@ -98,10 +98,10 @@ FPGA Manager flags
:doc: FPGA Manager flags

.. kernel-doc:: include/linux/fpga/fpga-mgr.h
- :functions: fpga_image_info
+ :specific: fpga_image_info

.. kernel-doc:: drivers/fpga/fpga-mgr.c
- :functions: fpga_image_info_alloc
+ :specific: fpga_image_info_alloc

.. kernel-doc:: drivers/fpga/fpga-mgr.c
- :functions: fpga_image_info_free
+ :specific: fpga_image_info_free
diff --git a/Documentation/driver-api/fpga/fpga-region.rst b/Documentation/driver-api/fpga/fpga-region.rst
index 0529b2d2231a..94344f1a4d0c 100644
--- a/Documentation/driver-api/fpga/fpga-region.rst
+++ b/Documentation/driver-api/fpga/fpga-region.rst
@@ -73,31 +73,31 @@ following APIs to handle building or tearing down that list.
* :c:func:`fpga_bridges_put` — Given a list of bridges, put them

.. kernel-doc:: include/linux/fpga/fpga-region.h
- :functions: fpga_region
+ :specific: fpga_region

.. kernel-doc:: drivers/fpga/fpga-region.c
- :functions: devm_fpga_region_create
+ :specific: devm_fpga_region_create

.. kernel-doc:: drivers/fpga/fpga-region.c
- :functions: fpga_region_register
+ :specific: fpga_region_register

.. kernel-doc:: drivers/fpga/fpga-region.c
- :functions: fpga_region_unregister
+ :specific: fpga_region_unregister

.. kernel-doc:: drivers/fpga/fpga-mgr.c
- :functions: fpga_mgr_get
+ :specific: fpga_mgr_get

.. kernel-doc:: drivers/fpga/fpga-mgr.c
- :functions: of_fpga_mgr_get
+ :specific: of_fpga_mgr_get

.. kernel-doc:: drivers/fpga/fpga-mgr.c
- :functions: fpga_mgr_put
+ :specific: fpga_mgr_put

.. kernel-doc:: drivers/fpga/fpga-bridge.c
- :functions: fpga_bridge_get_to_list
+ :specific: fpga_bridge_get_to_list

.. kernel-doc:: drivers/fpga/fpga-bridge.c
- :functions: of_fpga_bridge_get_to_list
+ :specific: of_fpga_bridge_get_to_list

.. kernel-doc:: drivers/fpga/fpga-bridge.c
- :functions: fpga_bridges_put
+ :specific: fpga_bridges_put
diff --git a/Documentation/driver-api/i2c.rst b/Documentation/driver-api/i2c.rst
index 7582c079d747..8f585d9adf62 100644
--- a/Documentation/driver-api/i2c.rst
+++ b/Documentation/driver-api/i2c.rst
@@ -39,7 +39,7 @@ i2c_adapter devices which don't support those I2C operations.
:internal:

.. kernel-doc:: drivers/i2c/i2c-boardinfo.c
- :functions: i2c_register_board_info
+ :specific: i2c_register_board_info

.. kernel-doc:: drivers/i2c/i2c-core-base.c
:export:
diff --git a/Documentation/driver-api/mei/hdcp.rst b/Documentation/driver-api/mei/hdcp.rst
index e85a065b1cdc..aebfc3378cab 100644
--- a/Documentation/driver-api/mei/hdcp.rst
+++ b/Documentation/driver-api/mei/hdcp.rst
@@ -28,5 +28,5 @@ mei_hdcp api
------------

.. kernel-doc:: drivers/misc/mei/hdcp/mei_hdcp.c
- :functions:
+ :specific:

diff --git a/Documentation/driver-api/spi.rst b/Documentation/driver-api/spi.rst
index f64cb666498a..288d0b315931 100644
--- a/Documentation/driver-api/spi.rst
+++ b/Documentation/driver-api/spi.rst
@@ -47,7 +47,7 @@ policies for how they use the bits transferred with SPI.
:internal:

.. kernel-doc:: drivers/spi/spi.c
- :functions: spi_register_board_info
+ :specific: spi_register_board_info

.. kernel-doc:: drivers/spi/spi.c
:export:
diff --git a/Documentation/driver-api/usb/typec.rst b/Documentation/driver-api/usb/typec.rst
index 201163d8c13e..a3782833b6ea 100644
--- a/Documentation/driver-api/usb/typec.rst
+++ b/Documentation/driver-api/usb/typec.rst
@@ -63,7 +63,7 @@ The port drivers will describe every Type-C port they control with struct
typec_capability data structure, and register them with the following API:

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_register_port typec_unregister_port
+ :specific: typec_register_port typec_unregister_port

When registering the ports, the prefer_role member in struct typec_capability
deserves special notice. If the port that is being registered does not have
@@ -82,7 +82,7 @@ registration. The class offers the following API for registering/unregistering
partners.

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_register_partner typec_unregister_partner
+ :specific: typec_register_partner typec_unregister_partner

The class will provide a handle to struct typec_partner if the registration was
successful, or NULL.
@@ -94,7 +94,7 @@ create a sysfs directory for the identity under the partner device. The result
of Discover Identity command can then be reported with the following API:

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_partner_set_identity
+ :specific: typec_partner_set_identity

Registering Cables
~~~~~~~~~~~~~~~~~~
@@ -115,7 +115,7 @@ the details during registration. The class offers the following API for
registering/unregistering cables and their plugs:

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_register_cable typec_unregister_cable typec_register_plug typec_unregister_plug
+ :specific: typec_register_cable typec_unregister_cable typec_register_plug typec_unregister_plug

The class will provide a handle to struct typec_cable and struct typec_plug if
the registration is successful, or NULL if it isn't.
@@ -127,7 +127,7 @@ sysfs directory for the identity under the cable device. The result of Discover
Identity command can then be reported with the following API:

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_cable_set_identity
+ :specific: typec_cable_set_identity

Notifications
~~~~~~~~~~~~~
@@ -137,7 +137,7 @@ during connection of a partner or cable, the port driver must use the following
APIs to report it to the class:

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_set_data_role typec_set_pwr_role typec_set_vconn_role typec_set_pwr_opmode
+ :specific: typec_set_data_role typec_set_pwr_role typec_set_vconn_role typec_set_pwr_opmode

Alternate Modes
~~~~~~~~~~~~~~~
@@ -152,7 +152,7 @@ Ports that support Alternate Modes need to register each SVID they support with
the following API:

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_port_register_altmode
+ :specific: typec_port_register_altmode

If a partner or cable plug provides a list of SVIDs as response to USB Power
Delivery Structured VDM Discover SVIDs message, each SVID needs to be
@@ -161,12 +161,12 @@ registered.
API for the partners:

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_partner_register_altmode
+ :specific: typec_partner_register_altmode

API for the Cable Plugs:

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_plug_register_altmode
+ :specific: typec_plug_register_altmode

So ports, partners and cable plugs will register the alternate modes with their
own functions, but the registration will always return a handle to struct
@@ -174,13 +174,13 @@ typec_altmode on success, or NULL. The unregistration will happen with the same
function:

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_unregister_altmode
+ :specific: typec_unregister_altmode

If a partner or cable plug enters or exits a mode, the port driver needs to
notify the class with the following API:

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_altmode_update_active
+ :specific: typec_altmode_update_active

Multiplexer/DeMultiplexer Switches
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -193,7 +193,7 @@ route the pins on the connector to some other component besides USB. USB Type-C
Connector Class supplies an API for registering those switches.

.. kernel-doc:: drivers/usb/typec/mux.c
- :functions: typec_switch_register typec_switch_unregister typec_mux_register typec_mux_unregister
+ :specific: typec_switch_register typec_switch_unregister typec_mux_register typec_mux_unregister

In most cases the same physical mux will handle both the orientation and mode.
However, as the port drivers will be responsible for the orientation, and the
@@ -205,7 +205,7 @@ the switch for the port. The drivers can then use the following API for
controlling them:

.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_set_orientation typec_set_mode
+ :specific: typec_set_orientation typec_set_mode

If the connector is dual-role capable, there may also be a switch for the data
role. USB Type-C Connector Class does not supply separate API for them. The
diff --git a/Documentation/driver-api/usb/typec_bus.rst b/Documentation/driver-api/usb/typec_bus.rst
index f47a69bff498..762e53b66665 100644
--- a/Documentation/driver-api/usb/typec_bus.rst
+++ b/Documentation/driver-api/usb/typec_bus.rst
@@ -110,27 +110,27 @@ Alternate mode driver registering/unregistering
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/usb/typec/bus.c
- :functions: typec_altmode_register_driver typec_altmode_unregister_driver
+ :specific: typec_altmode_register_driver typec_altmode_unregister_driver

Alternate mode driver operations
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/usb/typec/bus.c
- :functions: typec_altmode_enter typec_altmode_exit typec_altmode_attention typec_altmode_vdm typec_altmode_notify
+ :specific: typec_altmode_enter typec_altmode_exit typec_altmode_attention typec_altmode_vdm typec_altmode_notify

API for the port drivers
~~~~~~~~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/usb/typec/bus.c
- :functions: typec_match_altmode
+ :specific: typec_match_altmode

Cable Plug operations
~~~~~~~~~~~~~~~~~~~~~

.. kernel-doc:: drivers/usb/typec/bus.c
- :functions: typec_altmode_get_plug typec_altmode_put_plug
+ :specific: typec_altmode_get_plug typec_altmode_put_plug

Notifications
~~~~~~~~~~~~~
.. kernel-doc:: drivers/usb/typec/class.c
- :functions: typec_altmode_register_notifier typec_altmode_unregister_notifier
+ :specific: typec_altmode_register_notifier typec_altmode_unregister_notifier
diff --git a/Documentation/gpu/amdgpu-dc.rst b/Documentation/gpu/amdgpu-dc.rst
index cc89b0fc11df..ec95a5a0aea4 100644
--- a/Documentation/gpu/amdgpu-dc.rst
+++ b/Documentation/gpu/amdgpu-dc.rst
@@ -39,7 +39,7 @@ Lifecycle
:doc: DM Lifecycle

.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
- :functions: dm_hw_init dm_hw_fini
+ :specific: dm_hw_init dm_hw_fini

Interrupts
----------
@@ -51,7 +51,7 @@ Interrupts
:internal:

.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
- :functions: register_hpd_handlers dm_crtc_high_irq dm_pflip_high_irq
+ :specific: register_hpd_handlers dm_crtc_high_irq dm_pflip_high_irq

Atomic Implementation
---------------------
@@ -60,7 +60,7 @@ Atomic Implementation
:doc: atomic

.. kernel-doc:: drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
- :functions: amdgpu_dm_atomic_check amdgpu_dm_atomic_commit_tail
+ :specific: amdgpu_dm_atomic_check amdgpu_dm_atomic_commit_tail

Display Core
============
diff --git a/Documentation/gpu/drm-kms-helpers.rst b/Documentation/gpu/drm-kms-helpers.rst
index 3868008db8a9..78a0457a9434 100644
--- a/Documentation/gpu/drm-kms-helpers.rst
+++ b/Documentation/gpu/drm-kms-helpers.rst
@@ -257,7 +257,7 @@ These functions aren't exported to drivers, but are documented here to help make
the MST topology helpers easier to understand

.. kernel-doc:: drivers/gpu/drm/drm_dp_mst_topology.c
- :functions: drm_dp_mst_topology_try_get_mstb drm_dp_mst_topology_get_mstb
+ :specific: drm_dp_mst_topology_try_get_mstb drm_dp_mst_topology_get_mstb
drm_dp_mst_topology_put_mstb
drm_dp_mst_topology_try_get_port drm_dp_mst_topology_get_port
drm_dp_mst_topology_put_port
diff --git a/Documentation/gpu/i915.rst b/Documentation/gpu/i915.rst
index 3415255ad3dc..c0c6d5e4a35c 100644
--- a/Documentation/gpu/i915.rst
+++ b/Documentation/gpu/i915.rst
@@ -32,13 +32,13 @@ Interrupt Handling
:doc: interrupt handling

.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
- :functions: intel_irq_init intel_irq_init_hw intel_hpd_init
+ :specific: intel_irq_init intel_irq_init_hw intel_hpd_init

.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
- :functions: intel_runtime_pm_disable_interrupts
+ :specific: intel_runtime_pm_disable_interrupts

.. kernel-doc:: drivers/gpu/drm/i915/i915_irq.c
- :functions: intel_runtime_pm_enable_interrupts
+ :specific: intel_runtime_pm_enable_interrupts

Intel GVT-g Guest Support(vGPU)
-------------------------------
@@ -181,22 +181,22 @@ Display Refresh Rate Switching (DRRS)
:doc: Display Refresh Rate Switching (DRRS)

.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c
- :functions: intel_dp_set_drrs_state
+ :specific: intel_dp_set_drrs_state

.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c
- :functions: intel_edp_drrs_enable
+ :specific: intel_edp_drrs_enable

.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c
- :functions: intel_edp_drrs_disable
+ :specific: intel_edp_drrs_disable

.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c
- :functions: intel_edp_drrs_invalidate
+ :specific: intel_edp_drrs_invalidate

.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c
- :functions: intel_edp_drrs_flush
+ :specific: intel_edp_drrs_flush

.. kernel-doc:: drivers/gpu/drm/i915/display/intel_dp.c
- :functions: intel_dp_drrs_init
+ :specific: intel_dp_drrs_init

DPIO
----
@@ -492,21 +492,21 @@ This section covers the entrypoints exported outside of i915_perf.c to
integrate with drm/i915 and to handle the `DRM_I915_PERF_OPEN` ioctl.

.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_init
+ :specific: i915_perf_init
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_fini
+ :specific: i915_perf_fini
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_register
+ :specific: i915_perf_register
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_unregister
+ :specific: i915_perf_unregister
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_open_ioctl
+ :specific: i915_perf_open_ioctl
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_release
+ :specific: i915_perf_release
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_add_config_ioctl
+ :specific: i915_perf_add_config_ioctl
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_remove_config_ioctl
+ :specific: i915_perf_remove_config_ioctl

i915 Perf Stream
----------------
@@ -515,47 +515,47 @@ This section covers the stream-semantics-agnostic structures and functions
for representing an i915 perf stream FD and associated file operations.

.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h
- :functions: i915_perf_stream
+ :specific: i915_perf_stream
.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h
- :functions: i915_perf_stream_ops
+ :specific: i915_perf_stream_ops

.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: read_properties_unlocked
+ :specific: read_properties_unlocked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_open_ioctl_locked
+ :specific: i915_perf_open_ioctl_locked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_destroy_locked
+ :specific: i915_perf_destroy_locked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_read
+ :specific: i915_perf_read
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_ioctl
+ :specific: i915_perf_ioctl
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_enable_locked
+ :specific: i915_perf_enable_locked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_disable_locked
+ :specific: i915_perf_disable_locked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_poll
+ :specific: i915_perf_poll
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_perf_poll_locked
+ :specific: i915_perf_poll_locked

i915 Perf Observation Architecture Stream
-----------------------------------------

.. kernel-doc:: drivers/gpu/drm/i915/i915_drv.h
- :functions: i915_oa_ops
+ :specific: i915_oa_ops

.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_oa_stream_init
+ :specific: i915_oa_stream_init
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_oa_read
+ :specific: i915_oa_read
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_oa_stream_enable
+ :specific: i915_oa_stream_enable
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_oa_stream_disable
+ :specific: i915_oa_stream_disable
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_oa_wait_unlocked
+ :specific: i915_oa_wait_unlocked
.. kernel-doc:: drivers/gpu/drm/i915/i915_perf.c
- :functions: i915_oa_poll_wait
+ :specific: i915_oa_poll_wait

All i915 Perf Internals
-----------------------
diff --git a/Documentation/gpu/vga-switcheroo.rst b/Documentation/gpu/vga-switcheroo.rst
index cbbdb994f1dd..d490b01919fd 100644
--- a/Documentation/gpu/vga-switcheroo.rst
+++ b/Documentation/gpu/vga-switcheroo.rst
@@ -35,31 +35,31 @@ Public structures
-----------------

.. kernel-doc:: include/linux/vga_switcheroo.h
- :functions: vga_switcheroo_handler
+ :specific: vga_switcheroo_handler

.. kernel-doc:: include/linux/vga_switcheroo.h
- :functions: vga_switcheroo_client_ops
+ :specific: vga_switcheroo_client_ops

Public constants
----------------

.. kernel-doc:: include/linux/vga_switcheroo.h
- :functions: vga_switcheroo_handler_flags_t
+ :specific: vga_switcheroo_handler_flags_t

.. kernel-doc:: include/linux/vga_switcheroo.h
- :functions: vga_switcheroo_client_id
+ :specific: vga_switcheroo_client_id

.. kernel-doc:: include/linux/vga_switcheroo.h
- :functions: vga_switcheroo_state
+ :specific: vga_switcheroo_state

Private structures
------------------

.. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
- :functions: vgasr_priv
+ :specific: vgasr_priv

.. kernel-doc:: drivers/gpu/vga/vga_switcheroo.c
- :functions: vga_switcheroo_client
+ :specific: vga_switcheroo_client

Handlers
========
diff --git a/Documentation/security/tpm/tpm_vtpm_proxy.rst b/Documentation/security/tpm/tpm_vtpm_proxy.rst
index ea08e76b17f5..8583cd970393 100644
--- a/Documentation/security/tpm/tpm_vtpm_proxy.rst
+++ b/Documentation/security/tpm/tpm_vtpm_proxy.rst
@@ -47,4 +47,4 @@ UAPI
.. kernel-doc:: include/uapi/linux/vtpm_proxy.h

.. kernel-doc:: drivers/char/tpm/tpm_vtpm_proxy.c
- :functions: vtpmx_ioc_new_dev
+ :specific: vtpmx_ioc_new_dev
diff --git a/Documentation/sphinx/kerneldoc.py b/Documentation/sphinx/kerneldoc.py
index 1159405cb920..1232d0324927 100644
--- a/Documentation/sphinx/kerneldoc.py
+++ b/Documentation/sphinx/kerneldoc.py
@@ -59,7 +59,7 @@ class KernelDocDirective(Directive):
optional_arguments = 4
option_spec = {
'doc': directives.unchanged_required,
- 'functions': directives.unchanged,
+ 'specific': directives.unchanged,
'export': directives.unchanged,
'internal': directives.unchanged,
}
@@ -84,15 +84,15 @@ class KernelDocDirective(Directive):
elif 'internal' in self.options:
cmd += ['-internal']
export_file_patterns = str(self.options.get('internal')).split()
- elif 'doc' in self.options:
- cmd += ['-function', str(self.options.get('doc'))]
- elif 'functions' in self.options:
- functions = self.options.get('functions').split()
+ elif 'specific' in self.options:
+ functions = self.options.get('specific').split()
if functions:
for f in functions:
cmd += ['-function', f]
else:
cmd += ['-no-doc-sections']
+ elif 'doc' in self.options:
+ cmd += ['-function', str(self.options.get('doc'))]

for pattern in export_file_patterns:
for f in glob.glob(env.config.kerneldoc_srctree + '/' + pattern):
diff --git a/Documentation/translations/it_IT/doc-guide/kernel-doc.rst b/Documentation/translations/it_IT/doc-guide/kernel-doc.rst
index a4ecd8f27631..1a4a3c3774e9 100644
--- a/Documentation/translations/it_IT/doc-guide/kernel-doc.rst
+++ b/Documentation/translations/it_IT/doc-guide/kernel-doc.rst
@@ -535,7 +535,7 @@ functions: *function* *[...]*
Esempio::

.. kernel-doc:: lib/bitmap.c
- :functions: bitmap_parselist bitmap_parselist_user
+ :specific: bitmap_parselist bitmap_parselist_user

Senza alcuna opzione, la direttiva kernel-doc include tutti i commenti di
documentazione presenti nel file sorgente (*source*).
diff --git a/Documentation/vm/ksm.rst b/Documentation/vm/ksm.rst
index d32016d9be2c..c518a7985ce1 100644
--- a/Documentation/vm/ksm.rst
+++ b/Documentation/vm/ksm.rst
@@ -80,7 +80,7 @@ The frequency of such scans is defined by
Reference
---------
.. kernel-doc:: mm/ksm.c
- :functions: mm_slot ksm_scan stable_node rmap_item
+ :specific: mm_slot ksm_scan stable_node rmap_item

--
Izik Eidus,
diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 81dc91760b23..cd3d2ca52c34 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -1475,8 +1475,13 @@ sub push_parameter($$$$) {
$parameterdescs{$param} = $undescribed;

if (show_warnings($type, $declaration_name) && $param !~ /\./) {
- print STDERR
- "${file}:$.: warning: Function parameter or member '$param' not described in '$declaration_name'\n";
+ if ($decl_type eq "struct" or $decl_type eq 'union') {
+ print STDERR
+ "${file}:$.: warning: $decl_type member '$param' not described in '$declaration_name'\n";
+ } else {
+ print STDERR
+ "${file}:$.: warning: $decl_type parameter '$param' not described in '$declaration_name'\n";
+ }
++$warnings;
}
}
--
2.20.1


2019-10-13 19:33:27

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] kernel-doc: rename the kernel-doc directive 'functions' to 'specific'

Hi Changbin,

Thank you for the patch! Perhaps something to improve:

[auto build test WARNING on linus/master]
[cannot apply to v5.4-rc2 next-20191010]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]

url: https://github.com/0day-ci/linux/commits/Changbin-Du/kernel-doc-rename-the-kernel-doc-directive-functions-to-specific/20191014-013215
reproduce: make htmldocs

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot <[email protected]>

All warnings (new ones prefixed by >>):

Warning: The Sphinx 'sphinx_rtd_theme' HTML theme was not found. Make sure you have the theme installed to produce pretty HTML output. Falling back to the default theme.
WARNING: dot(1) not found, for better output quality install graphviz from http://www.graphviz.org
WARNING: convert(1) not found, for SVG to PDF conversion install ImageMagick (https://www.imagemagick.org)
Error: Cannot open file drivers/dma-buf/reservation.c
Error: Cannot open file drivers/dma-buf/reservation.c
Error: Cannot open file drivers/dma-buf/reservation.c
Error: Cannot open file include/linux/reservation.h
Error: Cannot open file include/linux/reservation.h
>> include/linux/regulator/machine.h:196: warning: struct member 'max_uV_step' not described in 'regulation_constraints'
>> include/linux/regulator/driver.h:223: warning: struct member 'resume' not described in 'regulator_ops'
>> include/linux/i2c.h:337: warning: struct member 'init_irq' not described in 'i2c_client'
drivers/gpio/gpiolib-of.c:92: warning: Excess function parameter 'dev' description in 'of_gpio_need_valid_mask'
>> include/linux/spi/spi.h:190: warning: struct member 'driver_override' not described in 'spi_device'
mm/util.c:1: warning: 'get_user_pages_fast' not found
>> mm/slab.c:4215: warning: function parameter 'objp' not described in '__ksize'
drivers/usb/typec/bus.c:1: warning: 'typec_altmode_register_driver' not found
drivers/usb/typec/bus.c:1: warning: 'typec_altmode_unregister_driver' not found
drivers/usb/typec/class.c:1: warning: 'typec_altmode_unregister_notifier' not found
drivers/usb/typec/class.c:1: warning: 'typec_altmode_register_notifier' not found
>> include/linux/w1.h:277: warning: struct member 'of_match_table' not described in 'w1_family'
drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c:335: warning: Excess function parameter 'dev' description in 'amdgpu_gem_prime_export'
drivers/gpu/drm/amd/amdgpu/amdgpu_dma_buf.c:336: warning: Excess function parameter 'dev' description in 'amdgpu_gem_prime_export'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_mn.c:142: warning: function parameter 'blockable' not described in 'amdgpu_mn_read_lock'
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:347: warning: cannot understand function prototype: 'struct amdgpu_vm_pt_cursor '
drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:348: warning: cannot understand function prototype: 'struct amdgpu_vm_pt_cursor '
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:494: warning: function parameter 'start' not described in 'amdgpu_vm_pt_first_dfs'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: function parameter 'adev' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: function parameter 'vm' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: function parameter 'start' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: function parameter 'cursor' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:546: warning: function parameter 'entry' not described in 'for_each_amdgpu_vm_pt_dfs_safe'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:821: warning: function parameter 'level' not described in 'amdgpu_vm_bo_param'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1283: warning: function parameter 'params' not described in 'amdgpu_vm_update_flags'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1283: warning: function parameter 'bo' not described in 'amdgpu_vm_update_flags'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1283: warning: function parameter 'level' not described in 'amdgpu_vm_update_flags'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1283: warning: function parameter 'pe' not described in 'amdgpu_vm_update_flags'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1283: warning: function parameter 'addr' not described in 'amdgpu_vm_update_flags'
>> drivers/gpu/drm/amd/amdgpu/amdgpu_vm.c:1283: warning: function parameter 'count' not described in 'amdgpu_vm_update_flags'

vim +1207 drivers/gpu/drm/i915/i915_drv.h

eec688e1420da5 Robert Bragg 2016-11-07 1069
16d98b31f80775 Robert Bragg 2016-12-07 1070 /**
16d98b31f80775 Robert Bragg 2016-12-07 1071 * struct i915_perf_stream - state for a single open stream FD
16d98b31f80775 Robert Bragg 2016-12-07 1072 */
eec688e1420da5 Robert Bragg 2016-11-07 1073 struct i915_perf_stream {
16d98b31f80775 Robert Bragg 2016-12-07 1074 /**
16d98b31f80775 Robert Bragg 2016-12-07 1075 * @dev_priv: i915 drm device
16d98b31f80775 Robert Bragg 2016-12-07 1076 */
eec688e1420da5 Robert Bragg 2016-11-07 1077 struct drm_i915_private *dev_priv;
eec688e1420da5 Robert Bragg 2016-11-07 1078
16d98b31f80775 Robert Bragg 2016-12-07 1079 /**
16d98b31f80775 Robert Bragg 2016-12-07 1080 * @link: Links the stream into ``&drm_i915_private->streams``
16d98b31f80775 Robert Bragg 2016-12-07 1081 */
eec688e1420da5 Robert Bragg 2016-11-07 1082 struct list_head link;
eec688e1420da5 Robert Bragg 2016-11-07 1083
6d2438c8233bd0 Chris Wilson 2019-01-15 1084 /**
6d2438c8233bd0 Chris Wilson 2019-01-15 1085 * @wakeref: As we keep the device awake while the perf stream is
6d2438c8233bd0 Chris Wilson 2019-01-15 1086 * active, we track our runtime pm reference for later release.
6d2438c8233bd0 Chris Wilson 2019-01-15 1087 */
6619c0075f784d Chris Wilson 2019-01-14 1088 intel_wakeref_t wakeref;
6619c0075f784d Chris Wilson 2019-01-14 1089
16d98b31f80775 Robert Bragg 2016-12-07 1090 /**
16d98b31f80775 Robert Bragg 2016-12-07 1091 * @sample_flags: Flags representing the `DRM_I915_PERF_PROP_SAMPLE_*`
16d98b31f80775 Robert Bragg 2016-12-07 1092 * properties given when opening a stream, representing the contents
16d98b31f80775 Robert Bragg 2016-12-07 1093 * of a single sample as read() by userspace.
16d98b31f80775 Robert Bragg 2016-12-07 1094 */
eec688e1420da5 Robert Bragg 2016-11-07 1095 u32 sample_flags;
16d98b31f80775 Robert Bragg 2016-12-07 1096
16d98b31f80775 Robert Bragg 2016-12-07 1097 /**
16d98b31f80775 Robert Bragg 2016-12-07 1098 * @sample_size: Considering the configured contents of a sample
16d98b31f80775 Robert Bragg 2016-12-07 1099 * combined with the required header size, this is the total size
16d98b31f80775 Robert Bragg 2016-12-07 1100 * of a single sample record.
16d98b31f80775 Robert Bragg 2016-12-07 1101 */
d79651522e89c4 Robert Bragg 2016-11-07 1102 int sample_size;
eec688e1420da5 Robert Bragg 2016-11-07 1103
16d98b31f80775 Robert Bragg 2016-12-07 1104 /**
16d98b31f80775 Robert Bragg 2016-12-07 1105 * @ctx: %NULL if measuring system-wide across all contexts or a
16d98b31f80775 Robert Bragg 2016-12-07 1106 * specific context that is being monitored.
16d98b31f80775 Robert Bragg 2016-12-07 1107 */
eec688e1420da5 Robert Bragg 2016-11-07 1108 struct i915_gem_context *ctx;
16d98b31f80775 Robert Bragg 2016-12-07 1109
16d98b31f80775 Robert Bragg 2016-12-07 1110 /**
16d98b31f80775 Robert Bragg 2016-12-07 1111 * @enabled: Whether the stream is currently enabled, considering
16d98b31f80775 Robert Bragg 2016-12-07 1112 * whether the stream was opened in a disabled state and based
16d98b31f80775 Robert Bragg 2016-12-07 1113 * on `I915_PERF_IOCTL_ENABLE` and `I915_PERF_IOCTL_DISABLE` calls.
16d98b31f80775 Robert Bragg 2016-12-07 1114 */
eec688e1420da5 Robert Bragg 2016-11-07 1115 bool enabled;
eec688e1420da5 Robert Bragg 2016-11-07 1116
16d98b31f80775 Robert Bragg 2016-12-07 1117 /**
16d98b31f80775 Robert Bragg 2016-12-07 1118 * @ops: The callbacks providing the implementation of this specific
16d98b31f80775 Robert Bragg 2016-12-07 1119 * type of configured stream.
16d98b31f80775 Robert Bragg 2016-12-07 1120 */
d79651522e89c4 Robert Bragg 2016-11-07 1121 const struct i915_perf_stream_ops *ops;
701f8231a2fe17 Lionel Landwerlin 2017-08-03 1122
701f8231a2fe17 Lionel Landwerlin 2017-08-03 1123 /**
701f8231a2fe17 Lionel Landwerlin 2017-08-03 1124 * @oa_config: The OA configuration used by the stream.
701f8231a2fe17 Lionel Landwerlin 2017-08-03 1125 */
701f8231a2fe17 Lionel Landwerlin 2017-08-03 1126 struct i915_oa_config *oa_config;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1127
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1128 /**
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 @1129 * The OA context specific information.
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1130 */
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1131 struct intel_context *pinned_ctx;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1132 u32 specific_ctx_id;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1133 u32 specific_ctx_id_mask;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1134
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1135 struct hrtimer poll_check_timer;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1136 wait_queue_head_t poll_wq;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1137 bool pollin;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1138
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1139 bool periodic;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1140 int period_exponent;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1141
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1142 /**
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 @1143 * State of the OA buffer.
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1144 */
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1145 struct {
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1146 struct i915_vma *vma;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1147 u8 *vaddr;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1148 u32 last_ctx_id;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1149 int format;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1150 int format_size;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1151 int size_exponent;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1152
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1153 /**
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 @1154 * Locks reads and writes to all head/tail state
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1155 *
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1156 * Consider: the head and tail pointer state needs to be read
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1157 * consistently from a hrtimer callback (atomic context) and
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1158 * read() fop (user context) with tail pointer updates happening
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1159 * in atomic context and head updates in user context and the
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1160 * (unlikely) possibility of read() errors needing to reset all
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1161 * head/tail state.
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1162 *
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1163 * Note: Contention/performance aren't currently a significant
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1164 * concern here considering the relatively low frequency of
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1165 * hrtimer callbacks (5ms period) and that reads typically only
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1166 * happen in response to a hrtimer event and likely complete
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1167 * before the next callback.
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1168 *
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1169 * Note: This lock is not held *while* reading and copying data
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1170 * to userspace so the value of head observed in htrimer
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1171 * callbacks won't represent any partial consumption of data.
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1172 */
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1173 spinlock_t ptr_lock;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1174
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1175 /**
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 @1176 * One 'aging' tail pointer and one 'aged' tail pointer ready to
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1177 * used for reading.
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1178 *
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1179 * Initial values of 0xffffffff are invalid and imply that an
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1180 * update is required (and should be ignored by an attempted
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1181 * read)
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1182 */
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1183 struct {
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1184 u32 offset;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1185 } tails[2];
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1186
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1187 /**
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 @1188 * Index for the aged tail ready to read() data up to.
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1189 */
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1190 unsigned int aged_tail_idx;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1191
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1192 /**
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 @1193 * A monotonic timestamp for when the current aging tail pointer
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1194 * was read; used to determine when it is old enough to trust.
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1195 */
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1196 u64 aging_timestamp;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1197
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1198 /**
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 @1199 * Although we can always read back the head pointer register,
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1200 * we prefer to avoid trusting the HW state, just to avoid any
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1201 * risk that some hardware condition could * somehow bump the
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1202 * head pointer unpredictably and cause us to forward the wrong
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1203 * OA buffer data to userspace.
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1204 */
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1205 u32 head;
a37f08a882b01a Umesh Nerlige Ramappa 2019-08-06 1206 } oa_buffer;
d79651522e89c4 Robert Bragg 2016-11-07 @1207 };
d79651522e89c4 Robert Bragg 2016-11-07 1208

:::::: The code at line 1207 was first introduced by commit
:::::: d79651522e89c4ffa8992b48dfe449f0c583f809 drm/i915: Enable i915 perf stream for Haswell OA unit

:::::: TO: Robert Bragg <[email protected]>
:::::: CC: Daniel Vetter <[email protected]>

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation


Attachments:
(No filename) (16.47 kB)
.config.gz (7.11 kB)
Download all attachments

2019-10-15 00:41:14

by Bird, Tim

[permalink] [raw]
Subject: RE: [PATCH] kernel-doc: rename the kernel-doc directive 'functions' to 'specific'



> -----Original Message-----
> From: Jani Nikula on October 13, 2019 11:00 PM
> On Sun, 13 Oct 2019, Changbin Du <[email protected]> wrote:
> > The 'functions' directive is not only for functions, but also works for
> > structs/unions. So the name is misleading. This patch renames it to
> > 'specific', so now we have export/internal/specific directives to limit
> > the functions/types to be included in documentation. Meanwhile we
> improved
> > the warning message.
>
> Agreed on "functions" being less than perfect. It directly exposes the
> idiosyncrasies of scripts/kernel-doc. I'm not sure "specific" is any
> better, though.

I strongly agree with this. 'specific' IMHO, has no semantic value and
I'd rather just leave the only-sometimes-wrong 'functions' than convert
to something that obscures the meaning always.

>
> Perhaps "symbols" would be more self-explanatory. Or, actually make
> "functions" only work on functions, and add a separate keyword for other
> stuff. *shrug*
My preference would be to use 'symbols'. I tried to come up with something
but 'symbols' is better than anything I came up with.

>
> Seems like the patch is way too big. I'd probably add "symbols" (or
> whatever) as a synonym for "functions" for starters, and convert
> documents piecemeal, and finally drop the old one.
>
> The scripts/kernel-doc change should be a patch of its own.
Agreed on these two points as well.

Just adding my 2 cents.
-- Tim

2019-10-16 07:40:25

by Changbin Du

[permalink] [raw]
Subject: Re: [PATCH] kernel-doc: rename the kernel-doc directive 'functions' to 'specific'

On Tue, Oct 15, 2019 at 04:54:39AM -0700, Matthew Wilcox wrote:
> On Tue, Oct 15, 2019 at 11:25:53AM +0200, Thomas Zimmermann wrote:
> > > My preference would be to use 'symbols'. I tried to come up with something
> > > but 'symbols' is better than anything I came up with.
> >
> > Maybe 'interfaces' or 'artifacts'. The term 'symbols' is just as
> > imprecise as 'functions'.
>
> I suggested 'identifier' because that's the term used in the C spec (6.2.1):
>
> : An identifier can denote an object; a function; a tag or a member
> : of a structure, union, or enumeration; a typedef name; a label name;
> : a macro name; or a macro parameter.
>
I also prefer this one now. I was looking for something like this. My original
idea is 'prototype', but that is only for function.

> We don't allow documenting all those things separately, but it does cover
> all the things we do allow to be individually documented.

--
Cheers,
Changbin Du

2019-10-16 07:41:04

by Changbin Du

[permalink] [raw]
Subject: Re: [PATCH] kernel-doc: rename the kernel-doc directive 'functions' to 'specific'

On Tue, Oct 15, 2019 at 12:27:26PM -0600, Jonathan Corbet wrote:
> On Sun, 13 Oct 2019 13:53:59 +0800
> Changbin Du <[email protected]> wrote:
>
> > The 'functions' directive is not only for functions, but also works for
> > structs/unions. So the name is misleading. This patch renames it to
> > 'specific', so now we have export/internal/specific directives to limit
> > the functions/types to be included in documentation. Meanwhile we improved
> > the warning message.
>
> I agree with the others that "specific" doesn't really make things
> better. "Interfaces" maybe; otherwise we could go for something like
> "filter" or "select".
>
Jonathan, How about 'identifier' suggested by Matthew as it is mentioned in Then
C spec?

> Paint mine green :)
>
> Whatever we end up with, I think it should be added as a synonym for
> "functions". Then the various selectors that are actually pulling out
> docs for functions could be changed at leisure - or not at all. I'd
> rather not see a big patch changing everything at once.
>
Sure, I'll make 'functions' deprecated and as an alias to our new directive name.

> Thanks,
>
> jon

--
Cheers,
Changbin Du

2019-10-16 07:49:27

by Matthew Wilcox

[permalink] [raw]
Subject: Re: [PATCH] kernel-doc: rename the kernel-doc directive 'functions' to 'specific'

On Wed, Oct 16, 2019 at 08:03:24AM +0800, Changbin Du wrote:
> On Tue, Oct 15, 2019 at 04:54:39AM -0700, Matthew Wilcox wrote:
> > On Tue, Oct 15, 2019 at 11:25:53AM +0200, Thomas Zimmermann wrote:
> > > > My preference would be to use 'symbols'. I tried to come up with something
> > > > but 'symbols' is better than anything I came up with.
> > >
> > > Maybe 'interfaces' or 'artifacts'. The term 'symbols' is just as
> > > imprecise as 'functions'.
> >
> > I suggested 'identifier' because that's the term used in the C spec (6.2.1):
> >
> > : An identifier can denote an object; a function; a tag or a member
> > : of a structure, union, or enumeration; a typedef name; a label name;
> > : a macro name; or a macro parameter.
>
> I also prefer this one now. I was looking for something like this. My original
> idea is 'prototype', but that is only for function.

We could also go with 'declaration' or 'definition'. But I prefer
'identifier'.