xref: /aosp_15_r20/external/drm_hwcomposer/hwc3/Utils.cpp (revision 0a9764fe0a15e71ebbeb85e87e10990c23aab47f)
1*0a9764feSAndroid Build Coastguard Worker 
2*0a9764feSAndroid Build Coastguard Worker /*
3*0a9764feSAndroid Build Coastguard Worker  * Copyright (C) 2024 The Android Open Source Project
4*0a9764feSAndroid Build Coastguard Worker  *
5*0a9764feSAndroid Build Coastguard Worker  * Licensed under the Apache License, Version 2.0 (the "License");
6*0a9764feSAndroid Build Coastguard Worker  * you may not use this file except in compliance with the License.
7*0a9764feSAndroid Build Coastguard Worker  * You may obtain a copy of the License at
8*0a9764feSAndroid Build Coastguard Worker  *
9*0a9764feSAndroid Build Coastguard Worker  *      http://www.apache.org/licenses/LICENSE-2.0
10*0a9764feSAndroid Build Coastguard Worker  *
11*0a9764feSAndroid Build Coastguard Worker  * Unless required by applicable law or agreed to in writing, software
12*0a9764feSAndroid Build Coastguard Worker  * distributed under the License is distributed on an "AS IS" BASIS,
13*0a9764feSAndroid Build Coastguard Worker  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14*0a9764feSAndroid Build Coastguard Worker  * See the License for the specific language governing permissions and
15*0a9764feSAndroid Build Coastguard Worker  * limitations under the License.
16*0a9764feSAndroid Build Coastguard Worker  */
17*0a9764feSAndroid Build Coastguard Worker 
18*0a9764feSAndroid Build Coastguard Worker #define LOG_TAG "drmhwc"
19*0a9764feSAndroid Build Coastguard Worker #define ATRACE_TAG (ATRACE_TAG_GRAPHICS | ATRACE_TAG_HAL)
20*0a9764feSAndroid Build Coastguard Worker 
21*0a9764feSAndroid Build Coastguard Worker #include "Utils.h"
22*0a9764feSAndroid Build Coastguard Worker 
23*0a9764feSAndroid Build Coastguard Worker #include <hardware/hwcomposer2.h>
24*0a9764feSAndroid Build Coastguard Worker 
25*0a9764feSAndroid Build Coastguard Worker #include "utils/log.h"
26*0a9764feSAndroid Build Coastguard Worker 
27*0a9764feSAndroid Build Coastguard Worker namespace aidl::android::hardware::graphics::composer3 {
28*0a9764feSAndroid Build Coastguard Worker 
Hwc2toHwc3Error(HWC2::Error error)29*0a9764feSAndroid Build Coastguard Worker hwc3::Error Hwc2toHwc3Error(HWC2::Error error) {
30*0a9764feSAndroid Build Coastguard Worker   switch (error) {
31*0a9764feSAndroid Build Coastguard Worker     case HWC2::Error::None:
32*0a9764feSAndroid Build Coastguard Worker       return hwc3::Error::kNone;
33*0a9764feSAndroid Build Coastguard Worker     case HWC2::Error::BadConfig:
34*0a9764feSAndroid Build Coastguard Worker       return hwc3::Error::kBadConfig;
35*0a9764feSAndroid Build Coastguard Worker     case HWC2::Error::BadDisplay:
36*0a9764feSAndroid Build Coastguard Worker       return hwc3::Error::kBadDisplay;
37*0a9764feSAndroid Build Coastguard Worker     case HWC2::Error::BadLayer:
38*0a9764feSAndroid Build Coastguard Worker       return hwc3::Error::kBadLayer;
39*0a9764feSAndroid Build Coastguard Worker     case HWC2::Error::BadParameter:
40*0a9764feSAndroid Build Coastguard Worker       return hwc3::Error::kBadParameter;
41*0a9764feSAndroid Build Coastguard Worker     case HWC2::Error::NoResources:
42*0a9764feSAndroid Build Coastguard Worker       return hwc3::Error::kNoResources;
43*0a9764feSAndroid Build Coastguard Worker     case HWC2::Error::NotValidated:
44*0a9764feSAndroid Build Coastguard Worker       return hwc3::Error::kNotValidated;
45*0a9764feSAndroid Build Coastguard Worker     case HWC2::Error::Unsupported:
46*0a9764feSAndroid Build Coastguard Worker       return hwc3::Error::kUnsupported;
47*0a9764feSAndroid Build Coastguard Worker     case HWC2::Error::SeamlessNotAllowed:
48*0a9764feSAndroid Build Coastguard Worker       return hwc3::Error::kSeamlessNotAllowed;
49*0a9764feSAndroid Build Coastguard Worker     case HWC2::Error::SeamlessNotPossible:
50*0a9764feSAndroid Build Coastguard Worker       return hwc3::Error::kSeamlessNotPossible;
51*0a9764feSAndroid Build Coastguard Worker     default:
52*0a9764feSAndroid Build Coastguard Worker       ALOGE("Unknown HWC2 error. Could not translate to HWC3 error: %d",
53*0a9764feSAndroid Build Coastguard Worker             static_cast<int32_t>(error));
54*0a9764feSAndroid Build Coastguard Worker       return hwc3::Error::kUnsupported;
55*0a9764feSAndroid Build Coastguard Worker   }
56*0a9764feSAndroid Build Coastguard Worker }
57*0a9764feSAndroid Build Coastguard Worker 
58*0a9764feSAndroid Build Coastguard Worker };  // namespace aidl::android::hardware::graphics::composer3