mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-02-09 09:39:57 +00:00
530.41.03
This commit is contained in:
@@ -215,6 +215,10 @@ namespace DisplayPort
|
||||
|
||||
virtual NvBool isDSCSupported() = 0;
|
||||
|
||||
virtual NvBool isDSCDecompressionSupported() = 0;
|
||||
|
||||
virtual NvBool isDSCPassThroughSupported() = 0;
|
||||
|
||||
virtual DscCaps getDscCaps() = 0;
|
||||
|
||||
//
|
||||
|
||||
@@ -449,6 +449,7 @@ namespace DisplayPort
|
||||
bool getFECSupport();
|
||||
NvBool isDSCPassThroughSupported();
|
||||
NvBool isDSCSupported();
|
||||
NvBool isDSCDecompressionSupported();
|
||||
NvBool isDSCPossible();
|
||||
bool isFECSupported();
|
||||
bool readAndParseDSCCaps();
|
||||
|
||||
@@ -5546,7 +5546,8 @@ void ConnectorImpl::notifyLongPulse(bool statusConnected)
|
||||
|
||||
if (existingDev && existingDev->isFakedMuxDevice() && !bIsMuxOnDgpu)
|
||||
{
|
||||
DP_LOG((" NotifyLongPulse ignored as mux is not pointing to dGPU and there is a faked device"));
|
||||
DP_LOG((" NotifyLongPulse ignored as mux is not pointing to dGPU and there is a faked device. Marking detect complete"));
|
||||
sink->notifyDetectComplete();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -6520,6 +6521,7 @@ void ConnectorImpl::createFakeMuxDevice(const NvU8 *buffer, NvU32 bufferSize)
|
||||
|
||||
// Initialize DSC state
|
||||
newDev->dscCaps.bDSCSupported = true;
|
||||
newDev->dscCaps.bDSCDecompressionSupported = true;
|
||||
newDev->parseDscCaps(buffer, bufferSize);
|
||||
dpMemCopy(newDev->rawDscCaps, buffer, DP_MIN(bufferSize, 16));
|
||||
newDev->bDSCPossible = true;
|
||||
|
||||
@@ -1560,7 +1560,11 @@ NvBool DeviceImpl::getDSCSupport()
|
||||
{
|
||||
if (FLD_TEST_DRF(_DPCD14, _DSC_SUPPORT, _DSC_SUPPORT, _YES, byte))
|
||||
{
|
||||
dscCaps.bDSCSupported = true;
|
||||
dscCaps.bDSCDecompressionSupported = true;
|
||||
}
|
||||
if (FLD_TEST_DRF(_DPCD20, _DSC_SUPPORT, _PASS_THROUGH_SUPPORT, _YES, byte))
|
||||
{
|
||||
dscCaps.bDSCPassThroughSupported = true;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1569,6 +1573,11 @@ NvBool DeviceImpl::getDSCSupport()
|
||||
DP_LOG(("DP-DEV> DSC Support AUX READ failed for %s!", address.toString(sb)));
|
||||
}
|
||||
|
||||
if (dscCaps.bDSCDecompressionSupported || dscCaps.bDSCPassThroughSupported)
|
||||
{
|
||||
dscCaps.bDSCSupported = true;
|
||||
}
|
||||
|
||||
return dscCaps.bDSCSupported;
|
||||
}
|
||||
|
||||
@@ -1687,6 +1696,11 @@ NvBool DeviceImpl::isDSCSupported()
|
||||
return dscCaps.bDSCSupported;
|
||||
}
|
||||
|
||||
NvBool DeviceImpl::isDSCDecompressionSupported()
|
||||
{
|
||||
return dscCaps.bDSCDecompressionSupported;
|
||||
}
|
||||
|
||||
NvBool DeviceImpl::isDSCPassThroughSupported()
|
||||
{
|
||||
return dscCaps.bDSCPassThroughSupported;
|
||||
@@ -2027,7 +2041,7 @@ void DeviceImpl::setDscDecompressionDevice(bool bDscCapBasedOnParent)
|
||||
this->devDoingDscDecompression = this;
|
||||
this->bDSCPossible = true;
|
||||
}
|
||||
else if (this->parent->isDSCSupported())
|
||||
else if (this->parent->isDSCDecompressionSupported())
|
||||
{
|
||||
//
|
||||
// This condition takes care of DSC capable sink devices
|
||||
@@ -2040,12 +2054,15 @@ void DeviceImpl::setDscDecompressionDevice(bool bDscCapBasedOnParent)
|
||||
}
|
||||
else
|
||||
{
|
||||
// This condition takes care of branch device capable of DSC.
|
||||
this->devDoingDscDecompression = this;
|
||||
this->bDSCPossible = true;
|
||||
if (this->isDSCDecompressionSupported())
|
||||
{
|
||||
// This condition takes care of branch device capable of DSC decoding.
|
||||
this->devDoingDscDecompression = this;
|
||||
this->bDSCPossible = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
else if (this->parent && this->parent->isDSCSupported())
|
||||
else if (this->parent && this->parent->isDSCDecompressionSupported())
|
||||
{
|
||||
//
|
||||
// This condition takes care of sink devices not capable of DSC
|
||||
@@ -2058,7 +2075,7 @@ void DeviceImpl::setDscDecompressionDevice(bool bDscCapBasedOnParent)
|
||||
}
|
||||
else
|
||||
{
|
||||
if (this->isDSCSupported())
|
||||
if (this->isDSCDecompressionSupported())
|
||||
{
|
||||
this->bDSCPossible = true;
|
||||
this->devDoingDscDecompression = this;
|
||||
|
||||
Reference in New Issue
Block a user