Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 72b459c8 authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu: pull topaz gmc bits into gmc_v7



Add the topaz golden settings into the gmc7 module.

Reviewed-by: default avatarKen Wang <Qingqing.Wang@amd.com>
Reviewed-by: default avatarChristian König <christian.koenig@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
Cc: stable@vger.kernel.org
parent 8f3c1629
Loading
Loading
Loading
Loading
+33 −2
Original line number Original line Diff line number Diff line
@@ -44,8 +44,37 @@ MODULE_FIRMWARE("radeon/bonaire_mc.bin");
MODULE_FIRMWARE("radeon/hawaii_mc.bin");
MODULE_FIRMWARE("radeon/hawaii_mc.bin");
MODULE_FIRMWARE("amdgpu/topaz_mc.bin");
MODULE_FIRMWARE("amdgpu/topaz_mc.bin");


static const u32 golden_settings_iceland_a11[] =
{
	mmVM_PRT_APERTURE0_LOW_ADDR, 0x0fffffff, 0x0fffffff,
	mmVM_PRT_APERTURE1_LOW_ADDR, 0x0fffffff, 0x0fffffff,
	mmVM_PRT_APERTURE2_LOW_ADDR, 0x0fffffff, 0x0fffffff,
	mmVM_PRT_APERTURE3_LOW_ADDR, 0x0fffffff, 0x0fffffff
};

static const u32 iceland_mgcg_cgcg_init[] =
{
	mmMC_MEM_POWER_LS, 0xffffffff, 0x00000104
};

static void gmc_v7_0_init_golden_registers(struct amdgpu_device *adev)
{
	switch (adev->asic_type) {
	case CHIP_TOPAZ:
		amdgpu_program_register_sequence(adev,
						 iceland_mgcg_cgcg_init,
						 (const u32)ARRAY_SIZE(iceland_mgcg_cgcg_init));
		amdgpu_program_register_sequence(adev,
						 golden_settings_iceland_a11,
						 (const u32)ARRAY_SIZE(golden_settings_iceland_a11));
		break;
	default:
		break;
	}
}

/**
/**
 * gmc8_mc_wait_for_idle - wait for MC idle callback.
 * gmc7_mc_wait_for_idle - wait for MC idle callback.
 *
 *
 * @adev: amdgpu_device pointer
 * @adev: amdgpu_device pointer
 *
 *
@@ -992,6 +1021,8 @@ static int gmc_v7_0_hw_init(void *handle)
	int r;
	int r;
	struct amdgpu_device *adev = (struct amdgpu_device *)handle;
	struct amdgpu_device *adev = (struct amdgpu_device *)handle;


	gmc_v7_0_init_golden_registers(adev);

	gmc_v7_0_mc_program(adev);
	gmc_v7_0_mc_program(adev);


	if (!(adev->flags & AMD_IS_APU)) {
	if (!(adev->flags & AMD_IS_APU)) {