From ac7968c7f9977185a09df90dae4a34999f414419 Mon Sep 17 00:00:00 2001 From: zaclanzon Date: Thu, 10 Sep 2026 02:34:00 -0400 Subject: [PATCH] displayport: restore DSC when active SST displays return Reapply DSC when a capable DisplayPort sink rejoins an attached SST group using single or dual DSC, restoring decompression and tracking. --- src/common/displayport/src/dp_groupimpl.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/common/displayport/src/dp_groupimpl.cpp b/src/common/displayport/src/dp_groupimpl.cpp index 5ef32e14c..974e28e60 100644 --- a/src/common/displayport/src/dp_groupimpl.cpp +++ b/src/common/displayport/src/dp_groupimpl.cpp @@ -153,6 +153,19 @@ void GroupImpl::insert(Device * dev) return; } di->activeGroup = this; + + // A returning SST sink may have lost DSC state while the head stayed + // attached. Restore sink decompression and the driver's DSC tracking. + if (!parent->linkUseMultistream() && + di->getConnectorType() == connectorDisplayPort && + di->isDSCPossible() && + (dscModeActive == DSC_SINGLE || dscModeActive == DSC_DUAL)) + { + if (!parent->setDeviceDscState(dev, true)) + { + DP_PRINTF(DP_WARNING, "DP-GRP: failed to restore DSC state for active SST head %u.", headIndex); + } + } } members.insertFront(di);