From 27d2ed670bb343669e1d790710fb82e9ec900e85 Mon Sep 17 00:00:00 2001 From: Roman Stratiienko Date: Sat, 26 Sep 2020 23:59:19 +0300 Subject: [PATCH] drm_hwcomposer: Fix SetColorMode() and SetColorModeWithIntent() SetColorMode() should return HWC2_ERROR_UNSUPPORTED [1] SetColorModeWithIntent() should return HWC2_ERROR_UNSUPPORTED [2] Parameters range shoud be also checked to pass VTS. Fixes VtsHalGraphicsComposerV2_2TargetTest: - PerInstance/GraphicsComposerHidlTest#SetColorMode_2_2* ============================================ ================= Results ================== arm64-v8a VtsHalGraphicsComposerV2_2TargetTest: 39s armeabi-v7a VtsHalGraphicsComposerV2_2TargetTest: 36s =============== Summary =============== 2/2 modules completed Total Tests : 78 PASSED : 78 FAILED : 0 ============================================ [1] - https://cs.android.com/android/platform/superproject/+/master:hardware/libhardware/include/hardware/hwcomposer2.h;l=1925;drc=d5f2f67cd2ae63abeccabd0d5339dacd469569cd [2] - https://cs.android.com/android/platform/superproject/+/master:hardware/libhardware/include/hardware/hwcomposer2.h;l=1952;drc=d5f2f67cd2ae63abeccabd0d5339dacd469569cd Signed-off-by: Roman Stratiienko --- DrmHwcTwo.cpp | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/DrmHwcTwo.cpp b/DrmHwcTwo.cpp index 81bb96d..38ca663 100644 --- a/DrmHwcTwo.cpp +++ b/DrmHwcTwo.cpp @@ -783,7 +783,7 @@ HWC2::Error DrmHwcTwo::HwcDisplay::SetColorMode(int32_t mode) { supported(__func__); if (mode != HAL_COLOR_MODE_NATIVE) - return HWC2::Error::BadParameter; + return HWC2::Error::Unsupported; color_mode_ = mode; return HWC2::Error::None; @@ -950,10 +950,19 @@ HWC2::Error DrmHwcTwo::HwcDisplay::GetRenderIntents( HWC2::Error DrmHwcTwo::HwcDisplay::SetColorModeWithIntent(int32_t mode, int32_t intent) { - if (mode != HAL_COLOR_MODE_NATIVE) + if (intent < HAL_RENDER_INTENT_COLORIMETRIC || + intent > HAL_RENDER_INTENT_TONE_MAP_ENHANCE) return HWC2::Error::BadParameter; - if (intent != HAL_RENDER_INTENT_COLORIMETRIC) + + if (mode < HAL_COLOR_MODE_NATIVE || mode > HAL_COLOR_MODE_BT2100_HLG) return HWC2::Error::BadParameter; + + if (mode != HAL_COLOR_MODE_NATIVE) + return HWC2::Error::Unsupported; + + if (intent != HAL_RENDER_INTENT_COLORIMETRIC) + return HWC2::Error::Unsupported; + color_mode_ = mode; return HWC2::Error::None; } -- 2.11.0