diff --git a/architectures/firmware/sof-common/pipeline_2_0/images/module_to_module.pu b/architectures/firmware/sof-common/pipeline_2_0/images/module_to_module.pu new file mode 100644 index 0000000..b96b4a0 --- /dev/null +++ b/architectures/firmware/sof-common/pipeline_2_0/images/module_to_module.pu @@ -0,0 +1,18 @@ +actor "ipc/ipc_comp_new()" as c +participant "audio/component" as comp +participant "comp_driver" as drv +participant "lib/heap" as heap + +c -> comp : comp_new(comp : sof_ipc_comp) + activate comp + comp -> comp : get_drv(comp->type) : drv + comp -> drv : drv->ops.new(comp) + activate drv + drv -> heap : rzalloc(Runtime) + drv <-- heap + comp <-- drv : comp_dev* + deactivate drv + + comp -> comp : init component +c <-- comp : comp_dev* +deactivate comp diff --git a/architectures/firmware/sof-common/pipeline_2_0/pipeline2_0_discussion.rst b/architectures/firmware/sof-common/pipeline_2_0/pipeline2_0_discussion.rst index 4123ac2..21be3eb 100644 --- a/architectures/firmware/sof-common/pipeline_2_0/pipeline2_0_discussion.rst +++ b/architectures/firmware/sof-common/pipeline_2_0/pipeline2_0_discussion.rst @@ -80,3 +80,7 @@ Entity using sink/source to entity using sink/source Typically, a module a module. This is the most natural way of binding (at current code - the only way), requires a buffer in between: +.. uml:: images/module_to_module.pu + :caption: Component Device States + +sdas