diff options
Diffstat (limited to 'sdm/libs/core/display_primary.cpp')
-rw-r--r-- | sdm/libs/core/display_primary.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/sdm/libs/core/display_primary.cpp b/sdm/libs/core/display_primary.cpp index ba83d05c..14d2e89b 100644 --- a/sdm/libs/core/display_primary.cpp +++ b/sdm/libs/core/display_primary.cpp @@ -255,6 +255,12 @@ DisplayError DisplayPrimary::GetRefreshRateRange(uint32_t *min_refresh_rate, return error; } +DisplayError DisplayPrimary::TeardownConcurrentWriteback(void) { + lock_guard<recursive_mutex> obj(recursive_mutex_); + + return hw_intf_->TeardownConcurrentWriteback(); +} + DisplayError DisplayPrimary::SetRefreshRate(uint32_t refresh_rate, bool final_rate) { lock_guard<recursive_mutex> obj(recursive_mutex_); @@ -416,5 +422,18 @@ void DisplayPrimary::ResetPanel() { } } +DisplayError DisplayPrimary::ControlIdlePowerCollapse(bool enable, bool synchronous) { + lock_guard<recursive_mutex> obj(recursive_mutex_); + if (!active_) { + DLOGW("Invalid display state = %d. Panel must be on.", state_); + return kErrorPermission; + } + if (hw_panel_info_.mode == kModeVideo) { + DLOGW("Idle power collapse not supported for video mode panel."); + return kErrorNotSupported; + } + return hw_intf_->ControlIdlePowerCollapse(enable, synchronous); +} + } // namespace sdm |