---
config:
layout: elk
elk:
mergeEdges: true
nodePlacementStrategy: LINEAR_SEGMENTS
---
flowchart LR
subgraph Coordinator["Display Coordinator"]
CoordinatorDisplayRegApi(["Display registration API"])
CoordinatorDisplayManagementApi(["Display management API"])
CoordinatorDisplayManagement["Display management logic"]
end
subgraph EngineDriver["Display engine driver"]
DisplayManagementApi(["Display management API"])
DisplayManagement["Display management logic"]
DisplayCommandsApi(["DDIC commands API"])
end
subgraph PanelDriver["Panel driver"]
PanelMode["Modesetting logic"]
PanelPowerApi(["Power API"])
PanelPower["Power + reset logic"]
end
CoordinatorDisplayRegApi === CoordinatorDisplayManagement
CoordinatorDisplayManagementApi === CoordinatorDisplayManagement
CoordinatorDisplayManagement --> DisplayManagementApi
DisplayManagementApi === DisplayManagement
DisplayManagement --> PanelPowerApi
PanelPowerApi === PanelPower & PanelMode
PanelPower --> DisplayCommandsApi
PanelMode --> DisplayCommandsApi
EngineDriver ~~~ PanelDriver
PanelPower@{ shape: rect}
CoordinatorDisplayRegApi@{ shape: stadium }
CoordinatorDisplayManagementApi@{ shape: stadium }
DisplayManagementApi@{ shape: stadium }
DisplayCommandsApi@{ shape: stadium }
PanelPowerApi@{ shape: stadium }
PanelPower@{ shape: rect }