570.123.11

This commit is contained in:
russellcnv
2025-05-02 17:17:56 -07:00
parent 392cd006d3
commit 5c2ab3bc8a
57 changed files with 52492 additions and 49867 deletions

View File

@@ -135,7 +135,7 @@ namespace DisplayPort
bool multistream;
bool videoSink, audioSink;
bool plugged;
bool bApplyPclkWarBug4949066;
AuxRetry friendlyAux;
bool payloadAllocated; // did the allocate payload go through?

View File

@@ -90,6 +90,7 @@ namespace DisplayPort
{
DP2X_RESET_LINK_REASON reason;
bool bForce;
bool bSkipLt;
} DP2XResetParam;
class EvoMainLink2x : public EvoMainLink
@@ -106,6 +107,7 @@ namespace DisplayPort
bool bSupportUHBR2_50; // Support UHBR2.5 for internal testing.
bool bSupportUHBR2_70; // Support UHBR2.7 for internal testing.
bool bSupportUHBR5_00; // Support UHBR5.0 for internal testing.
bool bEnable5147205Fix; // Enable 5147205 fix.
bool bConnectorIsUSBTypeC;

View File

@@ -97,6 +97,7 @@
#define NV_DP_REGKEY_SKIP_ZERO_OUI_CACHE "DP_SKIP_ZERO_OUI_CACHE"
#define NV_DP_REGKEY_DISABLE_FIX_FOR_5019537 "DP_DISABLE_5019537_FIX"
#define NV_DP_REGKEY_ENABLE_FIX_FOR_5147205 "DP_ENABLE_5147205_FIX"
// Bug 5088957 : Force head shutdown in DpLib
#define NV_DP_REGKEY_FORCE_HEAD_SHUTDOWN "DP_WAR_5088957"
@@ -143,6 +144,7 @@ struct DP_REGKEY_DATABASE
bool bDownspreadDisabled;
bool bSkipZeroOuiCache;
bool bDisable5019537Fix;
bool bEnable5147205Fix;
bool bForceHeadShutdown;
bool bEnableLowerBppCheckForDsc;
};

View File

@@ -518,6 +518,7 @@ create:
newDev->dpcdRevisionMinor = device.dpcdRevisionMinor;
newDev->complianceDeviceEdidReadTest = isCompliance;
newDev->maxTmdsClkRate = maxTmdsClkRate;
newDev->bApplyPclkWarBug4949066 = false;
Address::NvU32Buffer addrBuffer;
dpMemZero(addrBuffer, sizeof(addrBuffer));
@@ -525,6 +526,11 @@ create:
NV_DPTRACE_INFO(NEW_SINK_DETECTED, newDev->address.size(), addrBuffer[0], addrBuffer[1], addrBuffer[2], addrBuffer[3],
newDev->multistream, newDev->rawEDID.getManufId(), newDev->rawEDID.getProductId());
if(newDev->rawEDID.getManufId() == 0x6D1E)
{
newDev->bApplyPclkWarBug4949066 = true;
}
// Apply any DPCD overrides if required
newDev->dpcdOverrides();

View File

@@ -742,7 +742,20 @@ bool ConnectorImpl2x::notifyAttachBegin(Group *target, const DpModesetParams &mo
// Move the group to intransistion since we are at the end of notifyAttachBegin
intransitionGroups.insertFront(targetImpl);
if (dev && dev->bApplyPclkWarBug4949066 == true)
{
EvoInterface *provider = ((EvoMainLink *)main)->getProvider();
NV0073_CTRL_CMD_DP_SET_PROP_FORCE_PCLK_FACTOR_PARAMS params = {0};
params.subDeviceInstance = provider->getSubdeviceIndex();
params.head = modesetParams.headIndex;
params.bEnable = NV_TRUE;
NvU32 ret = provider->rmControl0073(NV0073_CTRL_CMD_DP_SET_PROP_FORCE_PCLK_FACTOR, &params, sizeof(params));
if (ret != NVOS_STATUS_SUCCESS)
{
DP_PRINTF(DP_ERROR, "Failed to enable the WAR for bug4949066!");
}
}
bFromResumeToNAB = false;
return bLinkTrainingStatus;
}
@@ -1155,6 +1168,24 @@ void ConnectorImpl2x::notifyDetachBegin(Group *target)
if (!target)
target = firmwareGroup;
Device *newDev = target->enumDevices(0);
DeviceImpl *dev = (DeviceImpl *)newDev;
GroupImpl *group = (GroupImpl*)target;
if (dev != NULL && dev->bApplyPclkWarBug4949066 == true)
{
EvoInterface *provider = ((EvoMainLink *)main)->getProvider();
NV0073_CTRL_CMD_DP_SET_PROP_FORCE_PCLK_FACTOR_PARAMS params = {0};
params.subDeviceInstance = provider->getSubdeviceIndex();
params.head = group->headIndex;
params.bEnable = NV_FALSE;
NvU32 ret = provider->rmControl0073(NV0073_CTRL_CMD_DP_SET_PROP_FORCE_PCLK_FACTOR, &params, sizeof(params));
if (ret != NVOS_STATUS_SUCCESS)
{
DP_PRINTF(DP_ERROR, "Failed to Disable the WAR for bug4949066!");
}
}
return ConnectorImpl::notifyDetachBegin(target);
}

View File

@@ -104,6 +104,7 @@ const struct
{NV_DP_REGKEY_DISABLE_DOWNSPREAD, &dpRegkeyDatabase.bDownspreadDisabled, DP_REG_VAL_BOOL},
{NV_DP_REGKEY_SKIP_ZERO_OUI_CACHE, &dpRegkeyDatabase.bSkipZeroOuiCache, DP_REG_VAL_BOOL},
{NV_DP_REGKEY_DISABLE_FIX_FOR_5019537, &dpRegkeyDatabase.bDisable5019537Fix, 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_ENABLE_LOWER_BPP_CHECK_FOR_DSC, &dpRegkeyDatabase.bEnableLowerBppCheckForDsc, DP_REG_VAL_BOOL}
};

View File

@@ -109,6 +109,7 @@ void EvoMainLink2x::applyDP2xRegkeyOverrides()
this->bSupportUHBR2_50 = dpRegkeyDatabase.supportInternalUhbrOnFpga & NV_DP2X_REGKEY_FPGA_UHBR_SUPPORT_2_5G;
this->bSupportUHBR2_70 = dpRegkeyDatabase.supportInternalUhbrOnFpga & NV_DP2X_REGKEY_FPGA_UHBR_SUPPORT_2_7G;
this->bSupportUHBR5_00 = dpRegkeyDatabase.supportInternalUhbrOnFpga & NV_DP2X_REGKEY_FPGA_UHBR_SUPPORT_5_0G;
this->bEnable5147205Fix = dpRegkeyDatabase.bEnable5147205Fix;
}
NvU32 EvoMainLink2x::headToStream(NvU32 head, bool bSidebandMessageSupported,
@@ -452,6 +453,7 @@ bool EvoMainLink2x::train(const LinkConfiguration & link, bool force,
DP2XResetParam resetParam;
dpMemZero(&resetParam, sizeof(resetParam));
resetParam.bForce = force;
resetParam.bSkipLt = bSkipLt;
// Get the original skipFallback setting.
bSkipFallback = requestRmLC.policy.skipFallback();
@@ -1110,6 +1112,11 @@ bool EvoMainLink2x::resetDPRXLink(DP2XResetParam resetParam)
ltRmParams.cmd |= DRF_DEF(0073_CTRL, _DP2X_CMD, _FAKE_LINK_TRAINING, _DONOT_TOGGLE_TRANSMISSION);
}
if (resetParam.bSkipLt && bEnable5147205Fix)
{
ltRmParams.cmd |= DRF_DEF(0073_CTRL, _DP2X_CMD, _SKIP_HW_PROGRAMMING, _YES);
}
switch (resetParam.reason)
{
case DP2X_ResetLinkForPreLT:

View File

@@ -43,18 +43,18 @@
#endif
#if defined(NV_LINUX) || defined(NV_BSD) || defined(NV_SUNOS)
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r570/VK571_25-350"
#define NV_BUILD_CHANGELIST_NUM (35858204)
#define NV_BUILD_BRANCH_VERSION "rel/gpu_drv/r570/VK571_25-351"
#define NV_BUILD_CHANGELIST_NUM (35924498)
#define NV_BUILD_TYPE "Official"
#define NV_BUILD_NAME "rel/gpu_drv/r570/VK571_25-350"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35858204)
#define NV_BUILD_NAME "rel/gpu_drv/r570/VK571_25-351"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35924498)
#else /* Windows builds */
#define NV_BUILD_BRANCH_VERSION "VK571_25-10"
#define NV_BUILD_CHANGELIST_NUM (35858204)
#define NV_BUILD_BRANCH_VERSION "VK571_25-11"
#define NV_BUILD_CHANGELIST_NUM (35924498)
#define NV_BUILD_TYPE "Official"
#define NV_BUILD_NAME "573.04"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35858204)
#define NV_BUILD_NAME "573.11"
#define NV_LAST_OFFICIAL_CHANGELIST_NUM (35924498)
#define NV_BUILD_BRANCH_BASE_VERSION R570
#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 "570.123.10"
#define NV_VERSION_STRING "570.123.11"
#else

View File

@@ -3377,6 +3377,44 @@ typedef struct NV0073_CTRL_DP2X_GET_LEVEL_INFO_TABLE_DATA_PARAMS {
#define NV0073_CTRL_CMD_DP2X_GET_LEVEL_INFO_TABLE_DATA (0x73138aU) /* finn: Evaluated from "(FINN_NV04_DISPLAY_COMMON_DP_INTERFACE_ID << 8) | NV0073_CTRL_DP2X_GET_LEVEL_INFO_TABLE_DATA_PARAMS_MESSAGE_ID" */
/*
* NV0073_CTRL_CMD_DP_SET_PROP_FORCE_PCLK_FACTOR
*
* This command is used to apply the WAR based on EDID.
* subDeviceInstance
* This parameter specifies the subdevice instance within the
* NV04_DISPLAY_COMMON parent device to which the operation should be
* directed. This parameter must specify a value between zero and the
* total number of subdevices within the parent device. This parameter
* should be set to zero for default behavior.
* displayId
* This parameter specifies the ID of the digital display for which the
* data should be returned. The display ID must a digital display.
* If more than one displayId bit is set or the displayId is not a DP,
* this call will return NV_ERR_INVALID_ARGUMENT.
* bEnable
* This parameter will be used by RM to set the PDB property. Later that PDB
* property will be used for applying the WAR
* head
* This parameter specify for which head RM need to apply the WAR
*
* Possible status values returned are:
* NV_OK
* NV_ERR_INVALID_PARAM_STRUCT
* NV_ERR_INVALID_ARGUMENT
*
*/
#define NV0073_CTRL_CMD_DP_SET_PROP_FORCE_PCLK_FACTOR_PARAMS_MESSAGE_ID (0x8BU)
typedef struct NV0073_CTRL_CMD_DP_SET_PROP_FORCE_PCLK_FACTOR_PARAMS {
NvU32 subDeviceInstance;
NvU32 displayId;
NvU32 bEnable;
NvU32 head;
} NV0073_CTRL_CMD_DP_SET_PROP_FORCE_PCLK_FACTOR_PARAMS;
#define NV0073_CTRL_CMD_DP_SET_PROP_FORCE_PCLK_FACTOR (0x73138bU) /* finn: Evaluated from "(FINN_NV04_DISPLAY_COMMON_DP_INTERFACE_ID << 8) | NV0073_CTRL_CMD_DP_SET_PROP_FORCE_PCLK_FACTOR_PARAMS_MESSAGE_ID" */
/*
@@ -3444,7 +3482,7 @@ typedef struct NV0073_CTRL_DP2X_GET_LEVEL_INFO_TABLE_DATA_PARAMS {
* NV_ERR_NOT_SUPPORTED
*/
#define NV0073_CTRL_CMD_CALCULATE_DP_IMP (0x73138bU) /* finn: Evaluated from "(FINN_NV04_DISPLAY_COMMON_DP_INTERFACE_ID << 8) | NV0073_CTRL_CMD_CALCULATE_DP_IMP_PARAMS_MESSAGE_ID" */
#define NV0073_CTRL_CMD_CALCULATE_DP_IMP (0x73138cU) /* finn: Evaluated from "(FINN_NV04_DISPLAY_COMMON_DP_INTERFACE_ID << 8) | NV0073_CTRL_CMD_CALCULATE_DP_IMP_PARAMS_MESSAGE_ID" */
typedef struct NV0073_CTRL_DP_IMP_LINK_CONFIGURATION {
NvU32 linkRate10M;
@@ -3489,7 +3527,7 @@ typedef struct NV0073_CTRL_DP_IMP_WATERMARK {
NvBool bIsModePossible;
} NV0073_CTRL_DP_IMP_WATERMARK;
#define NV0073_CTRL_CMD_CALCULATE_DP_IMP_PARAMS_MESSAGE_ID (0x8BU)
#define NV0073_CTRL_CMD_CALCULATE_DP_IMP_PARAMS_MESSAGE_ID (0x8CU)
typedef struct NV0073_CTRL_CMD_CALCULATE_DP_IMP_PARAMS {
NvU32 subDeviceInstance;

View File

@@ -2574,11 +2574,17 @@ typedef struct NV2080_CTRL_NVLINK_PRM_ACCESS_PPLM_PARAMS {
NvBool bWrite;
NV2080_CTRL_NVLINK_PRM_DATA prm;
NvBool test_mode;
NvBool plr_vld;
NvU8 plane_ind;
NvU8 port_type;
NvU8 lp_msb;
NvU8 pnat;
NvU8 local_port;
NvBool plr_reject_mode_vld;
NvBool plr_margin_th_override_to_default;
NvU8 plr_reject_mode;
NvU8 tx_crc_plr;
NvU8 plr_margin_th;
NvU8 fec_override_admin_10g_40g;
NvU8 fec_override_admin_25g;
NvU8 fec_override_admin_50g;

View File

@@ -132,6 +132,7 @@ struct LIBOS_LOG_DECODE_LOG
NvU32 gpuInstance; // GPU that this log is associated with.
char taskPrefix[TASK_NAME_MAX_LENGTH]; // Prefix string printed before each line.
char elfSectionName[ELF_SECTION_NAME_MAX]; // Task section name in container logging ELF serving as ID.
NvU64 localToGlobalTimerDelta;
#if LIBOS_LOG_TO_NVLOG
NvU32 hNvLogNoWrap; // No wrap buffer captures first records.

View File

@@ -569,7 +569,7 @@ static int libos_printf_a(
// Prefix every line with T:nnnn GPUn Ucode-task: filename(lineNumber):
len = snprintf(
logDecode->curLineBufPtr, remain,
"T:%llu ", pRec->timeStamp);
"T:%llu ", pRec->timeStamp + pRec->log->localToGlobalTimerDelta);
if (len < 0)
{
return -1;
@@ -590,7 +590,7 @@ static int libos_printf_a(
{
struct tm tmStruct;
// Libos timestamp is a PTIMER value, which is UNIX time in ns
time_t timeSec = pRec->timeStamp / 1000000000;
time_t timeSec = (pRec->timeStamp + pRec->log->localToGlobalTimerDelta) / 1000000000;
#if NVOS_IS_WINDOWS
// "The implementation of localtime_s in Microsoft CRT is incompatible with the
// C standard since it has reversed parameter order and returns errno_t."