Repository navigation
doc: api: align core C APIs with Doxygen taxonomy, scheduling, memory, pipeline, and module documentation - #540
Merged
lgirdwood merged 5 commits intoOct 13, 2026
Conversation
…mous structs Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
Add comprehensive architectural and reference documentation for SOF's memory management subsystem: - Virtual memory regions (vregion) and virtual page allocation (vpage) - Heap allocators: system heap, runtime buffer allocator (rballoc) - Memory capabilities, flags, tags, and physical memory topologies - Expose memory_api and sof_memory_management Doxygen groups via Breathe - Update index.rst and rtos.rst navigation Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
…cture page Add dedicated documentation page for SOF scheduling architecture: - Core scheduler contracts and task operations - Low-Latency (LL) scheduling domains (timer and DMA driven) - Dynamic Processing (DP) threads and Zephyr RTOS thread mapping - Legacy Earliest Deadline First (EDF) and Time-Warp Buffer (TWB) schedulers - Task lifecycle state machine diagrams and cross-core scheduling contracts - Expose scheduler_api, schedule_task_api, ll_scheduler_api, dp_scheduler_api, edf_scheduler_api, twb_scheduler_api, and zephyr_dp_schedule via Breathe - Update index.rst, pipeline.rst, and rtos.rst navigation Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
- Deconstruct the monolithic pipeline API page into four focused sub-pages:
* pipeline_graph.rst: Directed Acyclic Graph (DAG) construction, scheduling
task binding (LL/DP), pipeline traversal, and graph-wide state transitions.
* component_infra.rst: Unified component driver model (comp_ops), trigger
state machines, and multi-core IDC bindings.
* audio_buffer.rst: Interconnect buffers (comp_buffer), circular stream
endpoints, and lockless ring buffers.
* audio_format.rst: Channel mapping and PCM sample saturation arithmetic.
- Transform api/pipeline.rst into an architectural hub page with an overview
ASCII diagram and a sub-page toctree.
- Update api/index.rst module overview to reflect the new pipeline structure.
Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
- Update api/components.rst to provide comprehensive documentation for Audio Processing Components & Modules API, including: * Architecture overview and Module Adapter layer diagram * Processing Component catalog (Volume, Mixer, EQ, DRC, SRC, ASRC, Smart Amp, Sound Dose) * Module lifecycle contracts (init, prepare, process, set/get_configuration, reset, free) * Source and sink streaming endpoint buffer interfaces * Dynamic LLEXT loading and UUID registration * Complete Breathe C API reference via module_api group - Remove redundant api/modules.rst and update api/index.rst navigation to point directly to the unified components reference. Signed-off-by: Liam Girdwood <liam.r.girdwood@linux.intel.com>
lgirdwood
requested review from
deb-intel,
intelkevinputnam,
mmaka1 and
mwasko
as code owners
October 12, 2026 19:38
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR aligns
sof-docswith the modernized Doxygen C API taxonomy introduced in SOF firmware PR thesofproject/sof#11296. It expands Sphinx and Breathe integration across core Sound Open Firmware architectural subsystems.Note
Dependency Notice:
This PR depends on thesofproject/sof#11296 being merged into
thesofproject/sof:mainfirst.The
sof-docsCI workflow (.github/workflows/pull-request.yml) clonesthesofproject/sof:maindirectly to generate Doxygen XML. Until PR #11296 merges intosof:main, CI will fail under Sphinx-Wbecause the new Doxygen groups (scheduler_api,memory_api,pipeline_graph_api,module_api, etc.) are not yet present onmain.Verified locally with zero warnings:
make html -W SOF_ROOT=../sof-dox-work.Key Additions & Changes
Breathe Anonymous Struct Warning Suppression (
conf.py):scheduler_dp_thread_ipc_paramindp_schedule.h). Addedduplicate_declaration.cwarning suppression filter to avoid spurious fatal errors under Sphinx-Wmode.Memory Management Infrastructure (
api/memory.rst):vregion), virtual page allocation (vpage), runtime buffer allocator (rballoc), memory tags, capabilities, and physical memory topologies (L2 HP-SRAM, L2 LP-SRAM, L3).memory_apiandsof_memory_managementvia Breathe.Scheduling Infrastructure (
api/scheduling.rst):scheduler_api,schedule_task_api,ll_scheduler_api,dp_scheduler_api,edf_scheduler_api,twb_scheduler_api, andzephyr_dp_schedule.Pipeline Modularization:
api/pipeline.rstinto focused architectural sub-pages:api/pipeline_graph.rst: Directed Acyclic Graph (DAG) construction, scheduling task binding (LL/DP), traversal, and state transitions.api/component_infra.rst: Unified component driver model (comp_ops), trigger state machines, and multi-core IDC bindings.api/audio_buffer.rst: Interconnect buffers (comp_buffer), circular stream endpoints, and lockless ring buffers.api/audio_format.rst: Channel mapping, PCM sample conversion, and saturation arithmetic.api/pipeline.rstinto an architectural hub page with an overview ASCII diagram and sub-pagetoctree.Audio Processing Components & Modules (
api/components.rst):init,prepare,process,set/get_configuration,reset,free), streaming endpoints, dynamic LLEXT loading, and UUID registration.module_apiand removed redundantapi/modules.rst.Navigation Updates:
api/index.rstandapi/rtos.rstnavigation trees and cross-references.Signed-off-by: Liam Girdwood liam.r.girdwood@linux.intel.com