summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Huihong Luo <huisinro@google.com> 2025-03-11 07:29:52 -0700
committer Huihong Luo <huisinro@google.com> 2025-03-21 12:05:56 -0700
commit73416e163b7611c2880add437d139129bd0cf79d (patch)
treeb0749e5b1609aabd07bcf49eccfae3c76cfc9c35
parent9473d9d2df3f5244af0cac247d8f715ec05a290c (diff)
Remove HDCP vsync hack
New HDCP hal api will be used. Bug: 402406598 Flag: EXEMPT bugfix Test: manual Change-Id: I361c032d2b373a122e24194883c9fee9c6a262b2
-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 2fb3500798..e89ef1874d 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 1a09269545..6af074a639 100644
--- a/services/surfaceflinger/SurfaceFlinger.h
+++ b/services/surfaceflinger/SurfaceFlinger.h
@@ -1345,8 +1345,6 @@ private:
HWComposer::HotplugEvent event;
};
- bool mIsHdcpViaNegVsync = false;
-
std::mutex mHotplugMutex;
std::vector<HotplugEvent> mPendingHotplugEvents GUARDED_BY(mHotplugMutex);