mirror of
https://github.com/NVIDIA/open-gpu-kernel-modules.git
synced 2026-01-30 13:09:47 +00:00
570.123.11
This commit is contained in:
@@ -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?
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
|
||||
|
||||
@@ -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, ¶ms, 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, ¶ms, sizeof(params));
|
||||
if (ret != NVOS_STATUS_SUCCESS)
|
||||
{
|
||||
DP_PRINTF(DP_ERROR, "Failed to Disable the WAR for bug4949066!");
|
||||
}
|
||||
}
|
||||
return ConnectorImpl::notifyDetachBegin(target);
|
||||
}
|
||||
|
||||
|
||||
@@ -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}
|
||||
};
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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."
|
||||
|
||||
Reference in New Issue
Block a user