sde: Perform cwb teardown after each commit
Need to release cwb resources after each commit. This is required to
address usecases like create virtual display after HWC Readback.
CRs-Fixed: 2365066
Change-Id: I426ec99931a2cbfcc877c595d82bca8591281e93
diff --git a/sdm/libs/core/drm/hw_peripheral_drm.cpp b/sdm/libs/core/drm/hw_peripheral_drm.cpp
index 7ad6a71..076cde3 100644
--- a/sdm/libs/core/drm/hw_peripheral_drm.cpp
+++ b/sdm/libs/core/drm/hw_peripheral_drm.cpp
@@ -290,9 +290,6 @@
drm_atomic_intf_->Perform(DRMOps::CONNECTOR_GET_RETIRE_FENCE,
cwb_config_.token.conn_id, fence);
}
- } else {
- // Tear down the Concurrent Writeback topology.
- drm_atomic_intf_->Perform(DRMOps::CONNECTOR_SET_CRTC, cwb_config_.token.conn_id, 0);
}
}
}
@@ -364,7 +361,9 @@
void HWPeripheralDRM::PostCommitConcurrentWriteback(LayerBuffer *output_buffer) {
bool enabled = hw_resource_.has_concurrent_writeback && output_buffer;
- if (!enabled) {
+ if (enabled) {
+ // Tear down the Concurrent Writeback topology.
+ drm_atomic_intf_->Perform(DRMOps::CONNECTOR_SET_CRTC, cwb_config_.token.conn_id, 0);
drm_mgr_intf_->UnregisterDisplay(cwb_config_.token);
cwb_config_.enabled = false;
registry_.Clear();