Skip to content

Commit 4c28e64

Browse files
committed
drm/amdgpu/gmc7: fix wait_for_idle callers
The wait_for_idle signature was changed, but the callers were not. Reviewed-by: Sunil Khatri <[email protected]> Reported-by: Michel Dänzer <[email protected]> Fixes: 82ae661 ("drm/amdgpu: update the handle ptr in wait_for_idle") Signed-off-by: Alex Deucher <[email protected]> Cc: Sunil Khatri <[email protected]>
1 parent da86889 commit 4c28e64

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

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

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -87,9 +87,14 @@ static void gmc_v7_0_init_golden_registers(struct amdgpu_device *adev)
8787

8888
static void gmc_v7_0_mc_stop(struct amdgpu_device *adev)
8989
{
90+
struct amdgpu_ip_block *ip_block;
9091
u32 blackout;
9192

92-
gmc_v7_0_wait_for_idle((void *)adev);
93+
ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GMC);
94+
if (!ip_block)
95+
return;
96+
97+
gmc_v7_0_wait_for_idle(ip_block);
9398

9499
blackout = RREG32(mmMC_SHARED_BLACKOUT_CNTL);
95100
if (REG_GET_FIELD(blackout, MC_SHARED_BLACKOUT_CNTL, BLACKOUT_MODE) != 1) {
@@ -251,9 +256,14 @@ static void gmc_v7_0_vram_gtt_location(struct amdgpu_device *adev,
251256
*/
252257
static void gmc_v7_0_mc_program(struct amdgpu_device *adev)
253258
{
259+
struct amdgpu_ip_block *ip_block;
254260
u32 tmp;
255261
int i, j;
256262

263+
ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GMC);
264+
if (!ip_block)
265+
return;
266+
257267
/* Initialize HDP */
258268
for (i = 0, j = 0; i < 32; i++, j += 0x6) {
259269
WREG32((0xb05 + j), 0x00000000);
@@ -264,7 +274,7 @@ static void gmc_v7_0_mc_program(struct amdgpu_device *adev)
264274
}
265275
WREG32(mmHDP_REG_COHERENCY_FLUSH_CNTL, 0);
266276

267-
if (gmc_v7_0_wait_for_idle((void *)adev))
277+
if (gmc_v7_0_wait_for_idle(ip_block))
268278
dev_warn(adev->dev, "Wait for MC idle timedout !\n");
269279

270280
if (adev->mode_info.num_crtc) {
@@ -288,7 +298,7 @@ static void gmc_v7_0_mc_program(struct amdgpu_device *adev)
288298
WREG32(mmMC_VM_AGP_BASE, 0);
289299
WREG32(mmMC_VM_AGP_TOP, adev->gmc.agp_end >> 22);
290300
WREG32(mmMC_VM_AGP_BOT, adev->gmc.agp_start >> 22);
291-
if (gmc_v7_0_wait_for_idle((void *)adev))
301+
if (gmc_v7_0_wait_for_idle(ip_block))
292302
dev_warn(adev->dev, "Wait for MC idle timedout !\n");
293303

294304
WREG32(mmBIF_FB_EN, BIF_FB_EN__FB_READ_EN_MASK | BIF_FB_EN__FB_WRITE_EN_MASK);
@@ -1183,7 +1193,7 @@ static int gmc_v7_0_soft_reset(struct amdgpu_ip_block *ip_block)
11831193

11841194
if (srbm_soft_reset) {
11851195
gmc_v7_0_mc_stop(adev);
1186-
if (gmc_v7_0_wait_for_idle((void *)adev))
1196+
if (gmc_v7_0_wait_for_idle(ip_block))
11871197
dev_warn(adev->dev, "Wait for GMC idle timed out !\n");
11881198

11891199
tmp = RREG32(mmSRBM_SOFT_RESET);

0 commit comments

Comments
 (0)