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

Commit 18111de0 authored by Jammy Zhou's avatar Jammy Zhou Committed by Alex Deucher
Browse files

drm/amdgpu: add burst_nop flag for sdma



The burst NOP is supported for SDMA when feature_version is >= 20.

Signed-off-by: default avatarJammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent 4207a734
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1708,6 +1708,7 @@ struct amdgpu_sdma {
	uint32_t		feature_version;

	struct amdgpu_ring	ring;
	bool			burst_nop;
};

/*
+2 −0
Original line number Diff line number Diff line
@@ -501,6 +501,8 @@ static int cik_sdma_load_microcode(struct amdgpu_device *adev)
		fw_size = le32_to_cpu(hdr->header.ucode_size_bytes) / 4;
		adev->sdma[i].fw_version = le32_to_cpu(hdr->header.ucode_version);
		adev->sdma[i].feature_version = le32_to_cpu(hdr->ucode_feature_version);
		if (adev->sdma[i].feature_version >= 20)
			adev->sdma[i].burst_nop = true;
		fw_data = (const __le32 *)
			(adev->sdma[i].fw->data + le32_to_cpu(hdr->header.ucode_array_offset_bytes));
		WREG32(mmSDMA0_UCODE_ADDR + sdma_offsets[i], 0);
+2 −0
Original line number Diff line number Diff line
@@ -146,6 +146,8 @@ static int sdma_v2_4_init_microcode(struct amdgpu_device *adev)
		hdr = (const struct sdma_firmware_header_v1_0 *)adev->sdma[i].fw->data;
		adev->sdma[i].fw_version = le32_to_cpu(hdr->header.ucode_version);
		adev->sdma[i].feature_version = le32_to_cpu(hdr->ucode_feature_version);
		if (adev->sdma[i].feature_version >= 20)
			adev->sdma[i].burst_nop = true;

		if (adev->firmware.smu_load) {
			info = &adev->firmware.ucode[AMDGPU_UCODE_ID_SDMA0 + i];
+2 −0
Original line number Diff line number Diff line
@@ -218,6 +218,8 @@ static int sdma_v3_0_init_microcode(struct amdgpu_device *adev)
		hdr = (const struct sdma_firmware_header_v1_0 *)adev->sdma[i].fw->data;
		adev->sdma[i].fw_version = le32_to_cpu(hdr->header.ucode_version);
		adev->sdma[i].feature_version = le32_to_cpu(hdr->ucode_feature_version);
		if (adev->sdma[i].feature_version >= 20)
			adev->sdma[i].burst_nop = true;

		if (adev->firmware.smu_load) {
			info = &adev->firmware.ucode[AMDGPU_UCODE_ID_SDMA0 + i];