]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: update the handle ptr in hw_init
authorSunil Khatri <sunil.khatri@amd.com>
Tue, 1 Oct 2024 06:05:14 +0000 (11:35 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Mon, 7 Oct 2024 18:03:25 +0000 (14:03 -0400)
Update the *handle to amdgpu_ip_block ptr for all
functions pointers of hw_init.

Also update the ip_block ptr where ever needed as
there were cyclic dependency of hw_init on resume.

v2: squash in isp fix

Signed-off-by: Sunil Khatri <sunil.khatri@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
85 files changed:
drivers/gpu/drm/amd/amdgpu/amdgpu_acp.c
drivers/gpu/drm/amd/amdgpu/amdgpu_device.c
drivers/gpu/drm/amd/amdgpu/amdgpu_isp.c
drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c
drivers/gpu/drm/amd/amdgpu/amdgpu_umsch_mm.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vkms.c
drivers/gpu/drm/amd/amdgpu/amdgpu_vpe.c
drivers/gpu/drm/amd/amdgpu/cik.c
drivers/gpu/drm/amd/amdgpu/cik_ih.c
drivers/gpu/drm/amd/amdgpu/cik_sdma.c
drivers/gpu/drm/amd/amdgpu/cz_ih.c
drivers/gpu/drm/amd/amdgpu/dce_v10_0.c
drivers/gpu/drm/amd/amdgpu/dce_v11_0.c
drivers/gpu/drm/amd/amdgpu/dce_v6_0.c
drivers/gpu/drm/amd/amdgpu/dce_v8_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v10_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v11_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v12_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v6_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v7_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v8_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v9_0.c
drivers/gpu/drm/amd/amdgpu/gfx_v9_4_3.c
drivers/gpu/drm/amd/amdgpu/gmc_v10_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v11_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v12_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v6_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v7_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v8_0.c
drivers/gpu/drm/amd/amdgpu/gmc_v9_0.c
drivers/gpu/drm/amd/amdgpu/iceland_ih.c
drivers/gpu/drm/amd/amdgpu/ih_v6_0.c
drivers/gpu/drm/amd/amdgpu/ih_v6_1.c
drivers/gpu/drm/amd/amdgpu/ih_v7_0.c
drivers/gpu/drm/amd/amdgpu/jpeg_v2_0.c
drivers/gpu/drm/amd/amdgpu/jpeg_v2_5.c
drivers/gpu/drm/amd/amdgpu/jpeg_v3_0.c
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0.c
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_3.c
drivers/gpu/drm/amd/amdgpu/jpeg_v4_0_5.c
drivers/gpu/drm/amd/amdgpu/jpeg_v5_0_0.c
drivers/gpu/drm/amd/amdgpu/mes_v11_0.c
drivers/gpu/drm/amd/amdgpu/mes_v12_0.c
drivers/gpu/drm/amd/amdgpu/navi10_ih.c
drivers/gpu/drm/amd/amdgpu/nv.c
drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c
drivers/gpu/drm/amd/amdgpu/sdma_v3_0.c
drivers/gpu/drm/amd/amdgpu/sdma_v4_0.c
drivers/gpu/drm/amd/amdgpu/sdma_v4_4_2.c
drivers/gpu/drm/amd/amdgpu/sdma_v5_0.c
drivers/gpu/drm/amd/amdgpu/sdma_v5_2.c
drivers/gpu/drm/amd/amdgpu/sdma_v6_0.c
drivers/gpu/drm/amd/amdgpu/sdma_v7_0.c
drivers/gpu/drm/amd/amdgpu/si.c
drivers/gpu/drm/amd/amdgpu/si_dma.c
drivers/gpu/drm/amd/amdgpu/si_ih.c
drivers/gpu/drm/amd/amdgpu/soc15.c
drivers/gpu/drm/amd/amdgpu/soc21.c
drivers/gpu/drm/amd/amdgpu/soc24.c
drivers/gpu/drm/amd/amdgpu/tonga_ih.c
drivers/gpu/drm/amd/amdgpu/uvd_v3_1.c
drivers/gpu/drm/amd/amdgpu/uvd_v4_2.c
drivers/gpu/drm/amd/amdgpu/uvd_v5_0.c
drivers/gpu/drm/amd/amdgpu/uvd_v6_0.c
drivers/gpu/drm/amd/amdgpu/uvd_v7_0.c
drivers/gpu/drm/amd/amdgpu/vce_v2_0.c
drivers/gpu/drm/amd/amdgpu/vce_v3_0.c
drivers/gpu/drm/amd/amdgpu/vce_v4_0.c
drivers/gpu/drm/amd/amdgpu/vcn_v1_0.c
drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c
drivers/gpu/drm/amd/amdgpu/vcn_v2_5.c
drivers/gpu/drm/amd/amdgpu/vcn_v3_0.c
drivers/gpu/drm/amd/amdgpu/vcn_v4_0.c
drivers/gpu/drm/amd/amdgpu/vcn_v4_0_3.c
drivers/gpu/drm/amd/amdgpu/vcn_v4_0_5.c
drivers/gpu/drm/amd/amdgpu/vcn_v5_0_0.c
drivers/gpu/drm/amd/amdgpu/vega10_ih.c
drivers/gpu/drm/amd/amdgpu/vega20_ih.c
drivers/gpu/drm/amd/amdgpu/vi.c
drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
drivers/gpu/drm/amd/include/amd_shared.h
drivers/gpu/drm/amd/pm/legacy-dpm/kv_dpm.c
drivers/gpu/drm/amd/pm/legacy-dpm/si_dpm.c
drivers/gpu/drm/amd/pm/powerplay/amd_powerplay.c
drivers/gpu/drm/amd/pm/swsmu/amdgpu_smu.c

index 50eed2b4652048062651bdb3ec27d2b91f043f2a..37d431a401845d033e958fe77a3ed4757849920e 100644 (file)
@@ -222,7 +222,7 @@ static const struct dmi_system_id acp_quirk_table[] = {
  * @handle: handle used to pass amdgpu_device pointer
  *
  */
-static int acp_hw_init(void *handle)
+static int acp_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
        u64 acp_base;
@@ -230,13 +230,7 @@ static int acp_hw_init(void *handle)
        u32 count = 0;
        struct i2s_platform_data *i2s_pdata = NULL;
 
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       const struct amdgpu_ip_block *ip_block =
-               amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_ACP);
-
-       if (!ip_block)
-               return -EINVAL;
+       struct amdgpu_device *adev = ip_block->adev;
 
        r = amd_acp_hw_init(adev->acp.cgs_device,
                            ip_block->version->major, ip_block->version->minor);
index 7edaad5f3f1ceae18855b96a3e8822224e24953b..cbc96a5230f72409a553b94c4f4b9c41638f6186 100644 (file)
@@ -2684,7 +2684,7 @@ static int amdgpu_device_ip_hw_init_phase1(struct amdgpu_device *adev)
                if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON ||
                    (amdgpu_sriov_vf(adev) && (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_PSP)) ||
                    adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_IH) {
-                       r = adev->ip_blocks[i].version->funcs->hw_init(adev);
+                       r = adev->ip_blocks[i].version->funcs->hw_init(&adev->ip_blocks[i]);
                        if (r) {
                                DRM_ERROR("hw_init of IP block <%s> failed %d\n",
                                          adev->ip_blocks[i].version->funcs->name, r);
@@ -2709,7 +2709,7 @@ static int amdgpu_device_ip_hw_init_phase2(struct amdgpu_device *adev)
                if (!amdgpu_ip_member_of_hwini(
                            adev, adev->ip_blocks[i].version->type))
                        continue;
-               r = adev->ip_blocks[i].version->funcs->hw_init(adev);
+               r = adev->ip_blocks[i].version->funcs->hw_init(&adev->ip_blocks[i]);
                if (r) {
                        DRM_ERROR("hw_init of IP block <%s> failed %d\n",
                                  adev->ip_blocks[i].version->funcs->name, r);
@@ -2751,7 +2751,7 @@ static int amdgpu_device_fw_loading(struct amdgpu_device *adev)
                                        return r;
                                }
                        } else {
-                               r = adev->ip_blocks[i].version->funcs->hw_init(adev);
+                               r = adev->ip_blocks[i].version->funcs->hw_init(&adev->ip_blocks[i]);
                                if (r) {
                                        DRM_ERROR("hw_init of IP block <%s> failed %d\n",
                                                          adev->ip_blocks[i].version->funcs->name, r);
@@ -2865,7 +2865,7 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
 
                if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON) {
                        /* need to do common hw init early so everything is set up for gmc */
-                       r = adev->ip_blocks[i].version->funcs->hw_init((void *)adev);
+                       r = adev->ip_blocks[i].version->funcs->hw_init(&adev->ip_blocks[i]);
                        if (r) {
                                DRM_ERROR("hw_init %d failed %d\n", i, r);
                                goto init_failed;
@@ -2882,7 +2882,7 @@ static int amdgpu_device_ip_init(struct amdgpu_device *adev)
                                DRM_ERROR("amdgpu_mem_scratch_init failed %d\n", r);
                                goto init_failed;
                        }
-                       r = adev->ip_blocks[i].version->funcs->hw_init((void *)adev);
+                       r = adev->ip_blocks[i].version->funcs->hw_init(&adev->ip_blocks[i]);
                        if (r) {
                                DRM_ERROR("hw_init %d failed %d\n", i, r);
                                goto init_failed;
@@ -3626,7 +3626,7 @@ static int amdgpu_device_ip_reinit_early_sriov(struct amdgpu_device *adev)
                                !block->status.valid)
                                continue;
 
-                       r = block->version->funcs->hw_init(adev);
+                       r = block->version->funcs->hw_init(&adev->ip_blocks[i]);
                        DRM_INFO("RE-INIT-early: %s %s\n", block->version->funcs->name, r?"failed":"succeeded");
                        if (r)
                                return r;
@@ -3668,7 +3668,7 @@ static int amdgpu_device_ip_reinit_late_sriov(struct amdgpu_device *adev)
                        if (block->version->type == AMD_IP_BLOCK_TYPE_SMC)
                                r = block->version->funcs->resume(&adev->ip_blocks[i]);
                        else
-                               r = block->version->funcs->hw_init(adev);
+                               r = block->version->funcs->hw_init(&adev->ip_blocks[i]);
 
                        DRM_INFO("RE-INIT-late: %s %s\n", block->version->funcs->name, r?"failed":"succeeded");
                        if (r)
index 64e7fe9186ee2d7f0a546451950bd609bd151f2c..f96f05f38a0e3757d0c5dbcb6df564c829e8cb00 100644 (file)
@@ -49,17 +49,11 @@ static int isp_sw_fini(struct amdgpu_ip_block *ip_block)
  * @handle: handle for amdgpu_device pointer
  *
  */
-static int isp_hw_init(void *handle)
+static int isp_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_isp *isp = &adev->isp;
 
-       const struct amdgpu_ip_block *ip_block =
-               amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_ISP);
-
-       if (!ip_block)
-               return -EINVAL;
-
        if (isp->funcs->hw_init != NULL)
                return isp->funcs->hw_init(isp);
 
index c961644737f0b1375420033ab0ac1fe7ba825b6b..ee19237395900f8729e68a8ad47e71e65fe4028f 100644 (file)
@@ -2973,10 +2973,10 @@ failed:
        return ret;
 }
 
-static int psp_hw_init(void *handle)
+static int psp_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int ret;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        mutex_lock(&adev->firmware.mutex);
        /*
index 0e77f14232ce62547ec828387b411bc6d571ba32..aee4c1d4a53b6de8e3c973a923b274fbf41039fe 100644 (file)
@@ -839,9 +839,9 @@ static int umsch_mm_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int umsch_mm_hw_init(void *handle)
+static int umsch_mm_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
        r = umsch_mm_load_microcode(&adev->umsch_mm);
@@ -882,9 +882,7 @@ static int umsch_mm_suspend(struct amdgpu_ip_block *ip_block)
 
 static int umsch_mm_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return umsch_mm_hw_init(adev);
+       return umsch_mm_hw_init(ip_block);
 }
 
 void amdgpu_umsch_fwlog_init(struct amdgpu_umsch_mm *umsch_mm)
index d876b407249d47c7bfc3b51bac342cf0b71b0d0b..2c810750f7d504cf423ee9d4b64a705149bd1d21 100644 (file)
@@ -555,9 +555,9 @@ static int amdgpu_vkms_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int amdgpu_vkms_hw_init(void *handle)
+static int amdgpu_vkms_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        switch (adev->asic_type) {
 #ifdef CONFIG_DRM_AMDGPU_SI
@@ -618,13 +618,12 @@ static int amdgpu_vkms_suspend(struct amdgpu_ip_block *ip_block)
 
 static int amdgpu_vkms_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = amdgpu_vkms_hw_init(adev);
+       r = amdgpu_vkms_hw_init(ip_block);
        if (r)
                return r;
-       return drm_mode_config_helper_resume(adev_to_drm(adev));
+       return drm_mode_config_helper_resume(adev_to_drm(ip_block->adev));
 }
 
 static bool amdgpu_vkms_is_idle(void *handle)
index d9ace55dd5204c4964205334f1496509f4ea521a..2234c06b7d764d61955ef8179af929432f98f425 100644 (file)
@@ -398,9 +398,9 @@ static int vpe_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int vpe_hw_init(void *handle)
+static int vpe_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_vpe *vpe = &adev->vpe;
        int ret;
 
@@ -445,9 +445,7 @@ static int vpe_suspend(struct amdgpu_ip_block *ip_block)
 
 static int vpe_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return vpe_hw_init(adev);
+       return vpe_hw_init(ip_block);
 }
 
 static void vpe_ring_insert_nop(struct amdgpu_ring *ring, uint32_t count)
index afe2d4c5d22a63dd93b3cc0d74106c0b8d63f1c5..1f8d941d26e71a77fd74b4dd39772958273482b0 100644 (file)
@@ -2134,9 +2134,9 @@ static int cik_common_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int cik_common_hw_init(void *handle)
+static int cik_common_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* move the golden regs per IP block */
        cik_init_golden_registers(adev);
@@ -2162,9 +2162,7 @@ static int cik_common_suspend(struct amdgpu_ip_block *ip_block)
 
 static int cik_common_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return cik_common_hw_init(adev);
+       return cik_common_hw_init(ip_block);
 }
 
 static bool cik_common_is_idle(void *handle)
index 3507442fe4d89cbeae70fcbc0cfda79758c4c989..dfeac11f852e5e5400718552a98c069a32ff07eb 100644 (file)
@@ -321,9 +321,9 @@ static int cik_ih_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int cik_ih_hw_init(void *handle)
+static int cik_ih_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        return cik_ih_irq_init(adev);
 }
@@ -346,9 +346,7 @@ static int cik_ih_suspend(struct amdgpu_ip_block *ip_block)
 
 static int cik_ih_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return cik_ih_hw_init(adev);
+       return cik_ih_hw_init(ip_block);
 }
 
 static bool cik_ih_is_idle(void *handle)
index a37d2d00b83b2f0052b6a05db64219b8191f6737..96744060b51ed560359a7325d3d9e929edb39225 100644 (file)
@@ -989,10 +989,10 @@ static int cik_sdma_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int cik_sdma_hw_init(void *handle)
+static int cik_sdma_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        r = cik_sdma_start(adev);
        if (r)
@@ -1020,11 +1020,9 @@ static int cik_sdma_suspend(struct amdgpu_ip_block *ip_block)
 
 static int cik_sdma_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
        cik_sdma_soft_reset(ip_block);
 
-       return cik_sdma_hw_init(adev);
+       return cik_sdma_hw_init(ip_block);
 }
 
 static bool cik_sdma_is_idle(void *handle)
index 4ae8156fe691882d5091c243517e6d1bd7a2a9f6..d14af4538ef1b4a6f5d3443c053c0afebe45f18e 100644 (file)
@@ -312,10 +312,10 @@ static int cz_ih_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int cz_ih_hw_init(void *handle)
+static int cz_ih_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        r = cz_ih_irq_init(adev);
        if (r)
@@ -342,9 +342,7 @@ static int cz_ih_suspend(struct amdgpu_ip_block *ip_block)
 
 static int cz_ih_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return cz_ih_hw_init(adev);
+       return cz_ih_hw_init(ip_block);
 }
 
 static bool cz_ih_is_idle(void *handle)
index c630c877cb9ef477372eaefac1da6b98e540ff7d..111c03f07155699549338768ae21fb9926431e42 100644 (file)
@@ -2862,10 +2862,10 @@ static int dce_v10_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int dce_v10_0_hw_init(void *handle)
+static int dce_v10_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int i;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        dce_v10_0_init_golden_registers(adev);
 
@@ -2928,7 +2928,7 @@ static int dce_v10_0_resume(struct amdgpu_ip_block *ip_block)
        amdgpu_atombios_encoder_set_backlight_level_to_reg(adev,
                                                           adev->mode_info.bl_level);
 
-       ret = dce_v10_0_hw_init(adev);
+       ret = dce_v10_0_hw_init(ip_block);
 
        /* turn on the BL */
        if (adev->mode_info.bl_encoder) {
index a8867fc701b8b02e42f51196c2bbff2cbb6ec048..4d030716eb00de8a1fb9ad48f6fe8d2fb3ee6fd4 100644 (file)
@@ -2989,10 +2989,10 @@ static int dce_v11_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int dce_v11_0_hw_init(void *handle)
+static int dce_v11_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int i;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        dce_v11_0_init_golden_registers(adev);
 
@@ -3066,7 +3066,7 @@ static int dce_v11_0_resume(struct amdgpu_ip_block *ip_block)
        amdgpu_atombios_encoder_set_backlight_level_to_reg(adev,
                                                           adev->mode_info.bl_level);
 
-       ret = dce_v11_0_hw_init(adev);
+       ret = dce_v11_0_hw_init(ip_block);
 
        /* turn on the BL */
        if (adev->mode_info.bl_encoder) {
index 9b2bb2185305e9b6cb73ca172ca3b788114f972d..d333e4f834d1f1a540fe547a54737d22215ee570 100644 (file)
@@ -2760,10 +2760,10 @@ static int dce_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int dce_v6_0_hw_init(void *handle)
+static int dce_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int i;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* disable vga render */
        dce_v6_0_set_vga_render_state(adev, false);
@@ -2823,7 +2823,7 @@ static int dce_v6_0_resume(struct amdgpu_ip_block *ip_block)
        amdgpu_atombios_encoder_set_backlight_level_to_reg(adev,
                                                           adev->mode_info.bl_level);
 
-       ret = dce_v6_0_hw_init(adev);
+       ret = dce_v6_0_hw_init(ip_block);
 
        /* turn on the BL */
        if (adev->mode_info.bl_encoder) {
index d834d7b17a0dc8c1b8f55b2074ad2069836a771f..166fd991bfbaf972c26e54c2455bf5c06d54a61c 100644 (file)
@@ -2782,10 +2782,10 @@ static int dce_v8_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int dce_v8_0_hw_init(void *handle)
+static int dce_v8_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int i;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* disable vga render */
        dce_v8_0_set_vga_render_state(adev, false);
@@ -2846,7 +2846,7 @@ static int dce_v8_0_resume(struct amdgpu_ip_block *ip_block)
        amdgpu_atombios_encoder_set_backlight_level_to_reg(adev,
                                                           adev->mode_info.bl_level);
 
-       ret = dce_v8_0_hw_init(adev);
+       ret = dce_v8_0_hw_init(ip_block);
 
        /* turn on the BL */
        if (adev->mode_info.bl_encoder) {
index c7a5ae5be35bbe914ab3197cc3c81a376593a78c..e00ff7b624031dc788b0fd9e29f96a2dc33cebd7 100644 (file)
@@ -7366,10 +7366,10 @@ static void gfx_v10_0_disable_gpa_mode(struct amdgpu_device *adev)
        WREG32_SOC15(GC, 0, mmCPG_PSP_DEBUG, data);
 }
 
-static int gfx_v10_0_hw_init(void *handle)
+static int gfx_v10_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (!amdgpu_emu_mode)
                gfx_v10_0_init_golden_registers(adev);
@@ -7465,7 +7465,7 @@ static int gfx_v10_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int gfx_v10_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       return gfx_v10_0_hw_init(ip_block->adev);
+       return gfx_v10_0_hw_init(ip_block);
 }
 
 static bool gfx_v10_0_is_idle(void *handle)
index 6d068154c13362174ca88c19cf10ffa6af9d7136..601e3a3e31e632115614de5cd394bbd6713e8da6 100644 (file)
@@ -4570,10 +4570,10 @@ static void gfx_v11_0_disable_gpa_mode(struct amdgpu_device *adev)
        WREG32_SOC15(GC, 0, regCPG_PSP_DEBUG, data);
 }
 
-static int gfx_v11_0_hw_init(void *handle)
+static int gfx_v11_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (adev->firmware.load_type == AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO) {
                if (adev->gfx.imu.funcs) {
@@ -4714,7 +4714,7 @@ static int gfx_v11_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int gfx_v11_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       return gfx_v11_0_hw_init(ip_block->adev);
+       return gfx_v11_0_hw_init(ip_block);
 }
 
 static bool gfx_v11_0_is_idle(void *handle)
index 0bae09bec1bcc4b7021e83b60ed26c983e02fe24..68f90aab45d97003fc99fcf04758db1ed76756dc 100644 (file)
@@ -3513,10 +3513,10 @@ static void gfx_v12_0_init_golden_registers(struct amdgpu_device *adev)
        }
 }
 
-static int gfx_v12_0_hw_init(void *handle)
+static int gfx_v12_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (adev->firmware.load_type == AMDGPU_FW_LOAD_RLC_BACKDOOR_AUTO) {
                if (adev->gfx.imu.funcs && (amdgpu_dpm > 0)) {
@@ -3652,7 +3652,7 @@ static int gfx_v12_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int gfx_v12_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       return gfx_v12_0_hw_init(ip_block->adev);
+       return gfx_v12_0_hw_init(ip_block);
 }
 
 static bool gfx_v12_0_is_idle(void *handle)
index 57ddc0051648d23ea26e7d5cabd8ec475ccd2f12..bf3efe6bc4bf1b90b80ad7dc7b73d1d4746e80e5 100644 (file)
@@ -3122,10 +3122,10 @@ static int gfx_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int gfx_v6_0_hw_init(void *handle)
+static int gfx_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gfx_v6_0_constants_init(adev);
 
@@ -3162,9 +3162,7 @@ static int gfx_v6_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int gfx_v6_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return gfx_v6_0_hw_init(adev);
+       return gfx_v6_0_hw_init(ip_block);
 }
 
 static bool gfx_v6_0_is_idle(void *handle)
index 09a0dcd59dd14ba4241c577c74232aa2f08564d5..71a98a538b3736763deaef9ca1b4abda5f61394a 100644 (file)
@@ -4465,10 +4465,10 @@ static int gfx_v7_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int gfx_v7_0_hw_init(void *handle)
+static int gfx_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gfx_v7_0_constants_init(adev);
 
@@ -4508,9 +4508,7 @@ static int gfx_v7_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int gfx_v7_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return gfx_v7_0_hw_init(adev);
+       return gfx_v7_0_hw_init(ip_block);
 }
 
 static bool gfx_v7_0_is_idle(void *handle)
index 6602d7ddd16c6c1b25dc63972a823edf5969d023..b924e8947f3b17c2b0d769270f877318fd671a8c 100644 (file)
@@ -4783,10 +4783,10 @@ static void gfx_v8_0_cp_enable(struct amdgpu_device *adev, bool enable)
        gfx_v8_0_cp_compute_enable(adev, enable);
 }
 
-static int gfx_v8_0_hw_init(void *handle)
+static int gfx_v8_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gfx_v8_0_init_golden_registers(adev);
        gfx_v8_0_constants_init(adev);
@@ -4926,7 +4926,7 @@ static int gfx_v8_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int gfx_v8_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       return gfx_v8_0_hw_init(ip_block->adev);
+       return gfx_v8_0_hw_init(ip_block);
 }
 
 static bool gfx_v8_0_check_soft_reset(struct amdgpu_ip_block *ip_block)
index 4e677753765c34213e3190a8afe9afe801cf90a8..ba601e2a27d4507f25543b4ca6c664d79a058dcb 100644 (file)
@@ -3993,10 +3993,10 @@ static void gfx_v9_0_cp_enable(struct amdgpu_device *adev, bool enable)
        gfx_v9_0_cp_compute_enable(adev, enable);
 }
 
-static int gfx_v9_0_hw_init(void *handle)
+static int gfx_v9_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        amdgpu_gfx_cleaner_shader_init(adev, adev->gfx.cleaner_shader_size,
                                       adev->gfx.cleaner_shader_ptr);
@@ -4083,7 +4083,7 @@ static int gfx_v9_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int gfx_v9_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       return gfx_v9_0_hw_init(ip_block->adev);
+       return gfx_v9_0_hw_init(ip_block);
 }
 
 static bool gfx_v9_0_is_idle(void *handle)
index ac53c6a1b8496abba83ca8e2dbf51930a9ea3006..fe6df1723013323f48aa400e09066687407708bd 100644 (file)
@@ -2345,10 +2345,10 @@ static void gfx_v9_4_3_xcc_fini(struct amdgpu_device *adev, int xcc_id)
        gfx_v9_4_3_xcc_cp_compute_enable(adev, false, xcc_id);
 }
 
-static int gfx_v9_4_3_hw_init(void *handle)
+static int gfx_v9_4_3_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        amdgpu_gfx_cleaner_shader_init(adev, adev->gfx.cleaner_shader_size,
                                       adev->gfx.cleaner_shader_ptr);
@@ -2395,7 +2395,7 @@ static int gfx_v9_4_3_suspend(struct amdgpu_ip_block *ip_block)
 
 static int gfx_v9_4_3_resume(struct amdgpu_ip_block *ip_block)
 {
-       return gfx_v9_4_3_hw_init(ip_block->adev);
+       return gfx_v9_4_3_hw_init(ip_block);
 }
 
 static bool gfx_v9_4_3_is_idle(void *handle)
index c8fe545bf10e0312636841351586240756323148..80e724397d5bb97e0185fec40b118df6f14158ca 100644 (file)
@@ -985,9 +985,9 @@ static int gmc_v10_0_gart_enable(struct amdgpu_device *adev)
        return 0;
 }
 
-static int gmc_v10_0_hw_init(void *handle)
+static int gmc_v10_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
        adev->gmc.flush_pasid_uses_kiq = !amdgpu_emu_mode;
@@ -1065,13 +1065,12 @@ static int gmc_v10_0_suspend(struct amdgpu_ip_block *ip_block)
 static int gmc_v10_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = gmc_v10_0_hw_init(adev);
+       r = gmc_v10_0_hw_init(ip_block);
        if (r)
                return r;
 
-       amdgpu_vmid_reset_all(adev);
+       amdgpu_vmid_reset_all(ip_block->adev);
 
        return 0;
 }
index 68d3be40a6cbc67e2248b0c308e8f83fec0189c7..c8e7e0162505e6acff05cc4cd92b7e5757533393 100644 (file)
@@ -908,9 +908,9 @@ static int gmc_v11_0_gart_enable(struct amdgpu_device *adev)
        return 0;
 }
 
-static int gmc_v11_0_hw_init(void *handle)
+static int gmc_v11_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
        adev->gmc.flush_pasid_uses_kiq = !amdgpu_emu_mode;
@@ -973,13 +973,12 @@ static int gmc_v11_0_suspend(struct amdgpu_ip_block *ip_block)
 static int gmc_v11_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = gmc_v11_0_hw_init(adev);
+       r = gmc_v11_0_hw_init(ip_block);
        if (r)
                return r;
 
-       amdgpu_vmid_reset_all(adev);
+       amdgpu_vmid_reset_all(ip_block->adev);
 
        return 0;
 }
index ce56f6c35932fbcda952fcf894a19b9f255b4496..7e3366253d319bb9fffa3d8630c5be4411388492 100644 (file)
@@ -894,10 +894,10 @@ static int gmc_v12_0_gart_enable(struct amdgpu_device *adev)
        return 0;
 }
 
-static int gmc_v12_0_hw_init(void *handle)
+static int gmc_v12_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* The sequence of these two function calls matters.*/
        gmc_v12_0_init_golden_registers(adev);
@@ -957,13 +957,12 @@ static int gmc_v12_0_suspend(struct amdgpu_ip_block *ip_block)
 static int gmc_v12_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = gmc_v12_0_hw_init(adev);
+       r = gmc_v12_0_hw_init(ip_block);
        if (r)
                return r;
 
-       amdgpu_vmid_reset_all(adev);
+       amdgpu_vmid_reset_all(ip_block->adev);
 
        return 0;
 }
index c743e004317ea9b4ea6ad1a229937bad34bee903..bdbf47a98dec325bec475a0956d21f6bfedb451c 100644 (file)
@@ -900,10 +900,10 @@ static int gmc_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int gmc_v6_0_hw_init(void *handle)
+static int gmc_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gmc_v6_0_mc_program(adev);
 
@@ -949,7 +949,7 @@ static int gmc_v6_0_resume(struct amdgpu_ip_block *ip_block)
        int r;
        struct amdgpu_device *adev = ip_block->adev;
 
-       r = gmc_v6_0_hw_init(adev);
+       r = gmc_v6_0_hw_init(ip_block);
        if (r)
                return r;
 
index 3e75804edc7e0e6bdacfd6a29c82db42932b1a75..82959be636d0f7ab4e535dbd34487886151a268e 100644 (file)
@@ -1074,10 +1074,10 @@ static int gmc_v7_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int gmc_v7_0_hw_init(void *handle)
+static int gmc_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gmc_v7_0_init_golden_registers(adev);
 
@@ -1123,13 +1123,12 @@ static int gmc_v7_0_suspend(struct amdgpu_ip_block *ip_block)
 static int gmc_v7_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = gmc_v7_0_hw_init(adev);
+       r = gmc_v7_0_hw_init(ip_block);
        if (r)
                return r;
 
-       amdgpu_vmid_reset_all(adev);
+       amdgpu_vmid_reset_all(ip_block->adev);
 
        return 0;
 }
index 787c2a485ea8c82ecd5ed02dd95c1cd6c449b60b..f56e7024b6dd0ea6924d991f392d4a825b6fb54d 100644 (file)
@@ -1197,10 +1197,10 @@ static int gmc_v8_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int gmc_v8_0_hw_init(void *handle)
+static int gmc_v8_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gmc_v8_0_init_golden_registers(adev);
 
@@ -1254,13 +1254,12 @@ static int gmc_v8_0_suspend(struct amdgpu_ip_block *ip_block)
 static int gmc_v8_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = gmc_v8_0_hw_init(adev);
+       r = gmc_v8_0_hw_init(ip_block);
        if (r)
                return r;
 
-       amdgpu_vmid_reset_all(adev);
+       amdgpu_vmid_reset_all(ip_block->adev);
 
        return 0;
 }
index 145db9472ed9128841156d74bc6f18689aa537f0..507952da94a51bedcc1ca77d549436ea9b0d76d3 100644 (file)
@@ -2308,9 +2308,9 @@ static int gmc_v9_0_gart_enable(struct amdgpu_device *adev)
        return 0;
 }
 
-static int gmc_v9_0_hw_init(void *handle)
+static int gmc_v9_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        bool value;
        int i, r;
 
@@ -2438,13 +2438,12 @@ static int gmc_v9_0_suspend(struct amdgpu_ip_block *ip_block)
 static int gmc_v9_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = gmc_v9_0_hw_init(adev);
+       r = gmc_v9_0_hw_init(ip_block);
        if (r)
                return r;
 
-       amdgpu_vmid_reset_all(adev);
+       amdgpu_vmid_reset_all(ip_block->adev);
 
        return 0;
 }
index bd6a1dc39a565d908c8bf32ea12b2f3de9e4432d..9d37b93c8fd81cc790e6acfacbfa86524d9524df 100644 (file)
@@ -311,9 +311,9 @@ static int iceland_ih_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int iceland_ih_hw_init(void *handle)
+static int iceland_ih_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        return iceland_ih_irq_init(adev);
 }
@@ -336,9 +336,7 @@ static int iceland_ih_suspend(struct amdgpu_ip_block *ip_block)
 
 static int iceland_ih_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return iceland_ih_hw_init(adev);
+       return iceland_ih_hw_init(ip_block);
 }
 
 static bool iceland_ih_is_idle(void *handle)
index 73c04e7acd30b2e269cd808ae013614e0a299ed2..0c0b7764cd8e97ff3bc0f141e3b48ee2b47fcaba 100644 (file)
@@ -623,10 +623,10 @@ static int ih_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int ih_v6_0_hw_init(void *handle)
+static int ih_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        r = ih_v6_0_irq_init(adev);
        if (r)
@@ -653,9 +653,7 @@ static int ih_v6_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int ih_v6_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return ih_v6_0_hw_init(adev);
+       return ih_v6_0_hw_init(ip_block);
 }
 
 static bool ih_v6_0_is_idle(void *handle)
index 7938852602185bf2e57e9afe9e3517bc7eae2804..0b2db6e493fd337b1536b65d245ea3247501fdbf 100644 (file)
@@ -602,10 +602,10 @@ static int ih_v6_1_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int ih_v6_1_hw_init(void *handle)
+static int ih_v6_1_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        r = ih_v6_1_irq_init(adev);
        if (r)
@@ -632,9 +632,7 @@ static int ih_v6_1_suspend(struct amdgpu_ip_block *ip_block)
 
 static int ih_v6_1_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return ih_v6_1_hw_init(adev);
+       return ih_v6_1_hw_init(ip_block);
 }
 
 static bool ih_v6_1_is_idle(void *handle)
index 20944345b48fa3e05e4477d165288dad800b961c..da708cdecbbef9657769522a6a92e82f76fd7c3b 100644 (file)
@@ -592,10 +592,10 @@ static int ih_v7_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int ih_v7_0_hw_init(void *handle)
+static int ih_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        r = ih_v7_0_irq_init(adev);
        if (r)
@@ -622,9 +622,7 @@ static int ih_v7_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int ih_v7_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return ih_v7_0_hw_init(adev);
+       return ih_v7_0_hw_init(ip_block);
 }
 
 static bool ih_v7_0_is_idle(void *handle)
index 46fdde0f5c1bfa6d46f578799e17a12f5e5ebb82..2829616894e7318e07b1ff3b9fccd2fb88c92753 100644 (file)
@@ -128,9 +128,9 @@ static int jpeg_v2_0_sw_fini(struct amdgpu_ip_block *ip_block)
  * @handle: amdgpu_device pointer
  *
  */
-static int jpeg_v2_0_hw_init(void *handle)
+static int jpeg_v2_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring = adev->jpeg.inst->ring_dec;
 
        adev->nbio.funcs->vcn_doorbell_range(adev, ring->use_doorbell,
@@ -190,13 +190,12 @@ static int jpeg_v2_0_suspend(struct amdgpu_ip_block *ip_block)
 static int jpeg_v2_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_jpeg_resume(adev);
+       r = amdgpu_jpeg_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = jpeg_v2_0_hw_init(adev);
+       r = jpeg_v2_0_hw_init(ip_block);
 
        return r;
 }
index 4ff6ee91ec5b320f59bae40b9288146078f2aca4..352816caa3e07032d6e3d693db8953d2f1006936 100644 (file)
@@ -177,9 +177,9 @@ static int jpeg_v2_5_sw_fini(struct amdgpu_ip_block *ip_block)
  * @handle: amdgpu_device pointer
  *
  */
-static int jpeg_v2_5_hw_init(void *handle)
+static int jpeg_v2_5_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring;
        int i, r;
 
@@ -258,14 +258,13 @@ static int jpeg_v2_5_suspend(struct amdgpu_ip_block *ip_block)
  */
 static int jpeg_v2_5_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = amdgpu_jpeg_resume(adev);
+       r = amdgpu_jpeg_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = jpeg_v2_5_hw_init(adev);
+       r = jpeg_v2_5_hw_init(ip_block);
 
        return r;
 }
index 173db8d4c0885dba8279b150b15152737a04b20a..ccd1093d5bb26a9f6ed16fa01f0eb6397536c35b 100644 (file)
@@ -142,9 +142,9 @@ static int jpeg_v3_0_sw_fini(struct amdgpu_ip_block *ip_block)
  * @handle: amdgpu_device pointer
  *
  */
-static int jpeg_v3_0_hw_init(void *handle)
+static int jpeg_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring = adev->jpeg.inst->ring_dec;
 
        adev->nbio.funcs->vcn_doorbell_range(adev, ring->use_doorbell,
@@ -203,14 +203,13 @@ static int jpeg_v3_0_suspend(struct amdgpu_ip_block *ip_block)
  */
 static int jpeg_v3_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = amdgpu_jpeg_resume(adev);
+       r = amdgpu_jpeg_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = jpeg_v3_0_hw_init(adev);
+       r = jpeg_v3_0_hw_init(ip_block);
 
        return r;
 }
index 02142b4576fb2109f8a422f314a0a79009e0aca1..2dfdefb4db40be3075c2f6b92ca87f2fcf6ad848 100644 (file)
@@ -154,9 +154,9 @@ static int jpeg_v4_0_sw_fini(struct amdgpu_ip_block *ip_block)
  * @handle: amdgpu_device pointer
  *
  */
-static int jpeg_v4_0_hw_init(void *handle)
+static int jpeg_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring = adev->jpeg.inst->ring_dec;
        int r;
 
@@ -237,14 +237,13 @@ static int jpeg_v4_0_suspend(struct amdgpu_ip_block *ip_block)
  */
 static int jpeg_v4_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = amdgpu_jpeg_resume(adev);
+       r = amdgpu_jpeg_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = jpeg_v4_0_hw_init(adev);
+       r = jpeg_v4_0_hw_init(ip_block);
 
        return r;
 }
index 637b47ae3f45722ecca76ac97467f783ba8f7de1..abb9f8953c7c1dae453fe077ced934980d8387bd 100644 (file)
@@ -302,9 +302,9 @@ static int jpeg_v4_0_3_start_sriov(struct amdgpu_device *adev)
  * @handle: amdgpu_device pointer
  *
  */
-static int jpeg_v4_0_3_hw_init(void *handle)
+static int jpeg_v4_0_3_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring;
        int i, j, r, jpeg_inst;
 
@@ -407,14 +407,13 @@ static int jpeg_v4_0_3_suspend(struct amdgpu_ip_block *ip_block)
  */
 static int jpeg_v4_0_3_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = amdgpu_jpeg_resume(adev);
+       r = amdgpu_jpeg_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = jpeg_v4_0_3_hw_init(adev);
+       r = jpeg_v4_0_3_hw_init(ip_block);
 
        return r;
 }
index 929fdaa72bdc64fc0e822b52cf8206b35d67e473..7412d2d43bd448a7f74296b482cec056276360e1 100644 (file)
@@ -183,9 +183,9 @@ static int jpeg_v4_0_5_sw_fini(struct amdgpu_ip_block *ip_block)
  * @handle: amdgpu_device pointer
  *
  */
-static int jpeg_v4_0_5_hw_init(void *handle)
+static int jpeg_v4_0_5_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring;
        int i, r = 0;
 
@@ -264,14 +264,13 @@ static int jpeg_v4_0_5_suspend(struct amdgpu_ip_block *ip_block)
  */
 static int jpeg_v4_0_5_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = amdgpu_jpeg_resume(adev);
+       r = amdgpu_jpeg_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = jpeg_v4_0_5_hw_init(adev);
+       r = jpeg_v4_0_5_hw_init(ip_block);
 
        return r;
 }
index 6740a704b11c2158a1f31365e7f53be347b46093..0c1749f6c4a3c0ca2ba700c6dfd6c6f61836c441 100644 (file)
@@ -130,9 +130,9 @@ static int jpeg_v5_0_0_sw_fini(struct amdgpu_ip_block *ip_block)
  * @handle: amdgpu_device pointer
  *
  */
-static int jpeg_v5_0_0_hw_init(void *handle)
+static int jpeg_v5_0_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring = adev->jpeg.inst->ring_dec;
        int r;
 
@@ -200,14 +200,13 @@ static int jpeg_v5_0_0_suspend(struct amdgpu_ip_block *ip_block)
  */
 static int jpeg_v5_0_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = amdgpu_jpeg_resume(adev);
+       r = amdgpu_jpeg_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = jpeg_v5_0_0_hw_init(adev);
+       r = jpeg_v5_0_0_hw_init(ip_block);
 
        return r;
 }
index fc5498b2c4fc43f8650c964992d9029738c10afb..b74afd94146250b489b28b94c6468ecb59f5b75d 100644 (file)
@@ -55,7 +55,7 @@ MODULE_FIRMWARE("amdgpu/gc_11_5_1_mes1.bin");
 MODULE_FIRMWARE("amdgpu/gc_11_5_2_mes_2.bin");
 MODULE_FIRMWARE("amdgpu/gc_11_5_2_mes1.bin");
 
-static int mes_v11_0_hw_init(void *handle);
+static int mes_v11_0_hw_init(struct amdgpu_ip_block *ip_block);
 static int mes_v11_0_hw_fini(void *handle);
 static int mes_v11_0_kiq_hw_init(struct amdgpu_device *adev);
 static int mes_v11_0_kiq_hw_fini(struct amdgpu_device *adev);
@@ -1498,6 +1498,7 @@ static void mes_v11_0_kiq_clear(struct amdgpu_device *adev)
 static int mes_v11_0_kiq_hw_init(struct amdgpu_device *adev)
 {
        int r = 0;
+       struct amdgpu_ip_block *ip_block;
 
        if (adev->firmware.load_type == AMDGPU_FW_LOAD_DIRECT) {
 
@@ -1531,7 +1532,13 @@ static int mes_v11_0_kiq_hw_init(struct amdgpu_device *adev)
                adev->mes.enable_legacy_queue_map = false;
 
        if (adev->mes.enable_legacy_queue_map) {
-               r = mes_v11_0_hw_init(adev);
+               ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_MES);
+               if (unlikely(!ip_block)) {
+                       dev_err(adev->dev, "Failed to get MES handle\n");
+                       return -EINVAL;
+               }
+
+               r = mes_v11_0_hw_init(ip_block);
                if (r)
                        goto failure;
        }
@@ -1560,10 +1567,10 @@ static int mes_v11_0_kiq_hw_fini(struct amdgpu_device *adev)
        return 0;
 }
 
-static int mes_v11_0_hw_init(void *handle)
+static int mes_v11_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (adev->mes.ring[0].sched.ready)
                goto out;
@@ -1644,13 +1651,12 @@ static int mes_v11_0_suspend(struct amdgpu_ip_block *ip_block)
 static int mes_v11_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = mes_v11_0_hw_init(adev);
+       r = mes_v11_0_hw_init(ip_block);
        if (r)
                return r;
 
-       return amdgpu_mes_resume(adev);
+       return amdgpu_mes_resume(ip_block->adev);
 }
 
 static int mes_v11_0_early_init(struct amdgpu_ip_block *ip_block)
index 5b928315dab96ef52e48e01a9f8771369bfbddc2..a7687822223bbaf9ee4c1a8e2efd67afff05abff 100644 (file)
@@ -39,7 +39,7 @@ MODULE_FIRMWARE("amdgpu/gc_12_0_1_mes.bin");
 MODULE_FIRMWARE("amdgpu/gc_12_0_1_mes1.bin");
 MODULE_FIRMWARE("amdgpu/gc_12_0_1_uni_mes.bin");
 
-static int mes_v12_0_hw_init(void *handle);
+static int mes_v12_0_hw_init(struct amdgpu_ip_block *ip_block);
 static int mes_v12_0_hw_fini(void *handle);
 static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev);
 static int mes_v12_0_kiq_hw_fini(struct amdgpu_device *adev);
@@ -1452,6 +1452,7 @@ static void mes_v12_0_kiq_setting(struct amdgpu_ring *ring)
 static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev)
 {
        int r = 0;
+       struct amdgpu_ip_block *ip_block;
 
        if (adev->enable_uni_mes)
                mes_v12_0_kiq_setting(&adev->mes.ring[AMDGPU_MES_KIQ_PIPE]);
@@ -1492,7 +1493,13 @@ static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev)
        }
 
        if (adev->mes.enable_legacy_queue_map) {
-               r = mes_v12_0_hw_init(adev);
+               ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_MES);
+               if (unlikely(!ip_block)) {
+                       dev_err(adev->dev, "Failed to get MES handle\n");
+                       return -EINVAL;
+               }
+
+               r = mes_v12_0_hw_init(ip_block);
                if (r)
                        goto failure;
        }
@@ -1522,10 +1529,10 @@ static int mes_v12_0_kiq_hw_fini(struct amdgpu_device *adev)
        return 0;
 }
 
-static int mes_v12_0_hw_init(void *handle)
+static int mes_v12_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (adev->mes.ring[0].sched.ready)
                goto out;
@@ -1608,13 +1615,12 @@ static int mes_v12_0_suspend(struct amdgpu_ip_block *ip_block)
 static int mes_v12_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = mes_v12_0_hw_init(adev);
+       r = mes_v12_0_hw_init(ip_block);
        if (r)
                return r;
 
-       return amdgpu_mes_resume(adev);
+       return amdgpu_mes_resume(ip_block->adev);
 }
 
 static int mes_v12_0_early_init(struct amdgpu_ip_block *ip_block)
index 7d919e65c0768895ae40fe7e8e0c0d87e9882481..0d744b3d4bb48af9e6a8e62f408f1550586cffed 100644 (file)
@@ -602,9 +602,9 @@ static int navi10_ih_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int navi10_ih_hw_init(void *handle)
+static int navi10_ih_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        return navi10_ih_irq_init(adev);
 }
@@ -627,9 +627,7 @@ static int navi10_ih_suspend(struct amdgpu_ip_block *ip_block)
 
 static int navi10_ih_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return navi10_ih_hw_init(adev);
+       return navi10_ih_hw_init(ip_block);
 }
 
 static bool navi10_ih_is_idle(void *handle)
index a8f5a951486d2caa1e19d79114906b2a6c4dbea3..4b1085e2bfdda28657d1cf3342115b14149f6a18 100644 (file)
@@ -988,9 +988,9 @@ static int nv_common_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int nv_common_hw_init(void *handle)
+static int nv_common_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (adev->nbio.funcs->apply_lc_spc_mode_wa)
                adev->nbio.funcs->apply_lc_spc_mode_wa(adev);
@@ -1038,9 +1038,7 @@ static int nv_common_suspend(struct amdgpu_ip_block *ip_block)
 
 static int nv_common_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return nv_common_hw_init(adev);
+       return nv_common_hw_init(ip_block);
 }
 
 static bool nv_common_is_idle(void *handle)
index e3aa09ab3eac3f9bb178e9e7a7fddc0c5695d8b0..2d41c74c73bd3c1bdcc240091eb9712b68cf6350 100644 (file)
@@ -878,10 +878,10 @@ static int sdma_v2_4_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int sdma_v2_4_hw_init(void *handle)
+static int sdma_v2_4_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        sdma_v2_4_init_golden_registers(adev);
 
@@ -910,9 +910,7 @@ static int sdma_v2_4_suspend(struct amdgpu_ip_block *ip_block)
 
 static int sdma_v2_4_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v2_4_hw_init(adev);
+       return sdma_v2_4_hw_init(ip_block);
 }
 
 static bool sdma_v2_4_is_idle(void *handle)
index 232fb36854e8aee2b54ecd1313e6a0bca781088a..03333107c2e9eda3274691ab1af4ed7d13b3e1fe 100644 (file)
@@ -1164,10 +1164,10 @@ static int sdma_v3_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int sdma_v3_0_hw_init(void *handle)
+static int sdma_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        sdma_v3_0_init_golden_registers(adev);
 
@@ -1197,9 +1197,7 @@ static int sdma_v3_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int sdma_v3_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v3_0_hw_init(adev);
+       return sdma_v3_0_hw_init(ip_block);
 }
 
 static bool sdma_v3_0_is_idle(void *handle)
index de6ff564366571addae7e851a36220ab6cf284d1..7f5ca95b5fcf2c053ae9d7b7604cda0244d0489d 100644 (file)
@@ -1951,9 +1951,9 @@ static int sdma_v4_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int sdma_v4_0_hw_init(void *handle)
+static int sdma_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (adev->flags & AMD_IS_APU)
                amdgpu_dpm_set_powergating_by_smu(adev, AMD_IP_BLOCK_TYPE_SDMA, false);
@@ -2012,7 +2012,7 @@ static int sdma_v4_0_resume(struct amdgpu_ip_block *ip_block)
                return 0;
        }
 
-       return sdma_v4_0_hw_init(adev);
+       return sdma_v4_0_hw_init(ip_block);
 }
 
 static bool sdma_v4_0_is_idle(void *handle)
index 551b4bb976b0c418d050b78663e7a0fda4bf06ab..f4ab26998a51d5060e6da36d9a3fc1ba04956a04 100644 (file)
@@ -1467,10 +1467,10 @@ static int sdma_v4_4_2_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int sdma_v4_4_2_hw_init(void *handle)
+static int sdma_v4_4_2_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        uint32_t inst_mask;
 
        inst_mask = GENMASK(adev->sdma.num_instances - 1, 0);
@@ -1520,9 +1520,7 @@ static int sdma_v4_4_2_suspend(struct amdgpu_ip_block *ip_block)
 
 static int sdma_v4_4_2_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v4_4_2_hw_init(adev);
+       return sdma_v4_4_2_hw_init(ip_block);
 }
 
 static bool sdma_v4_4_2_is_idle(void *handle)
index b93745202c60409cdef84935154e79f2d8de9949..68eb1fd986dd0d368fade6193d2da2d260a9c0ad 100644 (file)
@@ -1477,10 +1477,10 @@ static int sdma_v5_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int sdma_v5_0_hw_init(void *handle)
+static int sdma_v5_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        sdma_v5_0_init_golden_registers(adev);
 
@@ -1511,9 +1511,7 @@ static int sdma_v5_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int sdma_v5_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v5_0_hw_init(adev);
+       return sdma_v5_0_hw_init(ip_block);
 }
 
 static bool sdma_v5_0_is_idle(void *handle)
index 25f58e6476794e54e6fa688b4fce23f6f4302d15..e2eaa2425a7217c6d6547de226a6e12073458d92 100644 (file)
@@ -1382,9 +1382,9 @@ static int sdma_v5_2_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int sdma_v5_2_hw_init(void *handle)
+static int sdma_v5_2_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        return sdma_v5_2_start(adev);
 }
@@ -1411,9 +1411,7 @@ static int sdma_v5_2_suspend(struct amdgpu_ip_block *ip_block)
 
 static int sdma_v5_2_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v5_2_hw_init(adev);
+       return sdma_v5_2_hw_init(ip_block);
 }
 
 static bool sdma_v5_2_is_idle(void *handle)
index 9884deaadc94b3dc2d1cb1a57fd4f20a22d75399..9ab045552109e4000e8f41772858808a6466225c 100644 (file)
@@ -1380,9 +1380,9 @@ static int sdma_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int sdma_v6_0_hw_init(void *handle)
+static int sdma_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        return sdma_v6_0_start(adev);
 }
@@ -1409,9 +1409,7 @@ static int sdma_v6_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int sdma_v6_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v6_0_hw_init(adev);
+       return sdma_v6_0_hw_init(ip_block);
 }
 
 static bool sdma_v6_0_is_idle(void *handle)
index 57b7b166aad68dea182c81d2c619939878e04c47..4e2919bd15dfc7fcb21f1524515076e0be73d1db 100644 (file)
@@ -1338,9 +1338,9 @@ static int sdma_v7_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int sdma_v7_0_hw_init(void *handle)
+static int sdma_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        return sdma_v7_0_start(adev);
 }
@@ -1367,9 +1367,7 @@ static int sdma_v7_0_suspend(struct amdgpu_ip_block *ip_block)
 
 static int sdma_v7_0_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v7_0_hw_init(adev);
+       return sdma_v7_0_hw_init(ip_block);
 }
 
 static bool sdma_v7_0_is_idle(void *handle)
index 0fc30384349374e26bb2ee767e6f7a1733894364..8b0cad1dfad6770e277bcc2e3cb579d9d76d4a83 100644 (file)
@@ -2633,9 +2633,9 @@ static void si_fix_pci_max_read_req_size(struct amdgpu_device *adev)
                pcie_set_readrq(adev->pdev, 512);
 }
 
-static int si_common_hw_init(void *handle)
+static int si_common_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        si_fix_pci_max_read_req_size(adev);
        si_init_golden_registers(adev);
@@ -2659,9 +2659,7 @@ static int si_common_suspend(struct amdgpu_ip_block *ip_block)
 
 static int si_common_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return si_common_hw_init(adev);
+       return si_common_hw_init(ip_block);
 }
 
 static bool si_common_is_idle(void *handle)
index 77722ea6fc219b1062e2015a941f2f90c5f96fb1..68e7572b4a901cfd6cc4969f88f3ece8c84ade8d 100644 (file)
@@ -517,9 +517,9 @@ static int si_dma_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int si_dma_hw_init(void *handle)
+static int si_dma_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        return si_dma_start(adev);
 }
@@ -542,9 +542,7 @@ static int si_dma_suspend(struct amdgpu_ip_block *ip_block)
 
 static int si_dma_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return si_dma_hw_init(adev);
+       return si_dma_hw_init(ip_block);
 }
 
 static bool si_dma_is_idle(void *handle)
index 7976702f500e284a9e5712ddd6335f6778296575..413a4cd35fe4c2b42da17cbaf1f3b720b598f348 100644 (file)
@@ -186,9 +186,9 @@ static int si_ih_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int si_ih_hw_init(void *handle)
+static int si_ih_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        return si_ih_irq_init(adev);
 }
@@ -211,9 +211,7 @@ static int si_ih_suspend(struct amdgpu_ip_block *ip_block)
 
 static int si_ih_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return si_ih_hw_init(adev);
+       return si_ih_hw_init(ip_block);
 }
 
 static bool si_ih_is_idle(void *handle)
index b17f70b85e7769c0da3a09aa517e3cd80e882bd5..d2a74da44a3bdc27485be387da01c510af1b7122 100644 (file)
@@ -1255,9 +1255,9 @@ static void soc15_sdma_doorbell_range_init(struct amdgpu_device *adev)
        }
 }
 
-static int soc15_common_hw_init(void *handle)
+static int soc15_common_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* enable aspm */
        soc15_program_aspm(adev);
@@ -1333,7 +1333,7 @@ static int soc15_common_resume(struct amdgpu_ip_block *ip_block)
                dev_info(adev->dev, "S3 suspend abort case, let's reset ASIC.\n");
                soc15_asic_reset(adev);
        }
-       return soc15_common_hw_init(adev);
+       return soc15_common_hw_init(ip_block);
 }
 
 static bool soc15_common_is_idle(void *handle)
index 269857b7e7c84544df5f1e755c2ffc3092b759d0..4ce702c168c0e34571b9bf9f05e2d362977962ac 100644 (file)
@@ -847,9 +847,9 @@ static int soc21_common_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int soc21_common_hw_init(void *handle)
+static int soc21_common_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* enable aspm */
        soc21_program_aspm(adev);
@@ -926,7 +926,7 @@ static int soc21_common_resume(struct amdgpu_ip_block *ip_block)
                soc21_asic_reset(adev);
        }
 
-       return soc21_common_hw_init(adev);
+       return soc21_common_hw_init(ip_block);
 }
 
 static bool soc21_common_is_idle(void *handle)
index 82d8473a912091f3e51ff49cea71e8d423abf6a5..8fa1fb4f92455c65fb27184b230f9662d122ce72 100644 (file)
@@ -470,9 +470,9 @@ static int soc24_common_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int soc24_common_hw_init(void *handle)
+static int soc24_common_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* enable aspm */
        soc24_program_aspm(adev);
@@ -521,9 +521,7 @@ static int soc24_common_suspend(struct amdgpu_ip_block *ip_block)
 
 static int soc24_common_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return soc24_common_hw_init(adev);
+       return soc24_common_hw_init(ip_block);
 }
 
 static bool soc24_common_is_idle(void *handle)
index c630441879540a08ae2e6287e5edc7e3c34569cb..b4fa3c74cb439de60620368edc2706bf4379686f 100644 (file)
@@ -324,10 +324,10 @@ static int tonga_ih_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int tonga_ih_hw_init(void *handle)
+static int tonga_ih_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        r = tonga_ih_irq_init(adev);
        if (r)
@@ -354,9 +354,7 @@ static int tonga_ih_suspend(struct amdgpu_ip_block *ip_block)
 
 static int tonga_ih_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return tonga_ih_hw_init(adev);
+       return tonga_ih_hw_init(ip_block);
 }
 
 static bool tonga_ih_is_idle(void *handle)
@@ -422,7 +420,7 @@ static int tonga_ih_post_soft_reset(struct amdgpu_ip_block *ip_block)
        if (!adev->irq.srbm_soft_reset)
                return 0;
 
-       return tonga_ih_hw_init(adev);
+       return tonga_ih_hw_init(ip_block);
 }
 
 static int tonga_ih_soft_reset(struct amdgpu_ip_block *ip_block)
index 79b2fbb0509e64233209b164dd22aea233a1fce6..23d1464baa5887fcdef6e6353ca603693386bc1c 100644 (file)
@@ -625,9 +625,9 @@ static void uvd_v3_1_enable_mgcg(struct amdgpu_device *adev,
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int uvd_v3_1_hw_init(void *handle)
+static int uvd_v3_1_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring = &adev->uvd.inst->ring;
        uint32_t tmp;
        int r;
@@ -750,13 +750,12 @@ static int uvd_v3_1_suspend(struct amdgpu_ip_block *ip_block)
 static int uvd_v3_1_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_uvd_resume(adev);
+       r = amdgpu_uvd_resume(ip_block->adev);
        if (r)
                return r;
 
-       return uvd_v3_1_hw_init(adev);
+       return uvd_v3_1_hw_init(ip_block);
 }
 
 static bool uvd_v3_1_is_idle(void *handle)
index b03abfc0c275afc87da4e3e3e4b36b27b1e58d3c..d7f5a481cf1b4f991a1189874ffd61833c59374f 100644 (file)
@@ -151,9 +151,9 @@ static void uvd_v4_2_enable_mgcg(struct amdgpu_device *adev,
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int uvd_v4_2_hw_init(void *handle)
+static int uvd_v4_2_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring = &adev->uvd.inst->ring;
        uint32_t tmp;
        int r;
@@ -264,13 +264,12 @@ static int uvd_v4_2_suspend(struct amdgpu_ip_block *ip_block)
 static int uvd_v4_2_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_uvd_resume(adev);
+       r = amdgpu_uvd_resume(ip_block->adev);
        if (r)
                return r;
 
-       return uvd_v4_2_hw_init(adev);
+       return uvd_v4_2_hw_init(ip_block);
 }
 
 /**
index cb7056b365b042ec78c99cdb8dc7f48a9dc37808..3dc6a66a481c9f45e627c97954ec13d6608a09c8 100644 (file)
@@ -147,9 +147,9 @@ static int uvd_v5_0_sw_fini(struct amdgpu_ip_block *ip_block)
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int uvd_v5_0_hw_init(void *handle)
+static int uvd_v5_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring = &adev->uvd.inst->ring;
        uint32_t tmp;
        int r;
@@ -262,13 +262,12 @@ static int uvd_v5_0_suspend(struct amdgpu_ip_block *ip_block)
 static int uvd_v5_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_uvd_resume(adev);
+       r = amdgpu_uvd_resume(ip_block->adev);
        if (r)
                return r;
 
-       return uvd_v5_0_hw_init(adev);
+       return uvd_v5_0_hw_init(ip_block);
 }
 
 /**
index 7923fae622192f2a7d68c95e34b0bfeeff72d91e..a0f3860d18efe24164a0f6661d7653d013f08c49 100644 (file)
@@ -459,9 +459,9 @@ static int uvd_v6_0_sw_fini(struct amdgpu_ip_block *ip_block)
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int uvd_v6_0_hw_init(void *handle)
+static int uvd_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring = &adev->uvd.inst->ring;
        uint32_t tmp;
        int i, r;
@@ -586,13 +586,12 @@ static int uvd_v6_0_suspend(struct amdgpu_ip_block *ip_block)
 static int uvd_v6_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_uvd_resume(adev);
+       r = amdgpu_uvd_resume(ip_block->adev);
        if (r)
                return r;
 
-       return uvd_v6_0_hw_init(adev);
+       return uvd_v6_0_hw_init(ip_block);
 }
 
 /**
index 2e25f95117d6cbcc03670e47665b408db4f38964..1a18ffdb987f7358bcd888b98bbf6417118a3dc5 100644 (file)
@@ -514,9 +514,9 @@ static int uvd_v7_0_sw_fini(struct amdgpu_ip_block *ip_block)
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int uvd_v7_0_hw_init(void *handle)
+static int uvd_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring;
        uint32_t tmp;
        int i, j, r;
@@ -654,13 +654,12 @@ static int uvd_v7_0_suspend(struct amdgpu_ip_block *ip_block)
 static int uvd_v7_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_uvd_resume(adev);
+       r = amdgpu_uvd_resume(ip_block->adev);
        if (r)
                return r;
 
-       return uvd_v7_0_hw_init(adev);
+       return uvd_v7_0_hw_init(ip_block);
 }
 
 /**
index 413ff88b7cdd3b3288834beaada8a95ed942aa60..924afe16a902327a9bfdcb3890e08b5bd0c33450 100644 (file)
@@ -462,10 +462,10 @@ static int vce_v2_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return amdgpu_vce_sw_fini(adev);
 }
 
-static int vce_v2_0_hw_init(void *handle)
+static int vce_v2_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r, i;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        amdgpu_asic_set_vce_clocks(adev, 10000, 10000);
        vce_v2_0_enable_mgcg(adev, true, false);
@@ -529,13 +529,12 @@ static int vce_v2_0_suspend(struct amdgpu_ip_block *ip_block)
 static int vce_v2_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_vce_resume(adev);
+       r = amdgpu_vce_resume(ip_block->adev);
        if (r)
                return r;
 
-       return vce_v2_0_hw_init(adev);
+       return vce_v2_0_hw_init(ip_block);
 }
 
 static int vce_v2_0_soft_reset(struct amdgpu_ip_block *ip_block)
index 71e2a4d3f3281a6b45c3c5916e730ac2ff337903..a1ed38348713895d1b585e2fcf79de5b4b303e0b 100644 (file)
@@ -465,10 +465,10 @@ static int vce_v3_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return amdgpu_vce_sw_fini(adev);
 }
 
-static int vce_v3_0_hw_init(void *handle)
+static int vce_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r, i;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        vce_v3_0_override_vce_clock_gating(adev, true);
 
@@ -543,13 +543,12 @@ static int vce_v3_0_suspend(struct amdgpu_ip_block *ip_block)
 static int vce_v3_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_vce_resume(adev);
+       r = amdgpu_vce_resume(ip_block->adev);
        if (r)
                return r;
 
-       return vce_v3_0_hw_init(adev);
+       return vce_v3_0_hw_init(ip_block);
 }
 
 static void vce_v3_0_mc_resume(struct amdgpu_device *adev, int idx)
index 7839e949f86aaae14f032def44b58c0b2c903da5..3dc4e9310128c90fb58e47f10e3b119742f990e2 100644 (file)
@@ -513,10 +513,10 @@ static int vce_v4_0_sw_fini(struct amdgpu_ip_block *ip_block)
        return amdgpu_vce_sw_fini(adev);
 }
 
-static int vce_v4_0_hw_init(void *handle)
+static int vce_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r, i;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (amdgpu_sriov_vf(adev))
                r = vce_v4_0_sriov_start(adev);
@@ -629,7 +629,7 @@ static int vce_v4_0_resume(struct amdgpu_ip_block *ip_block)
                        return r;
        }
 
-       return vce_v4_0_hw_init(adev);
+       return vce_v4_0_hw_init(ip_block);
 }
 
 static void vce_v4_0_mc_resume(struct amdgpu_device *adev)
index 40ebf9c3f5746776fa2d78e3ec77e1d015cd964c..d5da383897da0a9f8c74a353691f3506e89a8add 100644 (file)
@@ -242,9 +242,9 @@ static int vcn_v1_0_sw_fini(struct amdgpu_ip_block *ip_block)
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int vcn_v1_0_hw_init(void *handle)
+static int vcn_v1_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring = &adev->vcn.inst->ring_dec;
        int i, r;
 
@@ -325,13 +325,12 @@ static int vcn_v1_0_suspend(struct amdgpu_ip_block *ip_block)
 static int vcn_v1_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_vcn_resume(adev);
+       r = amdgpu_vcn_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = vcn_v1_0_hw_init(adev);
+       r = vcn_v1_0_hw_init(ip_block);
 
        return r;
 }
index 817b4dbec3d435aff59bbe878dc9c0d24f17ec53..5f5b3350672eb3ba9b2d3c21e411ee00e806fede 100644 (file)
@@ -272,9 +272,9 @@ static int vcn_v2_0_sw_fini(struct amdgpu_ip_block *ip_block)
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int vcn_v2_0_hw_init(void *handle)
+static int vcn_v2_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring = &adev->vcn.inst->ring_dec;
        int i, r;
 
@@ -354,13 +354,12 @@ static int vcn_v2_0_suspend(struct amdgpu_ip_block *ip_block)
 static int vcn_v2_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_vcn_resume(adev);
+       r = amdgpu_vcn_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = vcn_v2_0_hw_init(adev);
+       r = vcn_v2_0_hw_init(ip_block);
 
        return r;
 }
index f12011db937203e3f13c229c64922048c6cd184b..a86d62f6aea6a84ba63693010160d407baaa60d1 100644 (file)
@@ -337,9 +337,9 @@ static int vcn_v2_5_sw_fini(struct amdgpu_ip_block *ip_block)
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int vcn_v2_5_hw_init(void *handle)
+static int vcn_v2_5_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring;
        int i, j, r = 0;
 
@@ -439,13 +439,12 @@ static int vcn_v2_5_suspend(struct amdgpu_ip_block *ip_block)
 static int vcn_v2_5_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_vcn_resume(adev);
+       r = amdgpu_vcn_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = vcn_v2_5_hw_init(adev);
+       r = vcn_v2_5_hw_init(ip_block);
 
        return r;
 }
index c2b3ba9c6c90d0d9a42613d9daad78ea4d3bdbe9..7c11f3f7775603bc873afdc422127723edb3d1f4 100644 (file)
@@ -342,9 +342,9 @@ static int vcn_v3_0_sw_fini(struct amdgpu_ip_block *ip_block)
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int vcn_v3_0_hw_init(void *handle)
+static int vcn_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring;
        int i, j, r;
 
@@ -471,13 +471,12 @@ static int vcn_v3_0_suspend(struct amdgpu_ip_block *ip_block)
 static int vcn_v3_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_vcn_resume(adev);
+       r = amdgpu_vcn_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = vcn_v3_0_hw_init(adev);
+       r = vcn_v3_0_hw_init(ip_block);
 
        return r;
 }
index 18761ad8c25dbd377e7d07ce48679c7f09c5a247..8f0f56e21606d4232288105570f0c76cf40836de 100644 (file)
@@ -298,9 +298,9 @@ static int vcn_v4_0_sw_fini(struct amdgpu_ip_block *ip_block)
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int vcn_v4_0_hw_init(void *handle)
+static int vcn_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring;
        int i, r;
 
@@ -400,13 +400,12 @@ static int vcn_v4_0_suspend(struct amdgpu_ip_block *ip_block)
 static int vcn_v4_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_vcn_resume(adev);
+       r = amdgpu_vcn_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = vcn_v4_0_hw_init(adev);
+       r = vcn_v4_0_hw_init(ip_block);
 
        return r;
 }
index c3d96bdc8356b45313ed0be32a155b2f29892f1e..0ace2ed73a0d5432ada6d6c7fca6269c622db32b 100644 (file)
@@ -253,9 +253,9 @@ static int vcn_v4_0_3_sw_fini(struct amdgpu_ip_block *ip_block)
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int vcn_v4_0_3_hw_init(void *handle)
+static int vcn_v4_0_3_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring;
        int i, r, vcn_inst;
 
@@ -354,14 +354,13 @@ static int vcn_v4_0_3_suspend(struct amdgpu_ip_block *ip_block)
  */
 static int vcn_v4_0_3_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = amdgpu_vcn_resume(adev);
+       r = amdgpu_vcn_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = vcn_v4_0_3_hw_init(adev);
+       r = vcn_v4_0_3_hw_init(ip_block);
 
        return r;
 }
index b98e1533a830f48a4f176e2b6f4a9db3bf178c57..45341dce246c1143a19794c9487c3b0368be770a 100644 (file)
@@ -265,9 +265,9 @@ static int vcn_v4_0_5_sw_fini(struct amdgpu_ip_block *ip_block)
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int vcn_v4_0_5_hw_init(void *handle)
+static int vcn_v4_0_5_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring;
        int i, r;
 
@@ -348,13 +348,12 @@ static int vcn_v4_0_5_suspend(struct amdgpu_ip_block *ip_block)
 static int vcn_v4_0_5_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_vcn_resume(adev);
+       r = amdgpu_vcn_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = vcn_v4_0_5_hw_init(adev);
+       r = vcn_v4_0_5_hw_init(ip_block);
 
        return r;
 }
index ed1c2b37946040d862996262dc212d6be3e1870e..a348eb2c305444f70aa43a85b9780e739b9d450b 100644 (file)
@@ -229,9 +229,9 @@ static int vcn_v5_0_0_sw_fini(struct amdgpu_ip_block *ip_block)
  *
  * Initialize the hardware, boot up the VCPU and do some testing
  */
-static int vcn_v5_0_0_hw_init(void *handle)
+static int vcn_v5_0_0_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_ring *ring;
        int i, r;
 
@@ -312,13 +312,12 @@ static int vcn_v5_0_0_suspend(struct amdgpu_ip_block *ip_block)
 static int vcn_v5_0_0_resume(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_vcn_resume(adev);
+       r = amdgpu_vcn_resume(ip_block->adev);
        if (r)
                return r;
 
-       r = vcn_v5_0_0_hw_init(adev);
+       r = vcn_v5_0_0_hw_init(ip_block);
 
        return r;
 }
index 2076c09f048809113080b8165a9aceacd8855b57..20d896b6d4fe4cdc6897cc603e4589e6b20f44e0 100644 (file)
@@ -534,11 +534,9 @@ static int vega10_ih_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int vega10_ih_hw_init(void *handle)
+static int vega10_ih_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       return vega10_ih_irq_init(adev);
+       return vega10_ih_irq_init(ip_block->adev);
 }
 
 static int vega10_ih_hw_fini(void *handle)
@@ -559,9 +557,7 @@ static int vega10_ih_suspend(struct amdgpu_ip_block *ip_block)
 
 static int vega10_ih_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return vega10_ih_hw_init(adev);
+       return vega10_ih_hw_init(ip_block);
 }
 
 static bool vega10_ih_is_idle(void *handle)
index fc02941cefd6e625de75ce16c7489513b00f033d..513a7abce8e2bd1e52ff021974d11f85ea0ec1f6 100644 (file)
@@ -595,10 +595,10 @@ static int vega20_ih_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int vega20_ih_hw_init(void *handle)
+static int vega20_ih_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        r = vega20_ih_irq_init(adev);
        if (r)
@@ -625,9 +625,7 @@ static int vega20_ih_suspend(struct amdgpu_ip_block *ip_block)
 
 static int vega20_ih_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return vega20_ih_hw_init(adev);
+       return vega20_ih_hw_init(ip_block);
 }
 
 static bool vega20_ih_is_idle(void *handle)
index 5e18ba72a03e76506fb19e7096fc149823225e14..eb4de59b8b931e4758d38b23ff2411e54208234e 100644 (file)
@@ -1704,9 +1704,9 @@ static int vi_common_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int vi_common_hw_init(void *handle)
+static int vi_common_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* move the golden regs per IP block */
        vi_init_golden_registers(adev);
@@ -1740,9 +1740,7 @@ static int vi_common_suspend(struct amdgpu_ip_block *ip_block)
 
 static int vi_common_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return vi_common_hw_init(adev);
+       return vi_common_hw_init(ip_block);
 }
 
 static bool vi_common_is_idle(void *handle)
index c28a8c8df03c45d450bff69abc104782362288f1..484758be24275b3603f1db07fd27df3305e94349 100644 (file)
@@ -2808,9 +2808,9 @@ static int amdgpu_dm_smu_write_watermarks_table(struct amdgpu_device *adev)
  * - Vblank support
  * - Debug FS entries, if enabled
  */
-static int dm_hw_init(void *handle)
+static int dm_hw_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
        /* Create DAL display manager */
index 000adb83941fac2c3eb92978668ff2737a69c627..ecf60a8d7be5fac07373daf28414b03211771979 100644 (file)
@@ -384,7 +384,7 @@ struct amd_ip_funcs {
        int (*sw_init)(struct amdgpu_ip_block *ip_block);
        int (*sw_fini)(struct amdgpu_ip_block *ip_block);
        int (*early_fini)(struct amdgpu_ip_block *ip_block);
-       int (*hw_init)(void *handle);
+       int (*hw_init)(struct amdgpu_ip_block *ip_block);
        int (*hw_fini)(void *handle);
        void (*late_fini)(struct amdgpu_ip_block *ip_block);
        int (*prepare_suspend)(struct amdgpu_ip_block *ip_block);
index 01043e954f853102c7a9dab16ea40343f08a877d..59803eaed0c23e6d08b10e3986a865bbf23a839a 100644 (file)
@@ -3034,10 +3034,10 @@ static int kv_dpm_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int kv_dpm_hw_init(void *handle)
+static int kv_dpm_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int ret;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (!amdgpu_dpm)
                return 0;
index e23bac6c0c0881540311f37f5cfac575be5caa21..a3915ef274f99c9d79560e6d38aa3afd0b4d5178 100644 (file)
@@ -7776,11 +7776,11 @@ static int si_dpm_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int si_dpm_hw_init(void *handle)
+static int si_dpm_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int ret;
 
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (!amdgpu_dpm)
                return 0;
index cd70941edec537d4ad46c18d1822f52349149059..77aba184a8d2fb30a58622f84a8e9c993fb00f7b 100644 (file)
@@ -159,10 +159,10 @@ static int pp_sw_fini(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int pp_hw_init(void *handle)
+static int pp_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int ret = 0;
-       struct amdgpu_device *adev = handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle;
 
        ret = hwmgr_hw_init(hwmgr);
@@ -273,8 +273,7 @@ static int pp_suspend(struct amdgpu_ip_block *ip_block)
 
 static int pp_resume(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-       struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle;
+       struct pp_hwmgr *hwmgr = ip_block->adev->powerplay.pp_handle;
 
        return hwmgr_resume(hwmgr);
 }
index 033965ed864520e2235178793f59290b4d6db969..246eba201ff6c09c828ac1b98a2854b1549c8781 100644 (file)
@@ -1787,10 +1787,10 @@ static int smu_start_smc_engine(struct smu_context *smu)
        return ret;
 }
 
-static int smu_hw_init(void *handle)
+static int smu_hw_init(struct amdgpu_ip_block *ip_block)
 {
        int ret;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct smu_context *smu = adev->powerplay.pp_handle;
 
        if (amdgpu_sriov_vf(adev) && !amdgpu_sriov_is_pp_one_vf(adev)) {
@@ -2056,18 +2056,18 @@ static int smu_reset(struct smu_context *smu)
        struct amdgpu_ip_block *ip_block;
        int ret;
 
+       ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_SMC);
+       if (!ip_block)
+               return -EINVAL;
+
        ret = smu_hw_fini(adev);
        if (ret)
                return ret;
 
-       ret = smu_hw_init(adev);
+       ret = smu_hw_init(ip_block);
        if (ret)
                return ret;
 
-       ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_SMC);
-       if (!ip_block)
-               return -EINVAL;
-
        ret = smu_late_init(ip_block);
        if (ret)
                return ret;