summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Huihong Luo <huisinro@google.com> 2025-03-21 21:15:29 -0700
committer Android (Google) Code Review <android-gerrit@google.com> 2025-03-21 21:15:29 -0700
commit1eb810d343dd0da0ef039157449db13c5d524619 (patch)
tree6e24db63557321bc0ff224fb428701468a6a08b7
parent520d8fcb8aa54289f2272369d3040635c2fbd4bd (diff)
parent73416e163b7611c2880add437d139129bd0cf79d (diff)
Merge "Remove HDCP vsync hack" into main
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp25
-rw-r--r--services/surfaceflinger/SurfaceFlinger.h2
2 files changed, 3 insertions, 24 deletions
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index 03ee3006ae..1e515a87b7 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -538,9 +538,6 @@ SurfaceFlinger::SurfaceFlinger(Factory& factory) : SurfaceFlinger(factory, SkipI
}
mIgnoreHdrCameraLayers = ignore_hdr_camera_layers(false);
-
- // These are set by the HWC implementation to indicate that they will use the workarounds.
- mIsHdcpViaNegVsync = base::GetBoolProperty("debug.sf.hwc_hdcp_via_neg_vsync"s, false);
}
LatchUnsignaledConfig SurfaceFlinger::getLatchUnsignaledConfig() {
@@ -2301,19 +2298,6 @@ void SurfaceFlinger::scheduleSample() {
void SurfaceFlinger::onComposerHalVsync(hal::HWDisplayId hwcDisplayId, int64_t timestamp,
std::optional<hal::VsyncPeriodNanos> vsyncPeriod) {
- if (timestamp < 0 && vsyncPeriod.has_value()) {
- if (mIsHdcpViaNegVsync && vsyncPeriod.value() == ~1) {
- const int32_t value = static_cast<int32_t>(-timestamp);
- // one byte is good enough to encode android.hardware.drm.HdcpLevel
- const int32_t maxLevel = (value >> 8) & 0xFF;
- const int32_t connectedLevel = value & 0xFF;
- ALOGD("%s: HDCP levels changed (connected=%d, max=%d) for hwcDisplayId %" PRIu64,
- __func__, connectedLevel, maxLevel, hwcDisplayId);
- updateHdcpLevels(hwcDisplayId, connectedLevel, maxLevel);
- return;
- }
- }
-
SFTRACE_NAME(vsyncPeriod
? ftl::Concat(__func__, ' ', hwcDisplayId, ' ', *vsyncPeriod, "ns").c_str()
: ftl::Concat(__func__, ' ', hwcDisplayId).c_str());
@@ -3809,12 +3793,9 @@ std::optional<DisplayModeId> SurfaceFlinger::processHotplugConnect(PhysicalDispl
.hwcDisplayId = hwcDisplayId,
.port = info.port,
.activeMode = std::move(activeMode)};
- if (mIsHdcpViaNegVsync) {
- state.isSecure = connectionType == ui::DisplayConnectionType::Internal;
- } else {
- // TODO(b/349703362): Remove this when HDCP aidl API becomes ready
- state.isSecure = true; // All physical displays are currently considered secure.
- }
+
+ // TODO: b/349703362 - Remove this when HDCP aidl APIs are enforced
+ state.isSecure = true; // All physical displays are currently considered secure.
state.isProtected = true;
state.displayName = std::move(info.name);
state.maxLayerPictureProfiles = getHwComposer().getMaxLayerPictureProfiles(displayId);
diff --git a/services/surfaceflinger/SurfaceFlinger.h b/services/surfaceflinger/SurfaceFlinger.h
index fe8998403e..f0298079a0 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -1339,8 +1339,6 @@ private:
HWComposer::HotplugEvent event;
};
- bool mIsHdcpViaNegVsync = false;
-
std::mutex mHotplugMutex;
std::vector<HotplugEvent> mPendingHotplugEvents GUARDED_BY(mHotplugMutex);