forked from Minki/linux
drm/amdgpu/gmc7: remove duplicate wait_for_idle functions
Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
34e3205e08
commit
313c45fdb4
@ -39,6 +39,7 @@
|
|||||||
|
|
||||||
static void gmc_v7_0_set_gart_funcs(struct amdgpu_device *adev);
|
static void gmc_v7_0_set_gart_funcs(struct amdgpu_device *adev);
|
||||||
static void gmc_v7_0_set_irq_funcs(struct amdgpu_device *adev);
|
static void gmc_v7_0_set_irq_funcs(struct amdgpu_device *adev);
|
||||||
|
static int gmc_v7_0_wait_for_idle(void *handle);
|
||||||
|
|
||||||
MODULE_FIRMWARE("radeon/bonaire_mc.bin");
|
MODULE_FIRMWARE("radeon/bonaire_mc.bin");
|
||||||
MODULE_FIRMWARE("radeon/hawaii_mc.bin");
|
MODULE_FIRMWARE("radeon/hawaii_mc.bin");
|
||||||
@ -73,30 +74,6 @@ static void gmc_v7_0_init_golden_registers(struct amdgpu_device *adev)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* gmc7_mc_wait_for_idle - wait for MC idle callback.
|
|
||||||
*
|
|
||||||
* @adev: amdgpu_device pointer
|
|
||||||
*
|
|
||||||
* Wait for the MC (memory controller) to be idle.
|
|
||||||
* (evergreen+).
|
|
||||||
* Returns 0 if the MC is idle, -1 if not.
|
|
||||||
*/
|
|
||||||
static int gmc_v7_0_mc_wait_for_idle(struct amdgpu_device *adev)
|
|
||||||
{
|
|
||||||
unsigned i;
|
|
||||||
u32 tmp;
|
|
||||||
|
|
||||||
for (i = 0; i < adev->usec_timeout; i++) {
|
|
||||||
/* read MC_STATUS */
|
|
||||||
tmp = RREG32(mmSRBM_STATUS) & 0x1F00;
|
|
||||||
if (!tmp)
|
|
||||||
return 0;
|
|
||||||
udelay(1);
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
static void gmc_v7_0_mc_stop(struct amdgpu_device *adev,
|
static void gmc_v7_0_mc_stop(struct amdgpu_device *adev,
|
||||||
struct amdgpu_mode_mc_save *save)
|
struct amdgpu_mode_mc_save *save)
|
||||||
{
|
{
|
||||||
@ -105,7 +82,7 @@ static void gmc_v7_0_mc_stop(struct amdgpu_device *adev,
|
|||||||
if (adev->mode_info.num_crtc)
|
if (adev->mode_info.num_crtc)
|
||||||
amdgpu_display_stop_mc_access(adev, save);
|
amdgpu_display_stop_mc_access(adev, save);
|
||||||
|
|
||||||
gmc_v7_0_mc_wait_for_idle(adev);
|
gmc_v7_0_wait_for_idle((void *)adev);
|
||||||
|
|
||||||
blackout = RREG32(mmMC_SHARED_BLACKOUT_CNTL);
|
blackout = RREG32(mmMC_SHARED_BLACKOUT_CNTL);
|
||||||
if (REG_GET_FIELD(blackout, MC_SHARED_BLACKOUT_CNTL, BLACKOUT_MODE) != 1) {
|
if (REG_GET_FIELD(blackout, MC_SHARED_BLACKOUT_CNTL, BLACKOUT_MODE) != 1) {
|
||||||
@ -311,7 +288,7 @@ static void gmc_v7_0_mc_program(struct amdgpu_device *adev)
|
|||||||
amdgpu_display_set_vga_render_state(adev, false);
|
amdgpu_display_set_vga_render_state(adev, false);
|
||||||
|
|
||||||
gmc_v7_0_mc_stop(adev, &save);
|
gmc_v7_0_mc_stop(adev, &save);
|
||||||
if (gmc_v7_0_mc_wait_for_idle(adev)) {
|
if (gmc_v7_0_wait_for_idle((void *)adev)) {
|
||||||
dev_warn(adev->dev, "Wait for MC idle timedout !\n");
|
dev_warn(adev->dev, "Wait for MC idle timedout !\n");
|
||||||
}
|
}
|
||||||
/* Update configuration */
|
/* Update configuration */
|
||||||
@ -331,7 +308,7 @@ static void gmc_v7_0_mc_program(struct amdgpu_device *adev)
|
|||||||
WREG32(mmMC_VM_AGP_BASE, 0);
|
WREG32(mmMC_VM_AGP_BASE, 0);
|
||||||
WREG32(mmMC_VM_AGP_TOP, 0x0FFFFFFF);
|
WREG32(mmMC_VM_AGP_TOP, 0x0FFFFFFF);
|
||||||
WREG32(mmMC_VM_AGP_BOT, 0x0FFFFFFF);
|
WREG32(mmMC_VM_AGP_BOT, 0x0FFFFFFF);
|
||||||
if (gmc_v7_0_mc_wait_for_idle(adev)) {
|
if (gmc_v7_0_wait_for_idle((void *)adev)) {
|
||||||
dev_warn(adev->dev, "Wait for MC idle timedout !\n");
|
dev_warn(adev->dev, "Wait for MC idle timedout !\n");
|
||||||
}
|
}
|
||||||
gmc_v7_0_mc_resume(adev, &save);
|
gmc_v7_0_mc_resume(adev, &save);
|
||||||
@ -1137,7 +1114,7 @@ static int gmc_v7_0_soft_reset(void *handle)
|
|||||||
|
|
||||||
if (srbm_soft_reset) {
|
if (srbm_soft_reset) {
|
||||||
gmc_v7_0_mc_stop(adev, &save);
|
gmc_v7_0_mc_stop(adev, &save);
|
||||||
if (gmc_v7_0_wait_for_idle(adev)) {
|
if (gmc_v7_0_wait_for_idle((void *)adev)) {
|
||||||
dev_warn(adev->dev, "Wait for GMC idle timed out !\n");
|
dev_warn(adev->dev, "Wait for GMC idle timed out !\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user