[PATCH 1/3] drm/amdgpu:Change VCE booting with firmware loaded by PSP
Huang Rui
ray.huang at amd.com
Wed Aug 15 05:47:33 UTC 2018
On Tue, Aug 14, 2018 at 02:53:51PM -0400, James Zhu wrote:
> With PSP firmware loading, TMR mc address is supposed to be used.
> Signed-off-by: James Zhu <James.Zhu at amd.com>
Series are
Acked-by: Huang Rui <ray.huang at amd.com>
> ---
> drivers/gpu/drm/amd/amdgpu/vce_v4_0.c | 13 +++++++++----
> 1 file changed, 9 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c b/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
> index 8fd1b74..b5fd1c4 100755
> --- a/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
> +++ b/drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
> @@ -593,6 +593,7 @@ static int vce_v4_0_resume(void *handle)
> static void vce_v4_0_mc_resume(struct amdgpu_device *adev)
> {
> uint32_t offset, size;
> + uint64_t tmr_mc_addr;
>
> WREG32_P(SOC15_REG_OFFSET(VCE, 0, mmVCE_CLOCK_GATING_A), 0, ~(1 << 16));
> WREG32_P(SOC15_REG_OFFSET(VCE, 0, mmVCE_UENC_CLOCK_GATING), 0x1FF000, ~0xFF9FF000);
> @@ -605,21 +606,25 @@ static void vce_v4_0_mc_resume(struct amdgpu_device *adev)
> WREG32(SOC15_REG_OFFSET(VCE, 0, mmVCE_LMI_SWAP_CNTL1), 0);
> WREG32(SOC15_REG_OFFSET(VCE, 0, mmVCE_LMI_VM_CTRL), 0);
>
> + offset = AMDGPU_VCE_FIRMWARE_OFFSET;
> +
> if (adev->firmware.load_type == AMDGPU_FW_LOAD_PSP) {
> + tmr_mc_addr = (uint64_t)(adev->firmware.ucode[AMDGPU_UCODE_ID_VCE].tmr_mc_addr_hi) << 32 |
> + adev->firmware.ucode[AMDGPU_UCODE_ID_VCE].tmr_mc_addr_lo;
> WREG32(SOC15_REG_OFFSET(VCE, 0, mmVCE_LMI_VCPU_CACHE_40BIT_BAR0),
> - (adev->firmware.ucode[AMDGPU_UCODE_ID_VCE].mc_addr >> 8));
> + (tmr_mc_addr >> 8));
> WREG32(SOC15_REG_OFFSET(VCE, 0, mmVCE_LMI_VCPU_CACHE_64BIT_BAR0),
> - (adev->firmware.ucode[AMDGPU_UCODE_ID_VCE].mc_addr >> 40) & 0xff);
> + (tmr_mc_addr >> 40) & 0xff);
> + WREG32(SOC15_REG_OFFSET(VCE, 0, mmVCE_VCPU_CACHE_OFFSET0), 0);
> } else {
> WREG32(SOC15_REG_OFFSET(VCE, 0, mmVCE_LMI_VCPU_CACHE_40BIT_BAR0),
> (adev->vce.gpu_addr >> 8));
> WREG32(SOC15_REG_OFFSET(VCE, 0, mmVCE_LMI_VCPU_CACHE_64BIT_BAR0),
> (adev->vce.gpu_addr >> 40) & 0xff);
> + WREG32(SOC15_REG_OFFSET(VCE, 0, mmVCE_VCPU_CACHE_OFFSET0), offset & ~0x0f000000);
> }
>
> - offset = AMDGPU_VCE_FIRMWARE_OFFSET;
> size = VCE_V4_0_FW_SIZE;
> - WREG32(SOC15_REG_OFFSET(VCE, 0, mmVCE_VCPU_CACHE_OFFSET0), offset & ~0x0f000000);
> WREG32(SOC15_REG_OFFSET(VCE, 0, mmVCE_VCPU_CACHE_SIZE0), size);
>
> WREG32(SOC15_REG_OFFSET(VCE, 0, mmVCE_LMI_VCPU_CACHE_40BIT_BAR1), (adev->vce.gpu_addr >> 8));
> --
> 2.7.4
>
> _______________________________________________
> amd-gfx mailing list
> amd-gfx at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/amd-gfx
More information about the amd-gfx
mailing list