diff --git a/sdm/libs/core/drm/hw_device_drm.cpp b/sdm/libs/core/drm/hw_device_drm.cpp index 14d00644..e90a782b 100644 --- a/sdm/libs/core/drm/hw_device_drm.cpp +++ b/sdm/libs/core/drm/hw_device_drm.cpp @@ -740,6 +740,8 @@ DisplayError HWDeviceDRM::PowerOff() { } SetFullROI(); + drmModeModeInfo current_mode = connector_info_.modes[current_mode_index_].mode; + drm_atomic_intf_->Perform(DRMOps::CRTC_SET_MODE, token_.crtc_id, ¤t_mode); drm_atomic_intf_->Perform(DRMOps::CONNECTOR_SET_POWER_MODE, token_.conn_id, DRMPowerMode::OFF); drm_atomic_intf_->Perform(DRMOps::CRTC_SET_ACTIVE, token_.crtc_id, 0); int ret = drm_atomic_intf_->Commit(true /* synchronous */, false /* retain_planes */); diff --git a/sdm/libs/hwc2/hwc_display.cpp b/sdm/libs/hwc2/hwc_display.cpp index d54d8980..dd049de8 100644 --- a/sdm/libs/hwc2/hwc_display.cpp +++ b/sdm/libs/hwc2/hwc_display.cpp @@ -1993,6 +1993,10 @@ int HWCDisplay::SetActiveDisplayConfig(uint32_t config) { } int HWCDisplay::GetActiveDisplayConfig(uint32_t *config) { + if (config_pending_) { + *config = display_config_; + return 0; + } return display_intf_->GetActiveConfig(config) == kErrorNone ? 0 : -1; }