Skip to content

Commit a2fbfd5

Browse files
committed
Merge tag 'amd-drm-fixes-5.16-2021-12-15' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
amd-drm-fixes-5.16-2021-12-15: amdgpu: - Fix RLC register offset - GMC fix - Properly cache SMU FW version on Yellow Carp - Fix missing callback on DCN3.1 - Reset DMCUB before HW init - Fix for GMC powergating on PCO - Fix a possible memory leak in GPU metrics table handling on RN Signed-off-by: Dave Airlie <[email protected]> From: Alex Deucher <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2 parents 78fed39 + aa46495 commit a2fbfd5

File tree

15 files changed

+32
-16
lines changed

15 files changed

+32
-16
lines changed

drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3070,8 +3070,8 @@ static void gfx_v9_0_init_pg(struct amdgpu_device *adev)
30703070
AMD_PG_SUPPORT_CP |
30713071
AMD_PG_SUPPORT_GDS |
30723072
AMD_PG_SUPPORT_RLC_SMU_HS)) {
3073-
WREG32(mmRLC_JUMP_TABLE_RESTORE,
3074-
adev->gfx.rlc.cp_table_gpu_addr >> 8);
3073+
WREG32_SOC15(GC, 0, mmRLC_JUMP_TABLE_RESTORE,
3074+
adev->gfx.rlc.cp_table_gpu_addr >> 8);
30753075
gfx_v9_0_init_gfx_power_gating(adev);
30763076
}
30773077
}

drivers/gpu/drm/amd/amdgpu/gfxhub_v1_0.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,6 @@ static void gfxhub_v1_0_init_tlb_regs(struct amdgpu_device *adev)
162162
ENABLE_ADVANCED_DRIVER_MODEL, 1);
163163
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL,
164164
SYSTEM_APERTURE_UNMAPPED_ACCESS, 0);
165-
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL, ECO_BITS, 0);
166165
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL,
167166
MTYPE, MTYPE_UC);/* XXX for emulation. */
168167
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL, ATC_EN, 1);

drivers/gpu/drm/amd/amdgpu/gfxhub_v2_0.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,6 @@ static void gfxhub_v2_0_init_tlb_regs(struct amdgpu_device *adev)
196196
ENABLE_ADVANCED_DRIVER_MODEL, 1);
197197
tmp = REG_SET_FIELD(tmp, GCMC_VM_MX_L1_TLB_CNTL,
198198
SYSTEM_APERTURE_UNMAPPED_ACCESS, 0);
199-
tmp = REG_SET_FIELD(tmp, GCMC_VM_MX_L1_TLB_CNTL, ECO_BITS, 0);
200199
tmp = REG_SET_FIELD(tmp, GCMC_VM_MX_L1_TLB_CNTL,
201200
MTYPE, MTYPE_UC); /* UC, uncached */
202201

drivers/gpu/drm/amd/amdgpu/gfxhub_v2_1.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -197,7 +197,6 @@ static void gfxhub_v2_1_init_tlb_regs(struct amdgpu_device *adev)
197197
ENABLE_ADVANCED_DRIVER_MODEL, 1);
198198
tmp = REG_SET_FIELD(tmp, GCMC_VM_MX_L1_TLB_CNTL,
199199
SYSTEM_APERTURE_UNMAPPED_ACCESS, 0);
200-
tmp = REG_SET_FIELD(tmp, GCMC_VM_MX_L1_TLB_CNTL, ECO_BITS, 0);
201200
tmp = REG_SET_FIELD(tmp, GCMC_VM_MX_L1_TLB_CNTL,
202201
MTYPE, MTYPE_UC); /* UC, uncached */
203202

drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1808,6 +1808,14 @@ static int gmc_v9_0_hw_fini(void *handle)
18081808
return 0;
18091809
}
18101810

1811+
/*
1812+
* Pair the operations did in gmc_v9_0_hw_init and thus maintain
1813+
* a correct cached state for GMC. Otherwise, the "gate" again
1814+
* operation on S3 resuming will fail due to wrong cached state.
1815+
*/
1816+
if (adev->mmhub.funcs->update_power_gating)
1817+
adev->mmhub.funcs->update_power_gating(adev, false);
1818+
18111819
amdgpu_irq_put(adev, &adev->gmc.ecc_irq, 0);
18121820
amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
18131821

drivers/gpu/drm/amd/amdgpu/mmhub_v1_0.c

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,6 @@ static void mmhub_v1_0_init_tlb_regs(struct amdgpu_device *adev)
145145
ENABLE_ADVANCED_DRIVER_MODEL, 1);
146146
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL,
147147
SYSTEM_APERTURE_UNMAPPED_ACCESS, 0);
148-
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL, ECO_BITS, 0);
149148
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL,
150149
MTYPE, MTYPE_UC);/* XXX for emulation. */
151150
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL, ATC_EN, 1);
@@ -302,10 +301,10 @@ static void mmhub_v1_0_update_power_gating(struct amdgpu_device *adev,
302301
if (amdgpu_sriov_vf(adev))
303302
return;
304303

305-
if (enable && adev->pg_flags & AMD_PG_SUPPORT_MMHUB) {
306-
amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_GMC, true);
307-
308-
}
304+
if (adev->pg_flags & AMD_PG_SUPPORT_MMHUB)
305+
amdgpu_dpm_set_powergating_by_smu(adev,
306+
AMD_IP_BLOCK_TYPE_GMC,
307+
enable);
309308
}
310309

311310
static int mmhub_v1_0_gart_enable(struct amdgpu_device *adev)

drivers/gpu/drm/amd/amdgpu/mmhub_v1_7.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,6 @@ static void mmhub_v1_7_init_tlb_regs(struct amdgpu_device *adev)
165165
ENABLE_ADVANCED_DRIVER_MODEL, 1);
166166
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL,
167167
SYSTEM_APERTURE_UNMAPPED_ACCESS, 0);
168-
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL, ECO_BITS, 0);
169168
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL,
170169
MTYPE, MTYPE_UC);/* XXX for emulation. */
171170
tmp = REG_SET_FIELD(tmp, MC_VM_MX_L1_TLB_CNTL, ATC_EN, 1);

drivers/gpu/drm/amd/amdgpu/mmhub_v2_0.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -267,7 +267,6 @@ static void mmhub_v2_0_init_tlb_regs(struct amdgpu_device *adev)
267267
ENABLE_ADVANCED_DRIVER_MODEL, 1);
268268
tmp = REG_SET_FIELD(tmp, MMMC_VM_MX_L1_TLB_CNTL,
269269
SYSTEM_APERTURE_UNMAPPED_ACCESS, 0);
270-
tmp = REG_SET_FIELD(tmp, MMMC_VM_MX_L1_TLB_CNTL, ECO_BITS, 0);
271270
tmp = REG_SET_FIELD(tmp, MMMC_VM_MX_L1_TLB_CNTL,
272271
MTYPE, MTYPE_UC); /* UC, uncached */
273272

drivers/gpu/drm/amd/amdgpu/mmhub_v2_3.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,6 @@ static void mmhub_v2_3_init_tlb_regs(struct amdgpu_device *adev)
194194
ENABLE_ADVANCED_DRIVER_MODEL, 1);
195195
tmp = REG_SET_FIELD(tmp, MMMC_VM_MX_L1_TLB_CNTL,
196196
SYSTEM_APERTURE_UNMAPPED_ACCESS, 0);
197-
tmp = REG_SET_FIELD(tmp, MMMC_VM_MX_L1_TLB_CNTL, ECO_BITS, 0);
198197
tmp = REG_SET_FIELD(tmp, MMMC_VM_MX_L1_TLB_CNTL,
199198
MTYPE, MTYPE_UC); /* UC, uncached */
200199

drivers/gpu/drm/amd/amdgpu/mmhub_v9_4.c

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -189,8 +189,6 @@ static void mmhub_v9_4_init_tlb_regs(struct amdgpu_device *adev, int hubid)
189189
ENABLE_ADVANCED_DRIVER_MODEL, 1);
190190
tmp = REG_SET_FIELD(tmp, VMSHAREDVC0_MC_VM_MX_L1_TLB_CNTL,
191191
SYSTEM_APERTURE_UNMAPPED_ACCESS, 0);
192-
tmp = REG_SET_FIELD(tmp, VMSHAREDVC0_MC_VM_MX_L1_TLB_CNTL,
193-
ECO_BITS, 0);
194192
tmp = REG_SET_FIELD(tmp, VMSHAREDVC0_MC_VM_MX_L1_TLB_CNTL,
195193
MTYPE, MTYPE_UC);/* XXX for emulation. */
196194
tmp = REG_SET_FIELD(tmp, VMSHAREDVC0_MC_VM_MX_L1_TLB_CNTL,

0 commit comments

Comments
 (0)