[AMD Official Use Only - AMD Internal Distribution Only]

Reviewed-by: Asad Kamal <[email protected]>

Thanks & Regards
Asad

-----Original Message-----
From: Lazar, Lijo <[email protected]>
Sent: Friday, November 28, 2025 1:07 PM
To: [email protected]
Cc: Zhang, Hawking <[email protected]>; Deucher, Alexander 
<[email protected]>; Kamal, Asad <[email protected]>
Subject: [PATCH v2] drm/amdgpu: Make pre_asic_init optional

pre_asic_init is not required for all SOCs. Make it optional and remove empty 
implementations.

Signed-off-by: Lijo Lazar <[email protected]>
---
v2: pre_asic_init returns void, no need to use ternary operator

 drivers/gpu/drm/amd/amdgpu/amdgpu.h | 6 +++++-
 drivers/gpu/drm/amd/amdgpu/cik.c    | 5 -----
 drivers/gpu/drm/amd/amdgpu/nv.c     | 5 -----
 drivers/gpu/drm/amd/amdgpu/si.c     | 5 -----
 drivers/gpu/drm/amd/amdgpu/soc15.c  | 1 -  drivers/gpu/drm/amd/amdgpu/soc21.c  
| 5 -----  drivers/gpu/drm/amd/amdgpu/soc24.c  | 5 -----
 drivers/gpu/drm/amd/amdgpu/vi.c     | 5 -----
 8 files changed, 5 insertions(+), 32 deletions(-)

diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu.h 
b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
index 790e84fec949..fa71df36f4b3 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu.h
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu.h
@@ -1549,7 +1549,11 @@ int emu_soc_asic_init(struct amdgpu_device *adev);  
#define amdgpu_asic_get_pcie_replay_count(adev) 
((adev)->asic_funcs->get_pcie_replay_count((adev)))
 #define amdgpu_asic_supports_baco(adev) \
     ((adev)->asic_funcs->supports_baco ? 
(adev)->asic_funcs->supports_baco((adev)) : 0) -#define 
amdgpu_asic_pre_asic_init(adev) (adev)->asic_funcs->pre_asic_init((adev))
+#define amdgpu_asic_pre_asic_init(adev)                                      \
+       {                                                                    \
+               if ((adev)->asic_funcs && (adev)->asic_funcs->pre_asic_init) \
+                       (adev)->asic_funcs->pre_asic_init((adev));           \
+       }
 #define amdgpu_asic_update_umd_stable_pstate(adev, enter) \
        ((adev)->asic_funcs->update_umd_stable_pstate ? 
(adev)->asic_funcs->update_umd_stable_pstate((adev), (enter)) : 0)  #define 
amdgpu_asic_query_video_codecs(adev, e, c) 
(adev)->asic_funcs->query_video_codecs((adev), (e), (c)) diff --git 
a/drivers/gpu/drm/amd/amdgpu/cik.c b/drivers/gpu/drm/amd/amdgpu/cik.c
index 9cd63b4177bf..fc0d2524b16f 100644
--- a/drivers/gpu/drm/amd/amdgpu/cik.c
+++ b/drivers/gpu/drm/amd/amdgpu/cik.c
@@ -1957,10 +1957,6 @@ static uint64_t cik_get_pcie_replay_count(struct 
amdgpu_device *adev)
        return (nak_r + nak_g);
 }

-static void cik_pre_asic_init(struct amdgpu_device *adev) -{ -}
-
 static const struct amdgpu_asic_funcs cik_asic_funcs =  {
        .read_disabled_bios = &cik_read_disabled_bios, @@ -1981,7 +1977,6 @@ 
static const struct amdgpu_asic_funcs cik_asic_funcs =
        .need_reset_on_init = &cik_need_reset_on_init,
        .get_pcie_replay_count = &cik_get_pcie_replay_count,
        .supports_baco = &cik_asic_supports_baco,
-       .pre_asic_init = &cik_pre_asic_init,
        .query_video_codecs = &cik_query_video_codecs,  };

diff --git a/drivers/gpu/drm/amd/amdgpu/nv.c b/drivers/gpu/drm/amd/amdgpu/nv.c 
index 50e77d9b30af..f17c3839aea1 100644
--- a/drivers/gpu/drm/amd/amdgpu/nv.c
+++ b/drivers/gpu/drm/amd/amdgpu/nv.c
@@ -593,10 +593,6 @@ static void nv_init_doorbell_index(struct amdgpu_device 
*adev)
        adev->doorbell_index.sdma_doorbell_range = 20;  }

-static void nv_pre_asic_init(struct amdgpu_device *adev) -{ -}
-
 static int nv_update_umd_stable_pstate(struct amdgpu_device *adev,
                                       bool enter)
 {
@@ -630,7 +626,6 @@ static const struct amdgpu_asic_funcs nv_asic_funcs = {
        .need_reset_on_init = &nv_need_reset_on_init,
        .get_pcie_replay_count = &amdgpu_nbio_get_pcie_replay_count,
        .supports_baco = &amdgpu_dpm_is_baco_supported,
-       .pre_asic_init = &nv_pre_asic_init,
        .update_umd_stable_pstate = &nv_update_umd_stable_pstate,
        .query_video_codecs = &nv_query_video_codecs,  }; diff --git 
a/drivers/gpu/drm/amd/amdgpu/si.c b/drivers/gpu/drm/amd/amdgpu/si.c index 
f7288372ee61..70e9ba9d927c 100644
--- a/drivers/gpu/drm/amd/amdgpu/si.c
+++ b/drivers/gpu/drm/amd/amdgpu/si.c
@@ -2003,10 +2003,6 @@ static int si_set_vce_clocks(struct amdgpu_device *adev, 
u32 evclk, u32 ecclk)
        return 0;
 }

-static void si_pre_asic_init(struct amdgpu_device *adev) -{ -}
-
 static const struct amdgpu_asic_funcs si_asic_funcs =  {
        .read_disabled_bios = &si_read_disabled_bios, @@ -2028,7 +2024,6 @@ 
static const struct amdgpu_asic_funcs si_asic_funcs =
        .need_reset_on_init = &si_need_reset_on_init,
        .get_pcie_replay_count = &si_get_pcie_replay_count,
        .supports_baco = &si_asic_supports_baco,
-       .pre_asic_init = &si_pre_asic_init,
        .query_video_codecs = &si_query_video_codecs,  };

diff --git a/drivers/gpu/drm/amd/amdgpu/soc15.c 
b/drivers/gpu/drm/amd/amdgpu/soc15.c
index 42f5d9c0e3af..54b14751fd7a 100644
--- a/drivers/gpu/drm/amd/amdgpu/soc15.c
+++ b/drivers/gpu/drm/amd/amdgpu/soc15.c
@@ -951,7 +951,6 @@ static const struct amdgpu_asic_funcs 
aqua_vanjaram_asic_funcs =
        .need_reset_on_init = &soc15_need_reset_on_init,
        .get_pcie_replay_count = &amdgpu_nbio_get_pcie_replay_count,
        .supports_baco = &soc15_supports_baco,
-       .pre_asic_init = &soc15_pre_asic_init,
        .query_video_codecs = &soc15_query_video_codecs,
        .encode_ext_smn_addressing = &aqua_vanjaram_encode_ext_smn_addressing,
        .get_reg_state = &aqua_vanjaram_get_reg_state, diff --git 
a/drivers/gpu/drm/amd/amdgpu/soc21.c b/drivers/gpu/drm/amd/amdgpu/soc21.c
index ad36c96478a8..55c3781fc730 100644
--- a/drivers/gpu/drm/amd/amdgpu/soc21.c
+++ b/drivers/gpu/drm/amd/amdgpu/soc21.c
@@ -513,10 +513,6 @@ static void soc21_init_doorbell_index(struct amdgpu_device 
*adev)
        adev->doorbell_index.sdma_doorbell_range = 20;  }

-static void soc21_pre_asic_init(struct amdgpu_device *adev) -{ -}
-
 static int soc21_update_umd_stable_pstate(struct amdgpu_device *adev,
                                          bool enter)
 {
@@ -546,7 +542,6 @@ static const struct amdgpu_asic_funcs soc21_asic_funcs = {
        .need_reset_on_init = &soc21_need_reset_on_init,
        .get_pcie_replay_count = &amdgpu_nbio_get_pcie_replay_count,
        .supports_baco = &amdgpu_dpm_is_baco_supported,
-       .pre_asic_init = &soc21_pre_asic_init,
        .query_video_codecs = &soc21_query_video_codecs,
        .update_umd_stable_pstate = &soc21_update_umd_stable_pstate,  }; diff 
--git a/drivers/gpu/drm/amd/amdgpu/soc24.c b/drivers/gpu/drm/amd/amdgpu/soc24.c
index 972b449ab89f..ecb6c3fcfbd1 100644
--- a/drivers/gpu/drm/amd/amdgpu/soc24.c
+++ b/drivers/gpu/drm/amd/amdgpu/soc24.c
@@ -327,10 +327,6 @@ static void soc24_init_doorbell_index(struct amdgpu_device 
*adev)
        adev->doorbell_index.sdma_doorbell_range = 20;  }

-static void soc24_pre_asic_init(struct amdgpu_device *adev) -{ -}
-
 static int soc24_update_umd_stable_pstate(struct amdgpu_device *adev,
                                          bool enter)
 {
@@ -357,7 +353,6 @@ static const struct amdgpu_asic_funcs soc24_asic_funcs = {
        .need_reset_on_init = &soc24_need_reset_on_init,
        .get_pcie_replay_count = &soc24_get_pcie_replay_count,
        .supports_baco = &amdgpu_dpm_is_baco_supported,
-       .pre_asic_init = &soc24_pre_asic_init,
        .query_video_codecs = &soc24_query_video_codecs,
        .update_umd_stable_pstate = &soc24_update_umd_stable_pstate,  }; diff 
--git a/drivers/gpu/drm/amd/amdgpu/vi.c b/drivers/gpu/drm/amd/amdgpu/vi.c index 
a611a7345125..6a574b6c8e63 100644
--- a/drivers/gpu/drm/amd/amdgpu/vi.c
+++ b/drivers/gpu/drm/amd/amdgpu/vi.c
@@ -1424,10 +1424,6 @@ static bool vi_need_reset_on_init(struct amdgpu_device 
*adev)
        return false;
 }

-static void vi_pre_asic_init(struct amdgpu_device *adev) -{ -}
-
 static const struct amdgpu_asic_funcs vi_asic_funcs =  {
        .read_disabled_bios = &vi_read_disabled_bios, @@ -1447,7 +1443,6 @@ 
static const struct amdgpu_asic_funcs vi_asic_funcs =
        .need_reset_on_init = &vi_need_reset_on_init,
        .get_pcie_replay_count = &vi_get_pcie_replay_count,
        .supports_baco = &vi_asic_supports_baco,
-       .pre_asic_init = &vi_pre_asic_init,
        .query_video_codecs = &vi_query_video_codecs,  };

--
2.49.0

Reply via email to