Skip to content

Commit e639fb0

Browse files
committed
Merge tag 'amd-drm-fixes-6.13-2024-12-18' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
amd-drm-fixes-6.13-2024-12-18: amdgpu: - Disable BOCO when CONFIG_HOTPLUG_PCI_PCIE is not enabled - scheduler job fixes - IP version check fixes - devcoredump fix - GPUVM update fix - NBIO 2.5 fix Signed-off-by: Dave Airlie <[email protected]> From: Alex Deucher <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2 parents 87fd883 + 3abb660 commit e639fb0

File tree

10 files changed

+25
-14
lines changed

10 files changed

+25
-14
lines changed

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

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -343,11 +343,10 @@ void amdgpu_coredump(struct amdgpu_device *adev, bool skip_vram_check,
343343
coredump->skip_vram_check = skip_vram_check;
344344
coredump->reset_vram_lost = vram_lost;
345345

346-
if (job && job->vm) {
347-
struct amdgpu_vm *vm = job->vm;
346+
if (job && job->pasid) {
348347
struct amdgpu_task_info *ti;
349348

350-
ti = amdgpu_vm_get_task_info_vm(vm);
349+
ti = amdgpu_vm_get_task_info_pasid(adev, job->pasid);
351350
if (ti) {
352351
coredump->reset_task_info = *ti;
353352
amdgpu_vm_put_task_info(ti);

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -417,6 +417,9 @@ bool amdgpu_device_supports_boco(struct drm_device *dev)
417417
{
418418
struct amdgpu_device *adev = drm_to_adev(dev);
419419

420+
if (!IS_ENABLED(CONFIG_HOTPLUG_PCI_PCIE))
421+
return false;
422+
420423
if (adev->has_pr3 ||
421424
((adev->flags & AMD_IS_PX) && amdgpu_is_atpx_hybrid()))
422425
return true;

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

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -255,7 +255,6 @@ void amdgpu_job_set_resources(struct amdgpu_job *job, struct amdgpu_bo *gds,
255255

256256
void amdgpu_job_free_resources(struct amdgpu_job *job)
257257
{
258-
struct amdgpu_ring *ring = to_amdgpu_ring(job->base.sched);
259258
struct dma_fence *f;
260259
unsigned i;
261260

@@ -268,7 +267,7 @@ void amdgpu_job_free_resources(struct amdgpu_job *job)
268267
f = NULL;
269268

270269
for (i = 0; i < job->num_ibs; ++i)
271-
amdgpu_ib_free(ring->adev, &job->ibs[i], f);
270+
amdgpu_ib_free(NULL, &job->ibs[i], f);
272271
}
273272

274273
static void amdgpu_job_free_cb(struct drm_sched_job *s_job)

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

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1266,10 +1266,9 @@ int amdgpu_vm_bo_update(struct amdgpu_device *adev, struct amdgpu_bo_va *bo_va,
12661266
* next command submission.
12671267
*/
12681268
if (amdgpu_vm_is_bo_always_valid(vm, bo)) {
1269-
uint32_t mem_type = bo->tbo.resource->mem_type;
1270-
1271-
if (!(bo->preferred_domains &
1272-
amdgpu_mem_type_to_domain(mem_type)))
1269+
if (bo->tbo.resource &&
1270+
!(bo->preferred_domains &
1271+
amdgpu_mem_type_to_domain(bo->tbo.resource->mem_type)))
12731272
amdgpu_vm_bo_evicted(&bo_va->base);
12741273
else
12751274
amdgpu_vm_bo_idle(&bo_va->base);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4123,7 +4123,7 @@ static int gfx_v12_0_set_clockgating_state(void *handle,
41234123
if (amdgpu_sriov_vf(adev))
41244124
return 0;
41254125

4126-
switch (adev->ip_versions[GC_HWIP][0]) {
4126+
switch (amdgpu_ip_version(adev, GC_HWIP, 0)) {
41274127
case IP_VERSION(12, 0, 0):
41284128
case IP_VERSION(12, 0, 1):
41294129
gfx_v12_0_update_gfx_clock_gating(adev,

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ mmhub_v4_1_0_print_l2_protection_fault_status(struct amdgpu_device *adev,
108108
dev_err(adev->dev,
109109
"MMVM_L2_PROTECTION_FAULT_STATUS_LO32:0x%08X\n",
110110
status);
111-
switch (adev->ip_versions[MMHUB_HWIP][0]) {
111+
switch (amdgpu_ip_version(adev, MMHUB_HWIP, 0)) {
112112
case IP_VERSION(4, 1, 0):
113113
mmhub_cid = mmhub_client_ids_v4_1_0[cid][rw];
114114
break;

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,8 +271,19 @@ const struct nbio_hdp_flush_reg nbio_v7_0_hdp_flush_reg = {
271271
.ref_and_mask_sdma1 = GPU_HDP_FLUSH_DONE__SDMA1_MASK,
272272
};
273273

274+
#define regRCC_DEV0_EPF6_STRAP4 0xd304
275+
#define regRCC_DEV0_EPF6_STRAP4_BASE_IDX 5
276+
274277
static void nbio_v7_0_init_registers(struct amdgpu_device *adev)
275278
{
279+
uint32_t data;
280+
281+
switch (amdgpu_ip_version(adev, NBIO_HWIP, 0)) {
282+
case IP_VERSION(2, 5, 0):
283+
data = RREG32_SOC15(NBIO, 0, regRCC_DEV0_EPF6_STRAP4) & ~BIT(23);
284+
WREG32_SOC15(NBIO, 0, regRCC_DEV0_EPF6_STRAP4, data);
285+
break;
286+
}
276287
}
277288

278289
#define MMIO_REG_HOLE_OFFSET (0x80000 - PAGE_SIZE)

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ static void nbio_v7_11_init_registers(struct amdgpu_device *adev)
275275
if (def != data)
276276
WREG32_SOC15(NBIO, 0, regBIF_BIF256_CI256_RC3X4_USB4_PCIE_MST_CTRL_3, data);
277277

278-
switch (adev->ip_versions[NBIO_HWIP][0]) {
278+
switch (amdgpu_ip_version(adev, NBIO_HWIP, 0)) {
279279
case IP_VERSION(7, 11, 0):
280280
case IP_VERSION(7, 11, 1):
281281
case IP_VERSION(7, 11, 2):

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -247,7 +247,7 @@ static void nbio_v7_7_init_registers(struct amdgpu_device *adev)
247247
if (def != data)
248248
WREG32_SOC15(NBIO, 0, regBIF0_PCIE_MST_CTRL_3, data);
249249

250-
switch (adev->ip_versions[NBIO_HWIP][0]) {
250+
switch (amdgpu_ip_version(adev, NBIO_HWIP, 0)) {
251251
case IP_VERSION(7, 7, 0):
252252
data = RREG32_SOC15(NBIO, 0, regRCC_DEV0_EPF5_STRAP4) & ~BIT(23);
253253
WREG32_SOC15(NBIO, 0, regRCC_DEV0_EPF5_STRAP4, data);

drivers/gpu/drm/amd/pm/swsmu/smu14/smu_v14_0_2_ppt.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2096,7 +2096,7 @@ static int smu_v14_0_2_enable_gfx_features(struct smu_context *smu)
20962096
{
20972097
struct amdgpu_device *adev = smu->adev;
20982098

2099-
if (adev->ip_versions[MP1_HWIP][0] == IP_VERSION(14, 0, 2))
2099+
if (amdgpu_ip_version(adev, MP1_HWIP, 0) == IP_VERSION(14, 0, 2))
21002100
return smu_cmn_send_smc_msg_with_param(smu, SMU_MSG_EnableAllSmuFeatures,
21012101
FEATURE_PWR_GFX, NULL);
21022102
else

0 commit comments

Comments
 (0)