mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-27 12:57:53 +00:00
drm/amdgpu:Remove sdma halt/unhalt during frontdoor load
sdma halt/unhalt is performed by psp when frontdoor loading used,so this can be skipped. v2: Instead of removing halt/unhalt completely, driver will do it only during backdoor load. Signed-off-by: Mangesh Gadre <Mangesh.Gadre@amd.com> Reviewed-by: Lijo Lazar <lijo.lazar@amd.com> Reviewed-by: Asad Kamal <asad.kamal@amd.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
This commit is contained in:
parent
4ff96bcc0d
commit
7f03b1d14d
1 changed files with 9 additions and 4 deletions
|
@ -578,6 +578,9 @@ static void sdma_v4_4_2_inst_enable(struct amdgpu_device *adev, bool enable,
|
|||
return;
|
||||
}
|
||||
|
||||
if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP)
|
||||
return;
|
||||
|
||||
for_each_inst(i, inst_mask) {
|
||||
f32_cntl = RREG32_SDMA(i, regSDMA_F32_CNTL);
|
||||
f32_cntl = REG_SET_FIELD(f32_cntl, SDMA_F32_CNTL, HALT, enable ? 0 : 1);
|
||||
|
@ -904,10 +907,12 @@ static int sdma_v4_4_2_inst_start(struct amdgpu_device *adev,
|
|||
ring->use_doorbell, ring->doorbell_index,
|
||||
adev->doorbell_index.sdma_doorbell_range);
|
||||
|
||||
/* unhalt engine */
|
||||
temp = RREG32_SDMA(i, regSDMA_F32_CNTL);
|
||||
temp = REG_SET_FIELD(temp, SDMA_F32_CNTL, HALT, 0);
|
||||
WREG32_SDMA(i, regSDMA_F32_CNTL, temp);
|
||||
if (adev->firmware.load_type != AMDGPU_FW_LOAD_PSP) {
|
||||
/* unhalt engine */
|
||||
temp = RREG32_SDMA(i, regSDMA_F32_CNTL);
|
||||
temp = REG_SET_FIELD(temp, SDMA_F32_CNTL, HALT, 0);
|
||||
WREG32_SDMA(i, regSDMA_F32_CNTL, temp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue