Skip to content

Commit 1893c6c

Browse files
committed
575.64.03
1 parent fade1f7 commit 1893c6c

File tree

18 files changed

+101
-66
lines changed

18 files changed

+101
-66
lines changed

README.md

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# NVIDIA Linux Open GPU Kernel Module Source
22

33
This is the source release of the NVIDIA Linux open GPU kernel modules,
4-
version 575.64.
4+
version 575.64.03.
55

66

77
## How to Build
@@ -17,7 +17,7 @@ as root:
1717

1818
Note that the kernel modules built here must be used with GSP
1919
firmware and user-space NVIDIA GPU driver components from a corresponding
20-
575.64 driver release. This can be achieved by installing
20+
575.64.03 driver release. This can be achieved by installing
2121
the NVIDIA GPU driver from the .run file using the `--no-kernel-modules`
2222
option. E.g.,
2323

@@ -185,7 +185,7 @@ table below).
185185
For details on feature support and limitations, see the NVIDIA GPU driver
186186
end user README here:
187187

188-
https://us.download.nvidia.com/XFree86/Linux-x86_64/575.64/README/kernel_open.html
188+
https://us.download.nvidia.com/XFree86/Linux-x86_64/575.64.03/README/kernel_open.html
189189

190190
For vGPU support, please refer to the README.vgpu packaged in the vGPU Host
191191
Package for more details.
@@ -987,8 +987,11 @@ Subsystem Device ID.
987987
| NVIDIA RTX PRO 2000 Blackwell Generation Laptop GPU | 2D39 |
988988
| NVIDIA GeForce RTX 5070 Laptop GPU | 2D58 |
989989
| NVIDIA GeForce RTX 5060 Laptop GPU | 2D59 |
990+
| NVIDIA GeForce RTX 5050 | 2D83 |
991+
| NVIDIA GeForce RTX 5050 Laptop GPU | 2D98 |
990992
| NVIDIA RTX PRO 1000 Blackwell Generation Laptop GPU | 2DB8 |
991993
| NVIDIA RTX PRO 500 Blackwell Generation Laptop GPU | 2DB9 |
994+
| NVIDIA GeForce RTX 5050 Laptop GPU | 2DD8 |
992995
| NVIDIA GeForce RTX 5070 | 2F04 |
993996
| NVIDIA GeForce RTX 5070 Ti Laptop GPU | 2F18 |
994997
| NVIDIA RTX PRO 3000 Blackwell Generation Laptop GPU | 2F38 |

kernel-open/Kbuild

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ ccflags-y += -I$(src)/common/inc
7979
ccflags-y += -I$(src)
8080
ccflags-y += -Wall $(DEFINES) $(INCLUDES) -Wno-cast-qual -Wno-format-extra-args
8181
ccflags-y += -D__KERNEL__ -DMODULE -DNVRM
82-
ccflags-y += -DNV_VERSION_STRING=\"575.64\"
82+
ccflags-y += -DNV_VERSION_STRING=\"575.64.03\"
8383

8484
ifneq ($(SYSSRCHOST1X),)
8585
ccflags-y += -I$(SYSSRCHOST1X)

kernel-open/conftest.sh

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4006,33 +4006,6 @@ compile_test() {
40064006
fi
40074007
;;
40084008

4009-
dma_buf_has_dynamic_attachment)
4010-
#
4011-
# Determine if the function dma_buf_attachment_is_dynamic()
4012-
# is present.
4013-
#
4014-
# Added by commit: 15fd552d186c
4015-
# ("dma-buf: change DMA-buf locking convention v3") in v5.5 (2018-07-03)
4016-
#
4017-
echo "$CONFTEST_PREAMBLE
4018-
#include <linux/dma-buf.h>
4019-
bool conftest_dma_buf_attachment_is_dynamic(void) {
4020-
return dma_buf_attachment_is_dynamic(NULL);
4021-
}" > conftest$$.c
4022-
4023-
$CC $CFLAGS -c conftest$$.c > /dev/null 2>&1
4024-
rm -f conftest$$.c
4025-
4026-
if [ -f conftest$$.o ]; then
4027-
echo "#define NV_DMA_BUF_HAS_DYNAMIC_ATTACHMENT" | append_conftest "functions"
4028-
rm -f conftest$$.o
4029-
return
4030-
else
4031-
echo "#undef NV_DMA_BUF_HAS_DYNAMIC_ATTACHMENT" | append_conftest "functions"
4032-
return
4033-
fi
4034-
;;
4035-
40364009
dma_buf_attachment_has_peer2peer)
40374010
#
40384011
# Determine if peer2peer is present in struct dma_buf_attachment.

kernel-open/nvidia-uvm/uvm_ats_sva.c

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,12 +308,13 @@ void uvm_ats_smmu_invalidate_tlbs(uvm_gpu_va_space_t *gpu_va_space, NvU64 addr,
308308

309309
NV_STATUS uvm_ats_sva_add_gpu(uvm_parent_gpu_t *parent_gpu)
310310
{
311+
#if NV_IS_EXPORT_SYMBOL_GPL_iommu_dev_enable_feature
311312
int ret;
312313

313314
ret = iommu_dev_enable_feature(&parent_gpu->pci_dev->dev, IOMMU_DEV_FEAT_SVA);
314315
if (ret)
315316
return errno_to_nv_status(ret);
316-
317+
#endif
317318
if (UVM_ATS_SMMU_WAR_REQUIRED())
318319
return uvm_ats_smmu_war_init(parent_gpu);
319320
else
@@ -325,7 +326,9 @@ void uvm_ats_sva_remove_gpu(uvm_parent_gpu_t *parent_gpu)
325326
if (UVM_ATS_SMMU_WAR_REQUIRED())
326327
uvm_ats_smmu_war_deinit(parent_gpu);
327328

329+
#if NV_IS_EXPORT_SYMBOL_GPL_iommu_dev_disable_feature
328330
iommu_dev_disable_feature(&parent_gpu->pci_dev->dev, IOMMU_DEV_FEAT_SVA);
331+
#endif
329332
}
330333

331334
NV_STATUS uvm_ats_sva_bind_gpu(uvm_gpu_va_space_t *gpu_va_space)

kernel-open/nvidia/nv-dmabuf.c

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -837,11 +837,10 @@ nv_dma_buf_map(
837837
// PCIe mapping, importers must be able to handle peer MMIO resources
838838
// not backed by struct page.
839839
//
840-
#if defined(NV_DMA_BUF_HAS_DYNAMIC_ATTACHMENT) && \
841-
defined(NV_DMA_BUF_ATTACHMENT_HAS_PEER2PEER)
840+
#if defined(NV_DMA_BUF_ATTACHMENT_HAS_PEER2PEER)
842841
if (((!priv->nv->coherent) ||
843842
(priv->mapping_type == NV_DMABUF_EXPORT_MAPPING_TYPE_FORCE_PCIE)) &&
844-
dma_buf_attachment_is_dynamic(attachment) &&
843+
(attachment->importer_ops != NULL) &&
845844
!attachment->peer2peer)
846845
{
847846
nv_printf(NV_DBG_ERRORS,

kernel-open/nvidia/nvidia.Kbuild

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,6 @@ NV_CONFTEST_FUNCTION_COMPILE_TESTS += dma_buf_ops_has_kmap
186186
NV_CONFTEST_FUNCTION_COMPILE_TESTS += dma_buf_ops_has_kmap_atomic
187187
NV_CONFTEST_FUNCTION_COMPILE_TESTS += dma_buf_ops_has_map
188188
NV_CONFTEST_FUNCTION_COMPILE_TESTS += dma_buf_ops_has_map_atomic
189-
NV_CONFTEST_FUNCTION_COMPILE_TESTS += dma_buf_has_dynamic_attachment
190189
NV_CONFTEST_FUNCTION_COMPILE_TESTS += dma_buf_attachment_has_peer2peer
191190
NV_CONFTEST_FUNCTION_COMPILE_TESTS += dma_set_mask_and_coherent
192191
NV_CONFTEST_FUNCTION_COMPILE_TESTS += devm_clk_bulk_get_all
@@ -241,6 +240,8 @@ NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present___platform_driver_r
241240
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_hrtimer_setup
242241
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_present_timer_delete_sync
243242
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_gpl___vma_start_write
243+
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_gpl_iommu_dev_enable_feature
244+
NV_CONFTEST_SYMBOL_COMPILE_TESTS += is_export_symbol_gpl_iommu_dev_disable_feature
244245

245246
NV_CONFTEST_TYPE_COMPILE_TESTS += dma_ops
246247
NV_CONFTEST_TYPE_COMPILE_TESTS += swiotlb_dma_ops

src/common/displayport/inc/dp_connectorimpl.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -327,6 +327,9 @@ namespace DisplayPort
327327
//
328328
bool bForceHeadShutdownOnModeTransition;
329329

330+
// Set to true when we want to skip reset MST_EN before LT
331+
bool bSkipResetMSTMBeforeLt;
332+
330333
bool bReportDeviceLostBeforeNew;
331334
bool bDisableSSC;
332335
bool bEnableFastLT;

src/common/displayport/inc/dp_edid.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,7 @@ namespace DisplayPort
173173
bool bForceHeadShutdownOnModeTransition;
174174
bool bSkipCableIdCheck;
175175
bool bAllocateManualTimeslots;
176+
bool bSkipResetMSTMBeforeLt;
176177
}_WARFlags;
177178

178179
_WARFlags WARFlags;

src/common/displayport/src/dp_connectorimpl.cpp

Lines changed: 22 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2787,13 +2787,13 @@ bool ConnectorImpl::isHeadShutDownNeeded(Group * target, // Group
27872787
// In case of mode transition (DSC <-> non-DSC), if the link config is same as previous mode, we need to shut down the head
27882788
// since VBID[6] needs to be updated accordingly
27892789
//
2790-
if ((bForceHeadShutdownOnModeTransition &&
2790+
if ((bForceHeadShutdownOnModeTransition &&
27912791
((modesetInfo.bEnableDsc && targetImpl->lastModesetInfo.bEnableDsc) &&
27922792
(modesetInfo.bitsPerComponent != targetImpl->lastModesetInfo.bitsPerComponent))) ||
2793-
((lowestSelected.getTotalDataRate() == activeLinkConfig.getTotalDataRate()) &&
2794-
(modesetInfo.bEnableDsc != targetImpl->lastModesetInfo.bEnableDsc)))
2793+
((lowestSelected.getTotalDataRate() == activeLinkConfig.getTotalDataRate()) &&
2794+
(modesetInfo.bEnableDsc != targetImpl->lastModesetInfo.bEnableDsc)))
27952795
{
2796-
return true;
2796+
return true;
27972797
}
27982798

27992799
// For dual DP while changing link config, we need to shut
@@ -5358,9 +5358,9 @@ bool ConnectorImpl::getValidLowestLinkConfig
53585358
{
53595359
//
53605360
// If highest link rate is UHBR 128b132b and current selected config is 8b10b,
5361-
// FEC should not be enabled if DSC is not enabled since
5362-
// 1. This function will be called only for SST and that too when preferred
5363-
// link config is not set.
5361+
// FEC should not be enabled if DSC is not enabled since
5362+
// 1. This function will be called only for SST and that too when preferred
5363+
// link config is not set.
53645364
// 2. for SST and in 8b10b mode, FEC is enabled only when DSC is enabled
53655365
//
53665366
selectedConfig.enableFEC(false);
@@ -5655,8 +5655,9 @@ bool ConnectorImpl::validateLinkConfiguration(const LinkConfiguration & lConfig)
56555655
bool ConnectorImpl::train(const LinkConfiguration & lConfig, bool force,
56565656
LinkTrainingType trainType)
56575657
{
5658-
LinkTrainingType preferredTrainingType = trainType;
5659-
bool result = true;
5658+
LinkTrainingType preferredTrainingType = trainType;
5659+
bool result = true;
5660+
NvBool bSkipSettingStreamMode = false;
56605661

56615662
// Validate link config against caps
56625663
if (!force && !validateLinkConfiguration(lConfig))
@@ -5693,10 +5694,16 @@ bool ConnectorImpl::train(const LinkConfiguration & lConfig, bool force,
56935694
}
56945695

56955696
//
5696-
// Don't set the stream if we're shutting off the link
5697-
// or forcing the config
5697+
// Don't set the stream if we're:
5698+
// - forcing the config
5699+
// - Skipping LT and the flag to skip stream mode setting is true
5700+
// - shutting off the link
56985701
//
5699-
if (!force && lConfig.lanes != 0)
5702+
bSkipSettingStreamMode = force ||
5703+
(bSkipLt && this->bSkipResetMSTMBeforeLt) ||
5704+
(lConfig.lanes == 0);
5705+
5706+
if (!bSkipSettingStreamMode)
57005707
{
57015708
if (isLinkActive())
57025709
{
@@ -7009,6 +7016,8 @@ void ConnectorImpl::notifyLongPulseInternal(bool statusConnected)
70097016
{
70107017
bDelayAfterD3 = true;
70117018
}
7019+
// Do not reset MST_EN before LT for Sony SDM27Q10S in SST mode
7020+
this->bSkipResetMSTMBeforeLt = tmpEdid.WARFlags.bSkipResetMSTMBeforeLt;
70127021

70137022
// Panels use Legacy address range for interrupt reporting
70147023
if (tmpEdid.WARFlags.useLegacyAddress)
@@ -8294,6 +8303,7 @@ void ConnectorImpl::configInit()
82948303
bDP2XPreferNonDSCForLowPClk = false;
82958304
bDisableDscMaxBppLimit = false;
82968305
bForceHeadShutdownOnModeTransition = false;
8306+
bSkipResetMSTMBeforeLt = false;
82978307
}
82988308

82998309
bool ConnectorImpl::dpUpdateDscStream(Group *target, NvU32 dscBpp)

src/common/displayport/src/dp_wardatabase.cpp

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
/*
1+
/*
22
* SPDX-FileCopyrightText: Copyright (c) 1993-2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
33
* SPDX-License-Identifier: MIT
44
*
@@ -615,12 +615,13 @@ void Edid::applyEdidWorkArounds(NvU32 warFlag, const DpMonitorDenylistData *pDen
615615
this->WARFlags.bSkipCableIdCheck = true;
616616
DP_PRINTF(DP_NOTICE, "DP-WAR> Panel does not expose cable capability. Ignoring it. Bug 4968411");
617617
}
618-
else if(ProductID == 0x24b5 || ProductID == 0x32f2)
618+
else if(ProductID == 0x24b5 || ProductID == 0x32f2 || ProductID == 0x27BC)
619619
{
620620
//
621621
// Asus ROG PG248QP (0x24b5) Bug 5100062
622622
// Asus ROG PG32UCDM (0x32f2) Bug 5088957
623-
//
623+
// Asus ROG PG27AQN (0x27BC) Bug 5300665
624+
624625
this->WARFlags.bForceHeadShutdown = true;
625626
DP_PRINTF(DP_NOTICE, "DP-WAR> Force head shutdown.");
626627
}
@@ -650,6 +651,14 @@ void Edid::applyEdidWorkArounds(NvU32 warFlag, const DpMonitorDenylistData *pDen
650651
DP_PRINTF(DP_NOTICE, "DP-WAR> VRT monitor does not work with GB20x when downspread is enabled. Disabling downspread.");
651652
}
652653
break;
654+
655+
case 0xD94D: // Sony
656+
if (ProductID == 0x07EE) // Sony SDM27Q10S
657+
{
658+
this->WARFlags.bSkipResetMSTMBeforeLt = true;
659+
DP_PRINTF(DP_NOTICE, "DP-WAR> Sony SDM27Q10S needs to skip reset MST_EN before LT");
660+
}
661+
break;
653662
default:
654663
break;
655664
}

0 commit comments

Comments
 (0)