Merge the logic into amdgpu_hdp_invalidate and use it as the public interface.
Signed-off-by: Lijo Lazar <[email protected]> --- drivers/gpu/drm/amd/amdgpu/amdgpu.h | 3 --- drivers/gpu/drm/amd/amdgpu/amdgpu_device.c | 15 +-------------- drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.c | 7 +++++++ drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c | 2 +- drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c | 4 ++-- 5 files changed, 11 insertions(+), 20 deletions(-) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h b/drivers/gpu/drm/amd/amdgpu/amdgpu.h index c1eded4bfa75..5a724e8e7199 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h @@ -1527,9 +1527,6 @@ bool amdgpu_device_is_peer_accessible(struct amdgpu_device *adev, int amdgpu_device_baco_enter(struct amdgpu_device *adev); int amdgpu_device_baco_exit(struct amdgpu_device *adev); -void amdgpu_device_invalidate_hdp(struct amdgpu_device *adev, - struct amdgpu_ring *ring); - void amdgpu_device_halt(struct amdgpu_device *adev); u32 amdgpu_device_pcie_port_rreg(struct amdgpu_device *adev, u32 reg); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c index 212eadb90c6c..b4962fb8d2a7 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_device.c @@ -773,7 +773,7 @@ size_t amdgpu_device_aper_access(struct amdgpu_device *adev, loff_t pos, mb(); amdgpu_hdp_flush(adev, NULL); } else { - amdgpu_device_invalidate_hdp(adev, NULL); + amdgpu_hdp_invalidate(adev, NULL); /* Make sure HDP read cache is invalidated before issuing a read * to the PCIe device */ @@ -7288,19 +7288,6 @@ bool amdgpu_device_load_pci_state(struct pci_dev *pdev) return true; } -void amdgpu_device_invalidate_hdp(struct amdgpu_device *adev, - struct amdgpu_ring *ring) -{ -#ifdef CONFIG_X86_64 - if ((adev->flags & AMD_IS_APU) && !amdgpu_passthrough(adev)) - return; -#endif - if (adev->gmc.xgmi.connected_to_cpu) - return; - - amdgpu_hdp_invalidate(adev, ring); -} - int amdgpu_in_reset(struct amdgpu_device *adev) { return atomic_read(&adev->reset_domain->in_gpu_reset); diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.c index c085031a6f09..c2fdd1d5cd47 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.c @@ -69,6 +69,13 @@ void amdgpu_hdp_generic_flush(struct amdgpu_device *adev, void amdgpu_hdp_invalidate(struct amdgpu_device *adev, struct amdgpu_ring *ring) { +#ifdef CONFIG_X86_64 + if ((adev->flags & AMD_IS_APU) && !amdgpu_passthrough(adev)) + return; +#endif + if (adev->gmc.xgmi.connected_to_cpu) + return; + if (adev->asic_funcs && adev->asic_funcs->invalidate_hdp) adev->asic_funcs->invalidate_hdp(adev, ring); else if (adev->hdp.funcs && adev->hdp.funcs->invalidate_hdp) diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c index f4885a140967..57edf3477621 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_ib.c @@ -280,7 +280,7 @@ int amdgpu_ib_schedule(struct amdgpu_ring *ring, unsigned int num_ibs, if (job && ring->funcs->emit_frame_cntl) amdgpu_ring_emit_frame_cntl(ring, false, secure); - amdgpu_device_invalidate_hdp(adev, ring); + amdgpu_hdp_invalidate(adev, ring); if (ib->flags & AMDGPU_IB_FLAG_TC_WB_NOT_INVALIDATE) fence_flags |= AMDGPU_FENCE_FLAG_TC_WB_ONLY; diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c index 57a8ac2c69db..43fdffb729d2 100644 --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c @@ -723,7 +723,7 @@ psp_cmd_submit_buf(struct psp_context *psp, goto exit; } - amdgpu_device_invalidate_hdp(psp->adev, NULL); + amdgpu_hdp_invalidate(psp->adev, NULL); while (*((unsigned int *)psp->fence_buf) != index) { if (--timeout == 0) break; @@ -736,7 +736,7 @@ psp_cmd_submit_buf(struct psp_context *psp, if (ras_intr) break; usleep_range(10, 100); - amdgpu_device_invalidate_hdp(psp->adev, NULL); + amdgpu_hdp_invalidate(psp->adev, NULL); } /* We allow TEE_ERROR_NOT_SUPPORTED for VMR command and PSP_ERR_UNKNOWN_COMMAND in SRIOV */ -- 2.49.0
