summaryrefslogtreecommitdiffstats
path: root/sdm/libs/core/drm/hw_peripheral_drm.h
diff options
context:
space:
mode:
Diffstat (limited to 'sdm/libs/core/drm/hw_peripheral_drm.h')
-rw-r--r--sdm/libs/core/drm/hw_peripheral_drm.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/sdm/libs/core/drm/hw_peripheral_drm.h b/sdm/libs/core/drm/hw_peripheral_drm.h
index b3b8306c..365da42c 100644
--- a/sdm/libs/core/drm/hw_peripheral_drm.h
+++ b/sdm/libs/core/drm/hw_peripheral_drm.h
@@ -52,6 +52,9 @@ class HWPeripheralDRM : public HWDeviceDRM {
virtual DisplayError Validate(HWLayers *hw_layers);
virtual DisplayError Commit(HWLayers *hw_layers);
virtual DisplayError Flush();
+ virtual DisplayError ControlIdlePowerCollapse(bool enable, bool synchronous);
+ virtual DisplayError PowerOn(int *release_fence);
+
private:
void SetDestScalarData(HWLayersInfo hw_layer_info);
void ResetDisplayParams();
@@ -59,10 +62,15 @@ class HWPeripheralDRM : public HWDeviceDRM {
void SetupConcurrentWriteback(const HWLayersInfo &hw_layer_info, bool validate);
void ConfigureConcurrentWriteback(LayerStack *stack);
void PostCommitConcurrentWriteback(LayerBuffer *output_buffer);
+ void SetIdlePCState() {
+ drm_atomic_intf_->Perform(sde_drm::DRMOps::CRTC_SET_IDLE_PC_STATE, token_.crtc_id,
+ idle_pc_state_);
+ }
sde_drm_dest_scaler_data sde_dest_scalar_data_ = {};
std::vector<SDEScaler> scalar_data_ = {};
CWBConfig cwb_config_ = {};
+ sde_drm::DRMIdlePCState idle_pc_state_ = sde_drm::DRMIdlePCState::NONE;
};
} // namespace sdm