docs: media: Allow creating cross-references for RC ABI

Now that Documentation/ABI is processed by automarkup, let it
generate cross-references for RC sysfs devnodes.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Link: https://lore.kernel.org/r/7c2f9a9970a15df8b5e3a6ecd21bcedcc8881ce1.1739254867.git.mchehab+huawei@kernel.org
This commit is contained in:
Mauro Carvalho Chehab 2025-02-11 07:22:55 +01:00 committed by Jonathan Corbet
parent 83b029482d
commit ff7ff6eb4f
2 changed files with 14 additions and 5 deletions

View file

@ -88,13 +88,13 @@ def markup_refs(docname, app, node):
# Associate each regex with the function that will markup its matches # Associate each regex with the function that will markup its matches
# #
markup_func_sphinx2 = {RE_doc: markup_doc_ref, markup_func_sphinx2 = {RE_doc: markup_doc_ref,
RE_abi_file: markup_abi_ref, RE_abi_file: markup_abi_file_ref,
RE_abi_symbol: markup_abi_ref, RE_abi_symbol: markup_abi_ref,
RE_function: markup_c_ref, RE_function: markup_c_ref,
RE_generic_type: markup_c_ref} RE_generic_type: markup_c_ref}
markup_func_sphinx3 = {RE_doc: markup_doc_ref, markup_func_sphinx3 = {RE_doc: markup_doc_ref,
RE_abi_file: markup_abi_ref, RE_abi_file: markup_abi_file_ref,
RE_abi_symbol: markup_abi_ref, RE_abi_symbol: markup_abi_ref,
RE_function: markup_func_ref_sphinx3, RE_function: markup_func_ref_sphinx3,
RE_struct: markup_c_ref, RE_struct: markup_c_ref,
@ -279,10 +279,10 @@ def markup_doc_ref(docname, app, match):
return nodes.Text(match.group(0)) return nodes.Text(match.group(0))
# #
# Try to replace a documentation reference of the form Documentation/ABI/... # Try to replace a documentation reference for ABI symbols and files
# with a cross reference to that page # with a cross reference to that page
# #
def markup_abi_ref(docname, app, match): def markup_abi_ref(docname, app, match, warning=False):
stddom = app.env.domains['std'] stddom = app.env.domains['std']
# #
# Go through the dance of getting an xref out of the std domain # Go through the dance of getting an xref out of the std domain
@ -294,6 +294,8 @@ def markup_abi_ref(docname, app, match):
# Kernel ABI doesn't describe such file or symbol # Kernel ABI doesn't describe such file or symbol
if not target: if not target:
if warning:
kernel_abi.log.warning("%s not found", fname)
return nodes.Text(match.group(0)) return nodes.Text(match.group(0))
pxref = addnodes.pending_xref('', refdomain = 'std', reftype = 'ref', pxref = addnodes.pending_xref('', refdomain = 'std', reftype = 'ref',
@ -317,6 +319,13 @@ def markup_abi_ref(docname, app, match):
else: else:
return nodes.Text(match.group(0)) return nodes.Text(match.group(0))
#
# Variant of markup_abi_ref() that warns whan a reference is not found
#
def markup_abi_file_ref(docname, app, match):
return markup_abi_ref(docname, app, match, warning=True)
def get_c_namespace(app, docname): def get_c_namespace(app, docname):
source = app.env.doc2path(docname) source = app.env.doc2path(docname)
with open(source) as f: with open(source) as f:

View file

@ -6,7 +6,7 @@
Remote Controller's sysfs nodes Remote Controller's sysfs nodes
******************************* *******************************
As defined at ``Documentation/ABI/testing/sysfs-class-rc``, those are As defined at Documentation/ABI/testing/sysfs-class-rc, those are
the sysfs nodes that control the Remote Controllers: the sysfs nodes that control the Remote Controllers: