Upgrade drm_hwcomposer to 75855a6ab877011a2e26ae95da7ddf06dd3a04b2 am: 21a455e841 am: df1816f658
Original change: undetermined
Change-Id: Ia209214ca586783d0a791408346bbd5611760afa
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
diff --git a/hwc2_device/HwcDisplay.cpp b/hwc2_device/HwcDisplay.cpp
index 42ebd63..7db6566 100644
--- a/hwc2_device/HwcDisplay.cpp
+++ b/hwc2_device/HwcDisplay.cpp
@@ -239,7 +239,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 7391785..63363bb 100644
--- a/hwc2_device/HwcDisplay.h
+++ b/hwc2_device/HwcDisplay.h
@@ -52,7 +52,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 50d8ce6..92356d5 100644
--- a/hwc3/ComposerClient.cpp
+++ b/hwc3/ComposerClient.cpp
@@ -30,6 +30,8 @@
#include <aidl/android/hardware/graphics/composer3/Composition.h>
#include <aidl/android/hardware/graphics/composer3/DisplayRequest.h>
#include <aidl/android/hardware/graphics/composer3/IComposerClient.h>
+#include <aidl/android/hardware/graphics/composer3/Luts.h>
+#include <aidl/android/hardware/graphics/composer3/OutputType.h>
#include <aidl/android/hardware/graphics/composer3/PowerMode.h>
#include <aidl/android/hardware/graphics/composer3/PresentOrValidate.h>
#include <aidl/android/hardware/graphics/composer3/RenderIntent.h>
@@ -277,7 +279,8 @@
.width = config.mode.GetRawMode().hdisplay,
.height = config.mode.GetRawMode().vdisplay,
.configGroup = static_cast<int32_t>(config.group_id),
- .vsyncPeriod = config.mode.GetVSyncPeriodNs()};
+ .vsyncPeriod = config.mode.GetVSyncPeriodNs(),
+ .hdrOutputType = static_cast<OutputType>(OutputType::SYSTEM)};
if (configs.mm_width != 0) {
// ideally this should be vdisplay/mm_heigth, however mm_height
@@ -636,6 +639,9 @@
if (command.sidebandStream) {
cmd_result_writer_->AddError(hwc3::Error::kUnsupported);
}
+ if (command.luts) {
+ cmd_result_writer_->AddError(hwc3::Error::kUnsupported);
+ }
// TODO: Blocking region handling missing.
// TODO: Layer surface damage.
// TODO: Layer visible region.
@@ -1260,6 +1266,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();
}
@@ -1433,8 +1441,22 @@
return ToBinderStatus(hwc3::Error::kUnsupported);
}
+ndk::ScopedAStatus ComposerClient::startHdcpNegotiation(
+ int64_t /*display*/, const AidlHdcpLevels& /*levels*/) {
+ return ToBinderStatus(hwc3::Error::kUnsupported);
+}
+
#endif
+ndk::ScopedAStatus ComposerClient::getMaxLayerPictureProfiles(int64_t, int32_t*) {
+ return ToBinderStatus(hwc3::Error::kUnsupported);
+}
+
+ndk::ScopedAStatus ComposerClient::getLuts(int64_t, const std::vector<Buffer>&,
+ std::vector<Luts>*) {
+ return ToBinderStatus(hwc3::Error::kUnsupported);
+}
+
std::string ComposerClient::Dump() {
uint32_t size = 0;
hwc_->Dump(&size, nullptr);
diff --git a/hwc3/ComposerClient.h b/hwc3/ComposerClient.h
index 25dc0ca..ed47cd6 100644
--- a/hwc3/ComposerClient.h
+++ b/hwc3/ComposerClient.h
@@ -25,6 +25,7 @@
#include "hwc3/Utils.h"
#include "utils/Mutex.h"
+using AidlHdcpLevels = aidl::android::hardware::drm::HdcpLevels;
using AidlPixelFormat = aidl::android::hardware::graphics::common::PixelFormat;
using AidlNativeHandle = aidl::android::hardware::common::NativeHandle;
@@ -151,9 +152,16 @@
ndk::ScopedAStatus notifyExpectedPresent(
int64_t display, const ClockMonotonicTimestamp& expected_present_time,
int32_t frame_interval_ns) override;
+ ndk::ScopedAStatus startHdcpNegotiation(int64_t display,
+ const AidlHdcpLevels& levels) override;
#endif
+ ndk::ScopedAStatus getMaxLayerPictureProfiles(
+ int64_t display, int32_t* maxProfiles) override;
+ ndk::ScopedAStatus getLuts(int64_t, const std::vector<Buffer>&,
+ std::vector<Luts>* out_luts) override;
+
protected:
::ndk::SpAIBinder createBinder() override;
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