<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="568px" preserveAspectRatio="none" style="width:1198px;height:568px;" version="1.1" viewBox="0 0 1198 568" width="1198px" zoomAndPan="magnify"><defs><filter height="300%" id="fcbnkjoqvuo08" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><line style="stroke: #A80036; stroke-width: 1.0;" x1="59" x2="59" y1="38.2969" y2="277.3594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="59" x2="59" y1="277.3594" y2="318.1641"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="59" x2="59" y1="318.1641" y2="528.0938"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="262" x2="262" y1="38.2969" y2="277.3594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="262" x2="262" y1="277.3594" y2="318.1641"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="262" x2="262" y1="318.1641" y2="528.0938"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="486" x2="486" y1="38.2969" y2="277.3594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="486" x2="486" y1="277.3594" y2="318.1641"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="486" x2="486" y1="318.1641" y2="528.0938"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="689.5" x2="689.5" y1="38.2969" y2="277.3594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="689.5" x2="689.5" y1="277.3594" y2="318.1641"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="689.5" x2="689.5" y1="318.1641" y2="528.0938"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="802.5" x2="802.5" y1="38.2969" y2="277.3594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="802.5" x2="802.5" y1="277.3594" y2="318.1641"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="802.5" x2="802.5" y1="318.1641" y2="528.0938"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="906.5" x2="906.5" y1="38.2969" y2="277.3594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="906.5" x2="906.5" y1="277.3594" y2="318.1641"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="906.5" x2="906.5" y1="318.1641" y2="528.0938"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1034" x2="1034" y1="38.2969" y2="277.3594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="1034" x2="1034" y1="277.3594" y2="318.1641"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1034" x2="1034" y1="318.1641" y2="528.0938"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1139" x2="1139" y1="38.2969" y2="277.3594"/><line style="stroke: #A80036; stroke-width: 1.0; stroke-dasharray: 1.0,4.0;" x1="1139" x2="1139" y1="277.3594" y2="318.1641"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="1139" x2="1139" y1="318.1641" y2="528.0938"/><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="8" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="15" y="22.9951">service_eInk</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="8" y="527.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="15" y="547.0889">service_eInk</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="211" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="218" y="22.9951">eInkSentinel</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="211" y="527.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="218" y="547.0889">eInkSentinel</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="117" x="426" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="433" y="22.9951">PowerManager</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="117" x="426" y="527.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="103" x="433" y="547.0889">PowerManager</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="634.5" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="92" x="641.5" y="22.9951">CpuGovernor</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="106" x="634.5" y="527.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="92" x="641.5" y="547.0889">CpuGovernor</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="92" x="754.5" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="78" x="761.5" y="22.9951">EinkDisplay</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="92" x="754.5" y="527.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="78" x="761.5" y="547.0889">EinkDisplay</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="89" x="860.5" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="75" x="867.5" y="22.9951">driverLPSPI</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="89" x="860.5" y="527.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="75" x="867.5" y="547.0889">driverLPSPI</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="990" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="70" x="997" y="22.9951">driverPLL2</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="84" x="990" y="527.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="70" x="997" y="547.0889">driverPLL2</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="1088" y="3"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="1095" y="22.9951">clock_config</text><rect fill="#FEFECE" filter="url(#fcbnkjoqvuo08)" height="30.2969" style="stroke: #A80036; stroke-width: 1.5;" width="99" x="1088" y="527.0938"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacingAndGlyphs" textLength="85" x="1095" y="547.0889">clock_config</text><polygon fill="#A80036" points="250.5,65.4297,260.5,69.4297,250.5,73.4297,254.5,69.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="59.5" x2="256.5" y1="69.4297" y2="69.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="176" x="66.5" y="64.3638">SetFrequencyValueRequest</text><polygon fill="#A80036" points="474.5,94.5625,484.5,98.5625,474.5,102.5625,478.5,98.5625" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="262.5" x2="480.5" y1="98.5625" y2="98.5625"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="200" x="269.5" y="93.4966">RequestCpuFrequencyMessage</text><polygon fill="#A80036" points="677.5,123.6953,687.5,127.6953,677.5,131.6953,681.5,127.6953" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="486.5" x2="683.5" y1="127.6953" y2="127.6953"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="165" x="493.5" y="122.6294">SetCpuFrequencyRequest</text><polygon fill="#A80036" points="790.5,152.8281,800.5,156.8281,790.5,160.8281,794.5,156.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="59.5" x2="796.5" y1="156.8281" y2="156.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="56" x="66.5" y="151.7622">powerOn</text><polygon fill="#A80036" points="895,181.9609,905,185.9609,895,189.9609,899,185.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="802.5" x2="901" y1="185.9609" y2="185.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="43" x="809.5" y="180.895">Enable</text><polygon fill="#A80036" points="1022,223.6602,1032,227.6602,1022,231.6602,1026,227.6602" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="907" x2="1028" y1="227.6602" y2="227.6602"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="99" x="914" y="222.5942">Pll2ClockEnable</text><path d="M1039,198.9609 L1039,238.9609 L1170,238.9609 L1170,208.9609 L1160,198.9609 L1039,198.9609 " fill="#FBFB77" filter="url(#fcbnkjoqvuo08)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1160,198.9609 L1160,208.9609 L1170,208.9609 L1160,198.9609 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="98" x="1045" y="216.0278">Critical section!</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="1045" y="231.1606">mutex necessary</text><polygon fill="#A80036" points="1127.5,265.3594,1137.5,269.3594,1127.5,273.3594,1131.5,269.3594" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="907" x2="1133.5" y1="269.3594" y2="269.3594"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="112" x="914" y="264.2935">LPSPIClockEnable</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="83" x="558" y="301.5698">screen redraw</text><polygon fill="#A80036" points="895,335.2969,905,339.2969,895,343.2969,899,339.2969" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="802.5" x2="901" y1="339.2969" y2="339.2969"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="47" x="809.5" y="334.231">Disable</text><polygon fill="#A80036" points="1127.5,364.4297,1137.5,368.4297,1127.5,372.4297,1131.5,368.4297" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="907" x2="1133.5" y1="368.4297" y2="368.4297"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="116" x="914" y="363.3638">LPSPIClockDisable</text><polygon fill="#A80036" points="1022,406.1289,1032,410.1289,1022,414.1289,1026,410.1289" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="907" x2="1028" y1="410.1289" y2="410.1289"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="103" x="914" y="405.063">Pll2ClockDisable</text><path d="M1039,381.4297 L1039,421.4297 L1170,421.4297 L1170,391.4297 L1160,381.4297 L1039,381.4297 " fill="#FBFB77" filter="url(#fcbnkjoqvuo08)" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1160,381.4297 L1160,391.4297 L1170,391.4297 L1160,381.4297 " fill="#FBFB77" style="stroke: #A80036; stroke-width: 1.0;"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="98" x="1045" y="398.4966">Critical section!</text><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="110" x="1045" y="413.6294">mutex necessary</text><polygon fill="#A80036" points="250.5,447.8281,260.5,451.8281,250.5,455.8281,254.5,451.8281" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="59.5" x2="256.5" y1="451.8281" y2="451.8281"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="179" x="66.5" y="446.7622">ResetCpuFrequencyRequest</text><polygon fill="#A80036" points="474.5,476.9609,484.5,480.9609,474.5,484.9609,478.5,480.9609" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="262.5" x2="480.5" y1="480.9609" y2="480.9609"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="200" x="269.5" y="475.895">RequestCpuFrequencyMessage</text><polygon fill="#A80036" points="677.5,506.0938,687.5,510.0938,677.5,514.0938,681.5,510.0938" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.0;" x1="486.5" x2="683.5" y1="510.0938" y2="510.0938"/><text fill="#000000" font-family="sans-serif" font-size="13" lengthAdjust="spacingAndGlyphs" textLength="179" x="493.5" y="505.0278">ResetCpuFrequencyRequest</text><!--MD5=[b2ae224b2d638e53bd7e0f72551ef878]
@startuml
service_eInk -> eInkSentinel : SetFrequencyValueRequest
eInkSentinel -> PowerManager : RequestCpuFrequencyMessage
PowerManager -> CpuGovernor : SetCpuFrequencyRequest
service_eInk -> EinkDisplay : powerOn
EinkDisplay -> driverLPSPI : Enable
driverLPSPI -> driverPLL2 : Pll2ClockEnable
note right
Critical section!
mutex necessary
end note
driverLPSPI -> clock_config : LPSPIClockEnable
...screen redraw...
EinkDisplay -> driverLPSPI : Disable
driverLPSPI -> clock_config : LPSPIClockDisable
driverLPSPI -> driverPLL2 : Pll2ClockDisable
note right
Critical section!
mutex necessary
end note
service_eInk -> eInkSentinel : ResetCpuFrequencyRequest
eInkSentinel -> PowerManager : RequestCpuFrequencyMessage
PowerManager -> CpuGovernor : ResetCpuFrequencyRequest
@enduml
PlantUML version 1.2019.11(Sun Sep 22 12:02:15 CEST 2019)
(EPL source distribution)
Java Runtime: OpenJDK Runtime Environment
JVM: OpenJDK 64-Bit Server VM
Java Version: 14.0.2+12-46
Operating System: Linux
Default Encoding: UTF-8
Language: pl
Country: PL
--></g></svg>