drm/amd/pm: revise the ASPM settings for thunderbolt attached scenario
commit fd21987274463a439c074b8f3c93d3b132e4c031 upstream. Also, correct the comment for NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT as 0x0000000E stands for 400ms instead of 4ms. Signed-off-by: Evan Quan <evan.quan@amd.com> Reviewed-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
4596c81291
commit
c8c703befd
@ -346,7 +346,7 @@ static void nbio_v2_3_init_registers(struct amdgpu_device *adev)
|
|||||||
|
|
||||||
#define NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT 0x00000000 // off by default, no gains over L1
|
#define NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT 0x00000000 // off by default, no gains over L1
|
||||||
#define NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT 0x00000009 // 1=1us, 9=1ms
|
#define NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT 0x00000009 // 1=1us, 9=1ms
|
||||||
#define NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT 0x0000000E // 4ms
|
#define NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT 0x0000000E // 400ms
|
||||||
|
|
||||||
static void nbio_v2_3_enable_aspm(struct amdgpu_device *adev,
|
static void nbio_v2_3_enable_aspm(struct amdgpu_device *adev,
|
||||||
bool enable)
|
bool enable)
|
||||||
@ -479,9 +479,12 @@ static void nbio_v2_3_program_aspm(struct amdgpu_device *adev)
|
|||||||
WREG32_SOC15(NBIO, 0, mmRCC_BIF_STRAP5, data);
|
WREG32_SOC15(NBIO, 0, mmRCC_BIF_STRAP5, data);
|
||||||
|
|
||||||
def = data = RREG32_PCIE(smnPCIE_LC_CNTL);
|
def = data = RREG32_PCIE(smnPCIE_LC_CNTL);
|
||||||
data &= ~PCIE_LC_CNTL__LC_L0S_INACTIVITY_MASK;
|
data |= NAVI10_PCIE__LC_L0S_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L0S_INACTIVITY__SHIFT;
|
||||||
data |= 0x9 << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;
|
if (pci_is_thunderbolt_attached(adev->pdev))
|
||||||
data |= 0x1 << PCIE_LC_CNTL__LC_PMI_TO_L1_DIS__SHIFT;
|
data |= NAVI10_PCIE__LC_L1_INACTIVITY_TBT_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;
|
||||||
|
else
|
||||||
|
data |= NAVI10_PCIE__LC_L1_INACTIVITY_DEFAULT << PCIE_LC_CNTL__LC_L1_INACTIVITY__SHIFT;
|
||||||
|
data &= ~PCIE_LC_CNTL__LC_PMI_TO_L1_DIS_MASK;
|
||||||
if (def != data)
|
if (def != data)
|
||||||
WREG32_PCIE(smnPCIE_LC_CNTL, data);
|
WREG32_PCIE(smnPCIE_LC_CNTL, data);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user