Merge "sdm: No safemode fallback for single app layer"
diff --git a/sdm/libs/core/comp_manager.cpp b/sdm/libs/core/comp_manager.cpp
index 0592ba4..e770684 100644
--- a/sdm/libs/core/comp_manager.cpp
+++ b/sdm/libs/core/comp_manager.cpp
@@ -245,13 +245,17 @@
// Set use_cursor constraint to Strategy
constraints->use_cursor = display_comp_ctx->valid_cursor;
- // Avoid idle fallback, if there is only one app layer.
// TODO(user): App layer count will change for hybrid composition
uint32_t app_layer_count = UINT32(hw_layers->info.stack->layers.size()) - 1;
- if ((app_layer_count > 1 && display_comp_ctx->idle_fallback) || display_comp_ctx->fallback_) {
+ if (display_comp_ctx->idle_fallback || display_comp_ctx->thermal_fallback_) {
// Handle the idle timeout by falling back
constraints->safe_mode = true;
}
+
+ // Avoid safe mode, if there is only one app layer.
+ if (app_layer_count == 1) {
+ constraints->safe_mode = false;
+ }
}
void CompManager::PrePrepare(Handle display_ctx, HWLayers *hw_layers) {
@@ -413,9 +417,9 @@
reinterpret_cast<DisplayCompositionContext *>(display_ctx);
if (thermal_level >= kMaxThermalLevel) {
- display_comp_ctx->fallback_ = true;
+ display_comp_ctx->thermal_fallback_ = true;
} else {
- display_comp_ctx->fallback_ = false;
+ display_comp_ctx->thermal_fallback_ = false;
}
}
diff --git a/sdm/libs/core/comp_manager.h b/sdm/libs/core/comp_manager.h
index f0044ec..3713971 100644
--- a/sdm/libs/core/comp_manager.h
+++ b/sdm/libs/core/comp_manager.h
@@ -92,7 +92,7 @@
uint32_t max_strategies = 0;
uint32_t remaining_strategies = 0;
bool idle_fallback = false;
- bool fallback_ = false;
+ bool thermal_fallback_ = false;
// Using primary panel flag of hw panel to configure Constraints. We do not need other hw
// panel parameters for now.
bool is_primary_panel = false;