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

Reply via email to