---
config:
layout: elk
elk:
mergeEdges: true
nodePlacementStrategy: LINEAR_SEGMENTS
title: Display Engine Driver / Panel Driver Interactions (after initialization)
---
flowchart TB
subgraph Coordinator["Display Coordinator"]
CoordinatorDisplayRegApi(["Display registration API"])
CoordinatorDisplayManagementApi(["Display management API"])
CoordinatorDisplayManagement["Display management logic"]
end
subgraph EngineDriver["Display engine driver"]
DisplayRegistration["Display registration logic"]
DisplayMode["Modesetting logic"]
DisplayManagementApi(["Display management API"])
DisplayManagement["Display management logic"]
DisplayCommandsApi(["DDIC commands API"])
end
subgraph PanelDriver["Panel driver"]
PanelCapabilitiesApi(["Capabilities API"])
PanelBrightnessApi(["Brightness API"])
PanelBrightness["Brightness logic"]
PanelModeApi(["Modesetting API"])
PanelMode["Modesetting logic"]
PanelPowerApi(["Power API"])
PanelPower["Power + reset logic"]
DdicCommands["DDIC Commands"]
end
CoordinatorDisplayRegApi === CoordinatorDisplayManagement
CoordinatorDisplayManagementApi === CoordinatorDisplayManagement
CoordinatorDisplayManagement --> DisplayManagementApi
DisplayManagementApi === DisplayManagement
DisplayManagement --> PanelPowerApi & PanelBrightnessApi
DisplayMode -- Display mode --> PanelModeApi
PanelBrightnessApi === PanelBrightness
PanelPowerApi === PanelPower & PanelMode
PanelModeApi === PanelMode
PanelPower --> DdicCommands
PanelMode --> DdicCommands
PanelBrightness --> DdicCommands
DdicCommands --> DisplayCommandsApi
DisplayRegistration@{ shape: rect}
PanelBrightness@{ shape: rect}
PanelPower@{ shape: rect}