diff options
author | 2025-03-21 21:15:29 -0700 | |
---|---|---|
committer | 2025-03-21 21:15:29 -0700 | |
commit | 1eb810d343dd0da0ef039157449db13c5d524619 (patch) | |
tree | 6e24db63557321bc0ff224fb428701468a6a08b7 | |
parent | 520d8fcb8aa54289f2272369d3040635c2fbd4bd (diff) | |
parent | 73416e163b7611c2880add437d139129bd0cf79d (diff) |
Merge "Remove HDCP vsync hack" into main
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.cpp | 25 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlinger.h | 2 |
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); |