On 10/27/2025 9:51 PM, Asad Kamal wrote:
Update asic_invalidate_hdp and asic_flush_hdp function to check if ip
function exist, if not return void

v2: Use else/if (Kevin)
     Update function name (Lijo)

Signed-off-by: Asad Kamal <[email protected]>
Suggested-by: Lijo Lazar <[email protected]>
Reviewed-by: Yang Wang <[email protected]>

Reviewed-by: Lijo Lazar <[email protected]>

Thanks,
Lijo

---
  drivers/gpu/drm/amd/amdgpu/amdgpu.h     |  7 ++-----
  drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.c | 16 ++++++++++++++++
  drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.h |  4 ++++
  3 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 50079209c472..d1137d8beca7 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1539,11 +1539,8 @@ int emu_soc_asic_init(struct amdgpu_device *adev);
  #define amdgpu_asic_read_bios_from_rom(adev, b, l) 
(adev)->asic_funcs->read_bios_from_rom((adev), (b), (l))
  #define amdgpu_asic_read_register(adev, se, sh, offset, 
v)((adev)->asic_funcs->read_register((adev), (se), (sh), (offset), (v)))
  #define amdgpu_asic_get_config_memsize(adev) 
(adev)->asic_funcs->get_config_memsize((adev))
-#define amdgpu_asic_flush_hdp(adev, r) \
-       ((adev)->asic_funcs->flush_hdp ? (adev)->asic_funcs->flush_hdp((adev), (r)) : 
(adev)->hdp.funcs->flush_hdp((adev), (r)))
-#define amdgpu_asic_invalidate_hdp(adev, r) \
-       ((adev)->asic_funcs->invalidate_hdp ? 
(adev)->asic_funcs->invalidate_hdp((adev), (r)) : \
-        ((adev)->hdp.funcs->invalidate_hdp ? 
(adev)->hdp.funcs->invalidate_hdp((adev), (r)) : (void)0))
+#define amdgpu_asic_flush_hdp(adev, r) amdgpu_hdp_flush(adev, r)
+#define amdgpu_asic_invalidate_hdp(adev, r) amdgpu_hdp_invalidate(adev, r)
  #define amdgpu_asic_need_full_reset(adev) 
(adev)->asic_funcs->need_full_reset((adev))
  #define amdgpu_asic_init_doorbell_index(adev) 
(adev)->asic_funcs->init_doorbell_index((adev))
  #define amdgpu_asic_get_pcie_usage(adev, cnt0, cnt1) 
((adev)->asic_funcs->get_pcie_usage((adev), (cnt0), (cnt1)))
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.c 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.c
index 6e02fb9ac2f6..5a60d69a3e1f 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.c
@@ -66,3 +66,19 @@ void amdgpu_hdp_generic_flush(struct amdgpu_device *adev,
                                      0);
        }
  }
+
+void amdgpu_hdp_invalidate(struct amdgpu_device *adev, struct amdgpu_ring 
*ring)
+{
+       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)
+               adev->hdp.funcs->invalidate_hdp(adev, ring);
+}
+
+void amdgpu_hdp_flush(struct amdgpu_device *adev, struct amdgpu_ring *ring)
+{
+       if (adev->asic_funcs && adev->asic_funcs->flush_hdp)
+               adev->asic_funcs->flush_hdp(adev, ring);
+       else if (adev->hdp.funcs && adev->hdp.funcs->flush_hdp)
+               adev->hdp.funcs->flush_hdp(adev, ring);
+}
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.h
index 4cfd932b7e91..d9f488fa76b9 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_hdp.h
@@ -46,4 +46,8 @@ struct amdgpu_hdp {
  int amdgpu_hdp_ras_sw_init(struct amdgpu_device *adev);
  void amdgpu_hdp_generic_flush(struct amdgpu_device *adev,
                              struct amdgpu_ring *ring);
+void amdgpu_hdp_invalidate(struct amdgpu_device *adev,
+                          struct amdgpu_ring *ring);
+void amdgpu_hdp_flush(struct amdgpu_device *adev,
+                     struct amdgpu_ring *ring);
  #endif /* __AMDGPU_HDP_H__ */

Reply via email to