diff options
author | Linux Build Service Account <lnxbuild@localhost> | 2021-10-18 23:41:38 -0700 |
---|---|---|
committer | Linux Build Service Account <lnxbuild@localhost> | 2021-10-18 23:41:38 -0700 |
commit | b937182495e55f140fb62210c64025ebb2ed3d83 (patch) | |
tree | 1f14e9f8911ffc1a5a4ca07bdedfafd8b4f6748a | |
parent | 2dc792e927b7a7d8bd1f8ac9f85b605c2a029d06 (diff) | |
parent | 1a81bdd1ad6522362f5e45161a508b57e46c663c (diff) |
Merge 1a81bdd1ad6522362f5e45161a508b57e46c663c on remote branch
Change-Id: I9fbc17e4a943a6752662aa9530ed11264d8b2a2e
-rw-r--r-- | composer/hwc_display.h | 2 | ||||
-rw-r--r-- | composer/hwc_display_builtin.cpp | 26 | ||||
-rw-r--r-- | composer/hwc_display_builtin.h | 2 | ||||
-rw-r--r-- | composer/hwc_session.cpp | 7 | ||||
-rw-r--r-- | config/display-product.mk | 56 | ||||
-rw-r--r-- | libqdutils/display_config.cpp | 3 | ||||
-rw-r--r-- | libqdutils/display_config.h | 12 | ||||
-rw-r--r-- | sdm/include/private/rc_intf.h | 1 | ||||
-rw-r--r-- | sdm/libs/core/display_base.cpp | 4 |
9 files changed, 80 insertions, 33 deletions
diff --git a/composer/hwc_display.h b/composer/hwc_display.h index c76bcdc0..e42443c8 100644 --- a/composer/hwc_display.h +++ b/composer/hwc_display.h @@ -250,7 +250,7 @@ class HWCDisplay : public DisplayEventHandler { virtual int SetState(bool connected) { return kErrorNotSupported; } - virtual DisplayError SetStandByMode(bool enable) { + virtual DisplayError SetStandByMode(bool enable, bool is_twm) { return kErrorNotSupported; } virtual DisplayError Flush() { diff --git a/composer/hwc_display_builtin.cpp b/composer/hwc_display_builtin.cpp index 7d1cdf94..86a149ba 100644 --- a/composer/hwc_display_builtin.cpp +++ b/composer/hwc_display_builtin.cpp @@ -1331,11 +1331,31 @@ DisplayError HWCDisplayBuiltIn::GetSupportedDSIClock(std::vector<uint64_t> *bitc return kErrorNotSupported; } -DisplayError HWCDisplayBuiltIn::SetStandByMode(bool enable) { +DisplayError HWCDisplayBuiltIn::SetStandByMode(bool enable, bool is_twm) { if (enable) { if (!display_null_.IsActive()) { stored_display_intf_ = display_intf_; display_intf_ = &display_null_; + shared_ptr<Fence> release_fence = nullptr; + + if (is_twm && current_power_mode_ == HWC2::PowerMode::On) { + DLOGD("Display is in ON state and device is entering TWM mode."); + DisplayError error = stored_display_intf_->SetDisplayState(kStateDoze, + false /* teardown */, + &release_fence); + if (error != kErrorNone) { + if (error == kErrorShutDown) { + shutdown_pending_ = true; + return error; + } + DLOGE("Set state failed. Error = %d", error); + return error; + } else { + current_power_mode_ = HWC2::PowerMode::Doze; + DLOGD("Display moved to DOZE state."); + } + } + display_null_.SetActive(true); DLOGD("Null display is connected successfully"); } else { @@ -1343,6 +1363,10 @@ DisplayError HWCDisplayBuiltIn::SetStandByMode(bool enable) { } } else { if (display_null_.IsActive()) { + if (is_twm) { + DLOGE("Unexpected event. Display state may be inconsistent."); + return kErrorNotSupported; + } display_intf_ = stored_display_intf_; validated_ = false; display_null_.SetActive(false); diff --git a/composer/hwc_display_builtin.h b/composer/hwc_display_builtin.h index ab973bc1..e1a2d25d 100644 --- a/composer/hwc_display_builtin.h +++ b/composer/hwc_display_builtin.h @@ -114,7 +114,7 @@ class HWCDisplayBuiltIn : public HWCDisplay, public SyncTask<LayerStitchTaskCode virtual DisplayError SetDynamicDSIClock(uint64_t bitclk); virtual DisplayError GetDynamicDSIClock(uint64_t *bitclk); virtual DisplayError GetSupportedDSIClock(std::vector<uint64_t> *bitclk_rates); - virtual DisplayError SetStandByMode(bool enable); + virtual DisplayError SetStandByMode(bool enable, bool is_twm); virtual HWC2::Error UpdateDisplayId(hwc2_display_t id); virtual HWC2::Error SetPendingRefresh(); virtual HWC2::Error SetPanelBrightness(float brightness); diff --git a/composer/hwc_session.cpp b/composer/hwc_session.cpp index 51d25f28..f12263ba 100644 --- a/composer/hwc_session.cpp +++ b/composer/hwc_session.cpp @@ -2553,13 +2553,18 @@ android::status_t HWCSession::SetStandByMode(const android::Parcel *input_parcel SCOPE_LOCK(locker_[HWC_DISPLAY_PRIMARY]); bool enable = (input_parcel->readInt32() > 0); + bool is_twm = (input_parcel->readInt32() > 0); if (!hwc_display_[HWC_DISPLAY_PRIMARY]) { DLOGI("Primary display is not initialized"); return -EINVAL; } - hwc_display_[HWC_DISPLAY_PRIMARY]->SetStandByMode(enable); + DisplayError error = hwc_display_[HWC_DISPLAY_PRIMARY]->SetStandByMode(enable, is_twm); + if (error != kErrorNone) { + DLOGE("SetStandByMode failed. Error = %d", error); + return -EINVAL; + } return android::NO_ERROR; } diff --git a/config/display-product.mk b/config/display-product.mk index 4c96a6b6..979a17e7 100644 --- a/config/display-product.mk +++ b/config/display-product.mk @@ -1,3 +1,7 @@ +ifeq ($(BOARD_DISPLAY_HAL),) + BOARD_DISPLAY_HAL := hardware/qcom/display +endif + # Display product definitions PRODUCT_PACKAGES += \ android.hardware.graphics.mapper@3.0-impl-qti-display \ @@ -23,43 +27,43 @@ PRODUCT_PACKAGES += \ ifneq ($(TARGET_HAS_LOW_RAM),true) #QDCM calibration xml file for 2k panel -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_nt35597_cmd_mode_dsi_truly_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_nt35597_cmd_mode_dsi_truly_panel_with_DSC.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_nt35597_cmd_mode_dsi_truly_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_nt35597_video_mode_dsi_truly_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_nt35597_cmd_mode_dsi_truly_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_nt35597_cmd_mode_dsi_truly_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_nt35597_cmd_mode_dsi_truly_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_nt35597_video_mode_dsi_truly_panel_with_DSC.xml #QDCM calibration xml file for 4k panel -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_Sharp_4k_cmd_mode_dsc_dsi_panel.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_4k_cmd_mode_dsc_dsi_panel.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_Sharp_4k_cmd_mode_dsc_dsi_panel.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_4k_video_mode_dsc_dsi_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_Sharp_4k_cmd_mode_dsc_dsi_panel.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_4k_cmd_mode_dsc_dsi_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_Sharp_4k_cmd_mode_dsc_dsi_panel.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_4k_video_mode_dsc_dsi_panel.xml #QDCM calibration xml file for amoled panel -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_sw43404_amoled_cmd_mode_dsi_boe_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_sw43404_amoled_cmd_mode_dsi_boe_panel_with_DSC.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_sw43404_amoled_cmd_mode_dsi_boe_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_sw43404_amoled_video_mode_dsi_boe_panel_with_DSC.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_sw43404_amoled_cmd_mode_dsi_boe_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_sw43404_amoled_boe_fhd+_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_sw43404_amoled_cmd_mode_dsi_boe_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_sw43404_amoled_cmd_mode_dsi_boe_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_sw43404_amoled_cmd_mode_dsi_boe_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_sw43404_amoled_video_mode_dsi_boe_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_sw43404_amoled_cmd_mode_dsi_boe_panel_with_DSC.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_sw43404_amoled_boe_fhd+_panel_with_DSC.xml #QDCM calibration xml file for dual panel -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_sharp_1080p_cmd_mode_dsi_panel.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_nt35695b_truly_fhd_command_mode_dsi_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_sharp_1080p_cmd_mode_dsi_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_nt35695b_truly_fhd_command_mode_dsi_panel.xml #QDCM calibration xml file for Sharp fhd panel -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_fhd_cmd_mode_qsync_dsi_panel.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_fhd_video_mode_qsync_dsi_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_fhd_cmd_mode_qsync_dsi_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_fhd_video_mode_qsync_dsi_panel.xml #QDCM calibration xml file for Sharp 2k panel -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_2k_cmd_mode_qsync_dsi_panel.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_2k_video_mode_qsync_dsi_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_2k_cmd_mode_qsync_dsi_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_Sharp_2k_video_mode_qsync_dsi_panel.xml #QDCM calibration xml file for r66451 amoled panel -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_60HZ_panel_with_DSC.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_90HZ_panel_with_DSC.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_120HZ_panel_with_DSC.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_60HZ_panel_with_DSC.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_90HZ_panel_with_DSC.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_120HZ_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_60HZ_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_90HZ_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_cmd_mode_dsi_visionox_120HZ_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_60HZ_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_90HZ_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_r66451_amoled_video_mode_dsi_visionox_120HZ_panel_with_DSC.xml #QDCM calibration xml file for rm69299 amoled fhd+ panel -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_rm69299_amoled_fhd+_video_mode_dsi_visionox_panel.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_rm69299_amoled_fhd+_cmd_mode_dsi_visionox_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_rm69299_amoled_fhd+_video_mode_dsi_visionox_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_rm69299_amoled_fhd+_cmd_mode_dsi_visionox_panel.xml #QDCM calibration xml file for nt36525 truly panel -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_bengal_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_nt36525_video_mode_dsi_truly_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_bengal_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_nt36525_video_mode_dsi_truly_panel.xml #QDCM calibration xml file for nt36672e LCD video mode single dsi with DSC panel. -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_bengal_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_nt36672e_90Hz_fhd_plus_video_mode_panel_with_DSC.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_bengal_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_nt36672e_90Hz_fhd_plus_video_mode_panel_with_DSC.xml endif #QDCM calibration xml file for td4330 panel -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_bengal_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_td4330_v2_cmd_mode_dsi_truly_panel.xml -PRODUCT_COPY_FILES += hardware/qcom/display/config/qdcm_calib_data_bengal_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_td4330_v2_video_mode_dsi_truly_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_bengal_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_td4330_v2_cmd_mode_dsi_truly_panel.xml +PRODUCT_COPY_FILES += $(BOARD_DISPLAY_HAL)/config/qdcm_calib_data_bengal_default.xml:$(TARGET_COPY_OUT_VENDOR)/etc/qdcm_calib_data_td4330_v2_video_mode_dsi_truly_panel.xml PRODUCT_PROPERTY_OVERRIDES += \ persist.demo.hdmirotationlock=false \ diff --git a/libqdutils/display_config.cpp b/libqdutils/display_config.cpp index dc590e95..0697c88c 100644 --- a/libqdutils/display_config.cpp +++ b/libqdutils/display_config.cpp @@ -394,13 +394,14 @@ extern "C" int waitForComposerInit() { return !status; } -extern "C" int setStandByMode(int mode) { +extern "C" int setStandByMode(int mode, int is_twm = false) { status_t err = (status_t) FAILED_TRANSACTION; sp<IQService> binder = getBinder(); Parcel inParcel, outParcel; if(binder != NULL) { inParcel.writeInt32(mode); + inParcel.writeInt32(is_twm); err = binder->dispatch(IQService::SET_STAND_BY_MODE, &inParcel, &outParcel); if(err) { diff --git a/libqdutils/display_config.h b/libqdutils/display_config.h index d3f75d56..66f6a3f6 100644 --- a/libqdutils/display_config.h +++ b/libqdutils/display_config.h @@ -170,8 +170,16 @@ int getSupportedBitClk(int dpy, std::vector<uint64_t>& bit_rates); // Sets the specified min and max luminance values. int setPanelLuminanceAttributes(int dpy, float min_lum, float max_lum); -// Sets display standy mode -extern "C" int setStandByMode(int mode); +// Informs HWC about TWM entry/exit based on which NULL Display is connected +// or disconnected. +// mode -> 0 for exit sequence, 1 for entry sequence. +// is_twm -> +// 0 for regular ambient mode +// 1 for TWM with framework shutdown mode (If display is in ON state, then +// this would put display in DOZE state). +// Using 0 for mode value and 1 for is_twm is not valid, it may lead to +// state inconsistency between Android Framework and HAL. +int setStandByMode(int mode, int is_twm); // Get Panel Resolution extern "C" int getPanelResolution(int *width, int *height); diff --git a/sdm/include/private/rc_intf.h b/sdm/include/private/rc_intf.h index a43e5633..fcbe5dcf 100644 --- a/sdm/include/private/rc_intf.h +++ b/sdm/include/private/rc_intf.h @@ -51,6 +51,7 @@ struct RCOutputConfig { int32_t top_height = 0; int32_t bottom_width = 0; int32_t bottom_height = 0; + bool rc_needs_full_roi = false; }; // These value is to get the status of the mask diff --git a/sdm/libs/core/display_base.cpp b/sdm/libs/core/display_base.cpp index 8cccbf98..6525b213 100644 --- a/sdm/libs/core/display_base.cpp +++ b/sdm/libs/core/display_base.cpp @@ -461,6 +461,9 @@ void DisplayBase::SetRCData(LayerStack *layer_stack) { if (!ret) { DLOGD_IF(kTagDisplay, "RC top_height = %d, RC bot_height = %d", rc_out_config->top_height, rc_out_config->bottom_height); + if (rc_out_config->rc_needs_full_roi) { + DisablePartialUpdateOneFrame(); + } hw_layers_info.rc_config = true; hw_layers_info.rc_layers_info.top_width = rc_out_config->top_width; hw_layers_info.rc_layers_info.top_height = rc_out_config->top_height; @@ -501,6 +504,7 @@ DisplayError DisplayBase::Commit(LayerStack *layer_stack) { } else { DLOGI_IF(kTagDisplay, "Status of RC mask data: %d.", (*mask_status).rc_mask_state); if ((*mask_status).rc_mask_state == kStatusRcMaskStackDirty) { + DisablePartialUpdateOneFrame(); needs_validate_ = true; DLOGI_IF(kTagDisplay, "Mask is ready for display %d-%d, call Corresponding Prepare()", display_id_, display_type_); |