drm_hwcomposer: Fix headless mode
The headless mode has a nullptr pipeline, which causes crash a when dereferenced.
Fixes: 851ea4dc268c ("drm_hwcomposer: Implement getHdrCapabilities and getColorModes")
Change-Id: Iaac5f8c1e1c99734dd3e0b340cf6fc50e88f9908
Signed-off-by: Roman Stratiienko <r.stratiienko@gmail.com>
diff --git a/hwc2_device/HwcDisplay.cpp b/hwc2_device/HwcDisplay.cpp
index 252276f..1a833cd 100644
--- a/hwc2_device/HwcDisplay.cpp
+++ b/hwc2_device/HwcDisplay.cpp
@@ -580,6 +580,13 @@
}
HWC2::Error HwcDisplay::GetColorModes(uint32_t *num_modes, int32_t *modes) {
+ if (IsInHeadlessMode()) {
+ *num_modes = 1;
+ if (modes)
+ modes[0] = HAL_COLOR_MODE_NATIVE;
+ return HWC2::Error::None;
+ }
+
if (!modes) {
std::vector<Colormode> temp_modes;
GetEdid()->GetColorModes(temp_modes);
@@ -716,6 +723,11 @@
float *max_luminance,
float *max_average_luminance,
float *min_luminance) {
+ if (IsInHeadlessMode()) {
+ *num_types = 0;
+ return HWC2::Error::None;
+ }
+
if (!types) {
std::vector<ui::Hdr> temp_types;
float lums[3] = {0.F};