FAILED: patch "[PATCH] drm/amdgpu/psp: don't free PSP buffers on suspend" failed to apply to 6.1-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 6.1-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
Possible dependencies:
96e1a88fafe6 ("drm/amdgpu/psp: don't free PSP buffers on suspend")
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
From 96e1a88fafe6a9afd371fadc0c7de41b883aaec9 Mon Sep 17 00:00:00 2001
From: Alex Deucher <[email protected]>
Date: Wed, 16 Nov 2022 11:26:53 -0500
Subject: [PATCH] drm/amdgpu/psp: don't free PSP buffers on suspend
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
We can reuse the same buffers on resume.
v2: squash in S4 fix from Shikai
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +9 -7
@@ -198,6 +198,7 @@ void psp_ta_free_shared_buf(struct ta_mem_context *mem_ctx) {amdgpu_bo_free_kernel (&mem_ctx->shared_bo, &mem_ctx->shared_mc_addr, &mem_ctx->shared_buf); + mem_ctx->shared_bo =NULL ; }static void psp_free_shared_bufs (struct psp_context *psp)
@@ -208,6 +209,7 @@ static void psp_free_shared_bufs(struct psp_context *psp)/* free TMR memory buffer */ pptr =amdgpu_sriov_vf (psp->adev) ? &tmr_buf :NULL ;amdgpu_bo_free_kernel (&psp->tmr_bo, &psp->tmr_mc_addr, pptr); + psp->tmr_bo =NULL ;/* free xgmi shared memory */ psp_ta_free_shared_buf (&psp->xgmi_context.context.mem_context);
@@ -769,7 +771,7 @@ static int psp_load_toc(struct psp_context *psp,/* Set up Trusted Memory Region */ static int psp_tmr_init (struct psp_context *psp) { -int ret; +int ret =0 ;int tmr_size;void *tmr_buf;void **pptr;
@@ -796,10 +798,12 @@ static int psp_tmr_init(struct psp_context *psp) } } - pptr =amdgpu_sriov_vf (psp->adev) ? &tmr_buf :NULL ; - ret =amdgpu_bo_create_kernel (psp->adev, tmr_size,PSP_TMR_ALIGNMENT , -AMDGPU_GEM_DOMAIN_VRAM , - &psp->tmr_bo, &psp->tmr_mc_addr, pptr); +if (!psp->tmr_bo) { + pptr =amdgpu_sriov_vf (psp->adev) ? &tmr_buf :NULL ; + ret =amdgpu_bo_create_kernel (psp->adev, tmr_size,PSP_TMR_ALIGNMENT , +AMDGPU_GEM_DOMAIN_VRAM , + &psp->tmr_bo, &psp->tmr_mc_addr, pptr); + }return ret; }
@@ -2727,8 +2731,6 @@ static int psp_suspend(void *handle) } out: -psp_free_shared_bufs (psp); -return ret; }