Skip to content

Commit 7de5c0d

Browse files
committed
Merge tag 'amd-drm-fixes-5.13-2021-06-09' of https://gitlab.freedesktop.org/agd5f/linux into drm-fixes
amd-drm-fixes-5.13-2021-06-09: amdgpu: - Use kvzmalloc in amdgu_bo_create - Use drm_dbg_kms for reporting failure to get a GEM FB - Fix some register offsets for Sienna Cichlid - Fix fall-through warning radeon: - memcpy_to/from_io fixes Signed-off-by: Dave Airlie <[email protected]> From: Alex Deucher <[email protected]> Link: https://patchwork.freedesktop.org/patch/msgid/[email protected]
2 parents 750643a + ab8363d commit 7de5c0d

File tree

5 files changed

+28
-11
lines changed

5 files changed

+28
-11
lines changed

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1057,7 +1057,7 @@ int amdgpu_display_gem_fb_init(struct drm_device *dev,
10571057

10581058
return 0;
10591059
err:
1060-
drm_err(dev, "Failed to init gem fb: %d\n", ret);
1060+
drm_dbg_kms(dev, "Failed to init gem fb: %d\n", ret);
10611061
rfb->base.obj[0] = NULL;
10621062
return ret;
10631063
}
@@ -1094,7 +1094,7 @@ int amdgpu_display_gem_fb_verify_and_init(
10941094

10951095
return 0;
10961096
err:
1097-
drm_err(dev, "Failed to verify and init gem fb: %d\n", ret);
1097+
drm_dbg_kms(dev, "Failed to verify and init gem fb: %d\n", ret);
10981098
rfb->base.obj[0] = NULL;
10991099
return ret;
11001100
}

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ static void amdgpu_bo_destroy(struct ttm_buffer_object *tbo)
100100
kfree(ubo->metadata);
101101
}
102102

103-
kfree(bo);
103+
kvfree(bo);
104104
}
105105

106106
/**
@@ -552,7 +552,7 @@ static int amdgpu_bo_do_create(struct amdgpu_device *adev,
552552
BUG_ON(bp->bo_ptr_size < sizeof(struct amdgpu_bo));
553553

554554
*bo_ptr = NULL;
555-
bo = kzalloc(bp->bo_ptr_size, GFP_KERNEL);
555+
bo = kvzalloc(bp->bo_ptr_size, GFP_KERNEL);
556556
if (bo == NULL)
557557
return -ENOMEM;
558558
drm_gem_private_object_init(adev_to_drm(adev), &bo->tbo.base, size);

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

Lines changed: 21 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,9 @@
173173
#define mmGC_THROTTLE_CTRL_Sienna_Cichlid 0x2030
174174
#define mmGC_THROTTLE_CTRL_Sienna_Cichlid_BASE_IDX 0
175175

176+
#define mmRLC_SPARE_INT_0_Sienna_Cichlid 0x4ca5
177+
#define mmRLC_SPARE_INT_0_Sienna_Cichlid_BASE_IDX 1
178+
176179
#define GFX_RLCG_GC_WRITE_OLD (0x8 << 28)
177180
#define GFX_RLCG_GC_WRITE (0x0 << 28)
178181
#define GFX_RLCG_GC_READ (0x1 << 28)
@@ -1480,8 +1483,15 @@ static u32 gfx_v10_rlcg_rw(struct amdgpu_device *adev, u32 offset, u32 v, uint32
14801483
(adev->reg_offset[GC_HWIP][0][mmSCRATCH_REG0_BASE_IDX] + mmSCRATCH_REG2) * 4;
14811484
scratch_reg3 = adev->rmmio +
14821485
(adev->reg_offset[GC_HWIP][0][mmSCRATCH_REG1_BASE_IDX] + mmSCRATCH_REG3) * 4;
1483-
spare_int = adev->rmmio +
1484-
(adev->reg_offset[GC_HWIP][0][mmRLC_SPARE_INT_BASE_IDX] + mmRLC_SPARE_INT) * 4;
1486+
1487+
if (adev->asic_type >= CHIP_SIENNA_CICHLID) {
1488+
spare_int = adev->rmmio +
1489+
(adev->reg_offset[GC_HWIP][0][mmRLC_SPARE_INT_0_Sienna_Cichlid_BASE_IDX]
1490+
+ mmRLC_SPARE_INT_0_Sienna_Cichlid) * 4;
1491+
} else {
1492+
spare_int = adev->rmmio +
1493+
(adev->reg_offset[GC_HWIP][0][mmRLC_SPARE_INT_BASE_IDX] + mmRLC_SPARE_INT) * 4;
1494+
}
14851495

14861496
grbm_cntl = adev->reg_offset[GC_HWIP][0][mmGRBM_GFX_CNTL_BASE_IDX] + mmGRBM_GFX_CNTL;
14871497
grbm_idx = adev->reg_offset[GC_HWIP][0][mmGRBM_GFX_INDEX_BASE_IDX] + mmGRBM_GFX_INDEX;
@@ -7349,9 +7359,15 @@ static int gfx_v10_0_hw_fini(void *handle)
73497359
if (amdgpu_sriov_vf(adev)) {
73507360
gfx_v10_0_cp_gfx_enable(adev, false);
73517361
/* Program KIQ position of RLC_CP_SCHEDULERS during destroy */
7352-
tmp = RREG32_SOC15(GC, 0, mmRLC_CP_SCHEDULERS);
7353-
tmp &= 0xffffff00;
7354-
WREG32_SOC15(GC, 0, mmRLC_CP_SCHEDULERS, tmp);
7362+
if (adev->asic_type >= CHIP_SIENNA_CICHLID) {
7363+
tmp = RREG32_SOC15(GC, 0, mmRLC_CP_SCHEDULERS_Sienna_Cichlid);
7364+
tmp &= 0xffffff00;
7365+
WREG32_SOC15(GC, 0, mmRLC_CP_SCHEDULERS_Sienna_Cichlid, tmp);
7366+
} else {
7367+
tmp = RREG32_SOC15(GC, 0, mmRLC_CP_SCHEDULERS);
7368+
tmp &= 0xffffff00;
7369+
WREG32_SOC15(GC, 0, mmRLC_CP_SCHEDULERS, tmp);
7370+
}
73557371

73567372
return 0;
73577373
}

drivers/gpu/drm/amd/pm/powerplay/hwmgr/smu10_hwmgr.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -810,6 +810,7 @@ static int smu10_dpm_force_dpm_level(struct pp_hwmgr *hwmgr,
810810
break;
811811
case AMD_DPM_FORCED_LEVEL_MANUAL:
812812
data->fine_grain_enabled = 1;
813+
break;
813814
case AMD_DPM_FORCED_LEVEL_PROFILE_EXIT:
814815
default:
815816
break;

drivers/gpu/drm/radeon/radeon_uvd.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -286,15 +286,15 @@ int radeon_uvd_resume(struct radeon_device *rdev)
286286
if (rdev->uvd.vcpu_bo == NULL)
287287
return -EINVAL;
288288

289-
memcpy(rdev->uvd.cpu_addr, rdev->uvd_fw->data, rdev->uvd_fw->size);
289+
memcpy_toio((void __iomem *)rdev->uvd.cpu_addr, rdev->uvd_fw->data, rdev->uvd_fw->size);
290290

291291
size = radeon_bo_size(rdev->uvd.vcpu_bo);
292292
size -= rdev->uvd_fw->size;
293293

294294
ptr = rdev->uvd.cpu_addr;
295295
ptr += rdev->uvd_fw->size;
296296

297-
memset(ptr, 0, size);
297+
memset_io((void __iomem *)ptr, 0, size);
298298

299299
return 0;
300300
}

0 commit comments

Comments
 (0)