Merge "drm_hwcomposer: Return an error corresponding to EX_CONFIG_FAILED for config failure" into main
diff --git a/hwc2_device/HwcDisplay.cpp b/hwc2_device/HwcDisplay.cpp
index 16d8bac..957f29f 100644
--- a/hwc2_device/HwcDisplay.cpp
+++ b/hwc2_device/HwcDisplay.cpp
@@ -326,7 +326,7 @@
if (ret) {
ALOGE("Blocking config failed: %d", ret);
- return HwcDisplay::ConfigError::kBadConfig;
+ return HwcDisplay::ConfigError::kConfigFailed;
}
ALOGV("Blocking config succeeded.");
diff --git a/hwc2_device/HwcDisplay.h b/hwc2_device/HwcDisplay.h
index 7522c8d..52e007f 100644
--- a/hwc2_device/HwcDisplay.h
+++ b/hwc2_device/HwcDisplay.h
@@ -47,7 +47,8 @@
kNone,
kBadConfig,
kSeamlessNotAllowed,
- kSeamlessNotPossible
+ kSeamlessNotPossible,
+ kConfigFailed,
};
HwcDisplay(hwc2_display_t handle, HWC2::DisplayType type, DrmHwc *hwc);
diff --git a/hwc3/ComposerClient.cpp b/hwc3/ComposerClient.cpp
index b03ddd7..a5aa56f 100644
--- a/hwc3/ComposerClient.cpp
+++ b/hwc3/ComposerClient.cpp
@@ -1121,6 +1121,8 @@
return ToBinderStatus(hwc3::Error::kSeamlessNotAllowed);
case HwcDisplay::ConfigError::kSeamlessNotPossible:
return ToBinderStatus(hwc3::Error::kSeamlessNotPossible);
+ case HwcDisplay::ConfigError::kConfigFailed:
+ return ToBinderStatus(hwc3::Error::kConfigFailed);
case HwcDisplay::ConfigError::kNone:
return ndk::ScopedAStatus::ok();
}
diff --git a/hwc3/Utils.h b/hwc3/Utils.h
index 642c777..aa956f6 100644
--- a/hwc3/Utils.h
+++ b/hwc3/Utils.h
@@ -40,6 +40,7 @@
kUnsupported = IComposerClient::EX_UNSUPPORTED,
kSeamlessNotAllowed = IComposerClient::EX_SEAMLESS_NOT_ALLOWED,
kSeamlessNotPossible = IComposerClient::EX_SEAMLESS_NOT_POSSIBLE,
+ kConfigFailed = IComposerClient::EX_CONFIG_FAILED,
};
} // namespace hwc3