580.76.05

This commit is contained in:
Maneet Singh
2025-08-12 12:13:43 -07:00
parent 307159f262
commit 288f16e614
64 changed files with 2037 additions and 863 deletions

View File

@@ -391,6 +391,9 @@ namespace DisplayPort
bool bForceDisableTunnelBwAllocation;
bool bDisableEffBppSST8b10b;
// Use regkey DP_DSC_DEVID_WAR to toggle this flag.
bool bEnableDevId;
Group *perHeadAttachedGroup[NV_MAX_HEADS];
NvU32 inTransitionHeadMask;

View File

@@ -100,6 +100,9 @@
// Bug 5088957 : Force head shutdown in DpLib
#define NV_DP_REGKEY_FORCE_HEAD_SHUTDOWN "DP_WAR_5088957"
// This regkey forces devID to be exposed to vendors via DPCD 0x309 for DSC-enabled SKUs.
#define NV_DP_REGKEY_EXPOSE_DSC_DEVID_WAR "DP_DSC_DEVID_WAR"
//
// Data Base used to store all the regkey values.
// The actual data base is declared statically in dp_evoadapter.cpp.
@@ -142,6 +145,7 @@ struct DP_REGKEY_DATABASE
bool bSkipZeroOuiCache;
bool bEnable5147205Fix;
bool bForceHeadShutdown;
bool bEnableDevId;
};
extern struct DP_REGKEY_DATABASE dpRegkeyDatabase;

View File

@@ -285,6 +285,16 @@ void DPCDHALImpl2x::parseAndReadCaps()
DPCDHALImpl::parseAndReadCaps();
// reset DP tunneling UHBR caps
caps2x.dpInTunnelingCaps.bUHBR_10GSupported = NV_FALSE;
caps2x.dpInTunnelingCaps.bUHBR_13_5GSupported = NV_FALSE;
caps2x.dpInTunnelingCaps.bUHBR_20GSupported = NV_FALSE;
// reset rxCableCaps
caps2x.rxCableCaps.bUHBR_10GSupported = NV_TRUE;
caps2x.rxCableCaps.bUHBR_13_5GSupported = NV_TRUE;
caps2x.rxCableCaps.bUHBR_20GSupported = NV_TRUE;
// 02206h
if (AuxRetry::ack == bus.read(NV_DPCD14_EXTENDED_MAIN_LINK_CHANNEL_CODING, &buffer[0], 1))
{

View File

@@ -51,6 +51,17 @@
#include "ctrl/ctrl0073/ctrl0073dp.h"
#include "dp_tracing.h"
/*
* This is needed by Synaptics to disable DisplayExpand feature
* in some of their docking station based on if GPU supports DSC.
* Feature is not needed if DSC is supported.
* Customers reported problems with the feature enabled on GB20x devices
* and requested GPU DSC detection to disable DisplayExpand feature.
* DSC is supported in Turing and later SKUs hence
* exposing Turing DevId to customers to address their requirement.
*/
#define TURING_DEV_ID 0x1E
using namespace DisplayPort;
ConnectorImpl::ConnectorImpl(MainLink * main, AuxBus * auxBus, Timer * timer, Connector::EventSink * sink)
@@ -184,6 +195,7 @@ void ConnectorImpl::applyRegkeyOverrides(const DP_REGKEY_DATABASE& dpRegkeyDatab
this->bForceDisableTunnelBwAllocation = dpRegkeyDatabase.bForceDisableTunnelBwAllocation;
this->bSkipZeroOuiCache = dpRegkeyDatabase.bSkipZeroOuiCache;
this->bForceHeadShutdownFromRegkey = dpRegkeyDatabase.bForceHeadShutdown;
this->bEnableDevId = dpRegkeyDatabase.bEnableDevId;
this->bDisableEffBppSST8b10b = dpRegkeyDatabase.bDisableEffBppSST8b10b;
}
@@ -3904,14 +3916,20 @@ bool ConnectorImpl::getIgnoreSourceOuiHandshake()
bool ConnectorImpl::performIeeeOuiHandshake()
{
const char *ieeeOuiDevId = "NVIDIA";
NvU8 chipRevision = 0x0;
bool bGpuDscSupported = NV_FALSE;
main->getDscCaps(&bGpuDscSupported);
if ((this->bEnableDevId) && (bGpuDscSupported))
{
chipRevision = TURING_DEV_ID;
}
if (!hal->getOuiSupported() || getIgnoreSourceOuiHandshake())
return false;
if (hal->setOuiSource(DPCD_OUI_NVIDIA, ieeeOuiDevId, 6 /* string length of ieeeOuiDevId */, 0) == AuxRetry::ack)
if (hal->setOuiSource(DPCD_OUI_NVIDIA, ieeeOuiDevId, 6 /* string length of ieeeOuiDevId */, chipRevision) == AuxRetry::ack)
{
NvU8 chipRevision = 0;
// parse client OUI.
if (hal->getOuiSink(ouiId, &modelName[0], sizeof(modelName), chipRevision))
{

View File

@@ -106,7 +106,8 @@ const struct
{NV_DP_REGKEY_DISABLE_AVOID_HBR3_WAR, &dpRegkeyDatabase.bDisableAvoidHBR3War, DP_REG_VAL_BOOL},
{NV_DP_REGKEY_SKIP_ZERO_OUI_CACHE, &dpRegkeyDatabase.bSkipZeroOuiCache, DP_REG_VAL_BOOL},
{NV_DP_REGKEY_ENABLE_FIX_FOR_5147205, &dpRegkeyDatabase.bEnable5147205Fix, DP_REG_VAL_BOOL},
{NV_DP_REGKEY_FORCE_HEAD_SHUTDOWN, &dpRegkeyDatabase.bForceHeadShutdown, DP_REG_VAL_BOOL}
{NV_DP_REGKEY_FORCE_HEAD_SHUTDOWN, &dpRegkeyDatabase.bForceHeadShutdown, DP_REG_VAL_BOOL},
{NV_DP_REGKEY_EXPOSE_DSC_DEVID_WAR, &dpRegkeyDatabase.bEnableDevId, DP_REG_VAL_BOOL}
};
EvoMainLink::EvoMainLink(EvoInterface * provider, Timer * timer) :

View File

@@ -112,6 +112,20 @@ void ConnectorImpl2x::applyOuiWARs()
}
}
break;
case 0xAD6000:
if ((modelName[0] == 'M') &&
(modelName[1] == 'C') &&
(modelName[2] == '2') &&
(modelName[3] == '9') &&
(modelName[4] == '0'))
{
bForceHeadShutdownPerMonitor = true;
bApplyStuffDummySymbolsWAR = true;
bStuffDummySymbolsFor128b132b = false;
bStuffDummySymbolsFor8b10b = true;
}
break;
}
}

View File

@@ -36,25 +36,25 @@
// and then checked back in. You cannot make changes to these sections without
// corresponding changes to the buildmeister script
#ifndef NV_BUILD_BRANCH
#define NV_BUILD_BRANCH r580_78
#define NV_BUILD_BRANCH r580_92
#endif
#ifndef NV_PUBLIC_BRANCH
#define NV_PUBLIC_BRANCH r580_78
#define NV_PUBLIC_BRANCH r580_92
#endif
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS)
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r580/r580_78-179"
#define NV_BUILD_CHANGELIST_NUM (36308443)
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r580/r580_92-206"
#define NV_BUILD_CHANGELIST_NUM (36361462)
#define NV_BUILD_TYPE "Official"
#define NV_BUILD_NAME "rel/gpu_drv/r580/r580_78-179"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (36308443)
#define NV_BUILD_NAME "rel/gpu_drv/r580/r580_92-206"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (36361462)
#else /* Windows builds */
#define NV_BUILD_BRANCH_VERSION "r580_78-7"
#define NV_BUILD_CHANGELIST_NUM (36308443)
#define NV_BUILD_BRANCH_VERSION "r580_92-5"
#define NV_BUILD_CHANGELIST_NUM (36361462)
#define NV_BUILD_TYPE "Official"
#define NV_BUILD_NAME "580.88"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (36308443)
#define NV_BUILD_NAME "580.97"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (36361462)
#define NV_BUILD_BRANCH_BASE_VERSION R580
#endif
// End buildmeister python edited section

View File

@@ -4,7 +4,7 @@
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS) || defined(NV_VMWARE) || defined(NV_QNX) || defined(NV_INTEGRITY) || \
(defined(RMCFG_FEATURE_PLATFORM_GSP) && RMCFG_FEATURE_PLATFORM_GSP == 1)
#define NV_VERSION_STRING "580.65.06"
#define NV_VERSION_STRING "580.76.05"
#else

View File

@@ -977,7 +977,8 @@ nvswitch_tnvl_get_attestation_report_ls10
"%s: Response measurement size (%d) is greater than the attestation max size (%d)\n",
__FUNCTION__,
pRspPayload->measurementSize, NVSWITCH_ATTESTATION_REPORT_MAX_SIZE);
return -NVL_ERR_INVALID_STATE;
status = -NVL_ERR_INVALID_STATE;
goto ErrorExit;
}
nvswitch_os_memcpy(params->attestationReport,

View File

@@ -4196,6 +4196,8 @@ typedef struct NV2080_CTRL_GPU_GET_COMPUTE_PROFILES_PARAMS {
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INCORRECT_CHASSIS_SN 3
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_NO_PARTITION 4
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INSUFFICIENT_NVLINKS 5
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INCOMPATIBLE_GPU_FW 6
#define NV2080_CTRL_GPU_FABRIC_HEALTH_MASK_INCORRECT_CONFIGURATION_INVALID_LOCATION 7
#define NV2080_CTRL_GPU_FABRIC_HEALTH_SUMMARY_NOT_SUPPORTED 0
#define NV2080_CTRL_GPU_FABRIC_HEALTH_SUMMARY_HEALTHY 1
@@ -4731,4 +4733,25 @@ typedef struct NV2080_CTRL_RUSD_GET_SUPPORTED_FEATURES_PARAMS {
NvU32 supportedFeatures;
} NV2080_CTRL_RUSD_GET_SUPPORTED_FEATURES_PARAMS;
/*
* NV2080_CTRL_CMD_GPU_FORCE_GSP_UNLOAD
*
* This command is used to trigger GSP Unload
*
* flags[IN]
* Flags passed by caller - For future use.
*
* Possible status values returned are:
* NV_OK
* NV_ERR_INSUFFICIENT_PERMISSIONS
* NV_ERR_NOT_SUPPORTED
*/
#define NV2080_CTRL_CMD_GPU_FORCE_GSP_UNLOAD (0x208001ebU) /* finn: Evaluated from "(FINN_NV20_SUBDEVICE_0_GPU_INTERFACE_ID << 8) | NV2080_CTRL_GPU_FORCE_GSP_UNLOAD_PARAMS_MESSAGE_ID" */
#define NV2080_CTRL_GPU_FORCE_GSP_UNLOAD_PARAMS_MESSAGE_ID (0xebU)
typedef struct NV2080_CTRL_GPU_FORCE_GSP_UNLOAD_PARAMS {
NvU32 flags;
} NV2080_CTRL_GPU_FORCE_GSP_UNLOAD_PARAMS;
/* _ctrl2080gpu_h_ */