Commit 89d8445e authored by Alex Deucher's avatar Alex Deucher
Browse files

drm/amdgpu/gfx11: add FW version check for new CP GFX shadow feature



Use this to determine if we support the new SET_Q_PREEMPTION_MODE
packet.

Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 8f7f1b02
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -380,6 +380,8 @@ struct amdgpu_gfx {
	struct amdgpu_ring		sw_gfx_ring[AMDGPU_MAX_SW_GFX_RINGS];
	struct amdgpu_ring_mux          muxer;

	bool				cp_gfx_shadow; /* for gfx11 */

	enum amdgpu_gfx_partition	partition_mode;
	uint32_t			num_xcd;
	uint32_t			num_xcc_per_xcp;
+13 −0
Original line number Diff line number Diff line
@@ -463,6 +463,18 @@ static int gfx_v11_0_init_toc_microcode(struct amdgpu_device *adev, const char *
	return err;
}

static void gfx_v11_0_check_fw_cp_gfx_shadow(struct amdgpu_device *adev)
{
	switch (adev->ip_versions[GC_HWIP][0]) {
	case IP_VERSION(11, 0, 0):
	case IP_VERSION(11, 0, 2):
	case IP_VERSION(11, 0, 3):
	default:
		adev->gfx.cp_gfx_shadow = false;
		break;
	}
}

static int gfx_v11_0_init_microcode(struct amdgpu_device *adev)
{
	char fw_name[40];
@@ -539,6 +551,7 @@ static int gfx_v11_0_init_microcode(struct amdgpu_device *adev)
	/* only one MEC for gfx 11.0.0. */
	adev->gfx.mec2_fw = NULL;

	gfx_v11_0_check_fw_cp_gfx_shadow(adev);
out:
	if (err) {
		amdgpu_ucode_release(&adev->gfx.pfp_fw);