]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/amdgpu: update the handle ptr in hw_fini
authorSunil Khatri <sunil.khatri@amd.com>
Wed, 2 Oct 2024 05:50:58 +0000 (11:20 +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_fini.

Also update the ip_block ptr where ever needed as
there were cyclic dependency of hw_fini on suspend
and some followed clean up.

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 37d431a401845d033e958fe77a3ed4757849920e..cf2d55c2fd98c32bfe987af2e9191f6ec893fcb3 100644 (file)
@@ -500,11 +500,11 @@ failure:
  * @handle: handle used to pass amdgpu_device pointer
  *
  */
-static int acp_hw_fini(void *handle)
+static int acp_hw_fini(struct amdgpu_ip_block *ip_block)
 {
        u32 val = 0;
        u32 count = 0;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* return early if no ACP */
        if (!adev->acp.acp_genpd) {
index cbc96a5230f72409a553b94c4f4b9c41638f6186..928b11ab56c14f8263b13cbf44973fb8c0834ac4 100644 (file)
@@ -3285,7 +3285,7 @@ static void amdgpu_device_smu_fini_early(struct amdgpu_device *adev)
                if (!adev->ip_blocks[i].status.hw)
                        continue;
                if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_SMC) {
-                       r = adev->ip_blocks[i].version->funcs->hw_fini((void *)adev);
+                       r = adev->ip_blocks[i].version->funcs->hw_fini(&adev->ip_blocks[i]);
                        /* XXX handle errors */
                        if (r) {
                                DRM_DEBUG("hw_fini of IP block <%s> failed %d\n",
@@ -3324,7 +3324,7 @@ static int amdgpu_device_ip_fini_early(struct amdgpu_device *adev)
                if (!adev->ip_blocks[i].status.hw)
                        continue;
 
-               r = adev->ip_blocks[i].version->funcs->hw_fini((void *)adev);
+               r = adev->ip_blocks[i].version->funcs->hw_fini(&adev->ip_blocks[i]);
                /* XXX handle errors */
                if (r) {
                        DRM_DEBUG("hw_fini of IP block <%s> failed %d\n",
index f96f05f38a0e3757d0c5dbcb6df564c829e8cb00..478086f16650777457b47925db24fd1b4cd15f19 100644 (file)
@@ -66,10 +66,9 @@ static int isp_hw_init(struct amdgpu_ip_block *ip_block)
  * @handle: handle for amdgpu_device pointer
  *
  */
-static int isp_hw_fini(void *handle)
+static int isp_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-       struct amdgpu_isp *isp = &adev->isp;
+       struct amdgpu_isp *isp = &ip_block->adev->isp;
 
        if (isp->funcs->hw_fini != NULL)
                return isp->funcs->hw_fini(isp);
index ee19237395900f8729e68a8ad47e71e65fe4028f..8ef6bf7c6b654f2deb502b452f67dd72daa5af38 100644 (file)
@@ -3002,9 +3002,9 @@ failed:
        return -EINVAL;
 }
 
-static int psp_hw_fini(void *handle)
+static int psp_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct psp_context *psp = &adev->psp;
 
        if (psp->ta_fw) {
index aee4c1d4a53b6de8e3c973a923b274fbf41039fe..3ef75f1a47f65b94392cd2c58b109d16dcebf33c 100644 (file)
@@ -857,9 +857,9 @@ static int umsch_mm_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int umsch_mm_hw_fini(void *handle)
+static int umsch_mm_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        umsch_mm_ring_stop(&adev->umsch_mm);
 
@@ -875,9 +875,7 @@ static int umsch_mm_hw_fini(void *handle)
 
 static int umsch_mm_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return umsch_mm_hw_fini(adev);
+       return umsch_mm_hw_fini(ip_block);
 }
 
 static int umsch_mm_resume(struct amdgpu_ip_block *ip_block)
index 2c810750f7d504cf423ee9d4b64a705149bd1d21..fd31e2e9feb909b81701cedd4a1890af84ffb710 100644 (file)
@@ -600,7 +600,7 @@ static int amdgpu_vkms_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int amdgpu_vkms_hw_fini(void *handle)
+static int amdgpu_vkms_hw_fini(struct amdgpu_ip_block *ip_block)
 {
        return 0;
 }
@@ -613,7 +613,7 @@ static int amdgpu_vkms_suspend(struct amdgpu_ip_block *ip_block)
        r = drm_mode_config_helper_suspend(adev_to_drm(adev));
        if (r)
                return r;
-       return amdgpu_vkms_hw_fini(adev);
+       return amdgpu_vkms_hw_fini(ip_block);
 }
 
 static int amdgpu_vkms_resume(struct amdgpu_ip_block *ip_block)
index 2234c06b7d764d61955ef8179af929432f98f425..6d96e1f21e2018277d77e4f95af9950931e52e61 100644 (file)
@@ -421,9 +421,9 @@ static int vpe_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int vpe_hw_fini(void *handle)
+static int vpe_hw_fini(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;
 
        vpe_ring_stop(vpe);
@@ -440,7 +440,7 @@ static int vpe_suspend(struct amdgpu_ip_block *ip_block)
 
        cancel_delayed_work_sync(&adev->vpe.idle_work);
 
-       return vpe_hw_fini(adev);
+       return vpe_hw_fini(ip_block);
 }
 
 static int vpe_resume(struct amdgpu_ip_block *ip_block)
index 1f8d941d26e71a77fd74b4dd39772958273482b0..6c18ab35cf698c08c62046c84ef38e3fe52c3ad3 100644 (file)
@@ -2148,16 +2148,14 @@ static int cik_common_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int cik_common_hw_fini(void *handle)
+static int cik_common_hw_fini(struct amdgpu_ip_block *ip_block)
 {
        return 0;
 }
 
 static int cik_common_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return cik_common_hw_fini(adev);
+       return cik_common_hw_fini(ip_block);
 }
 
 static int cik_common_resume(struct amdgpu_ip_block *ip_block)
index dfeac11f852e5e5400718552a98c069a32ff07eb..9e9a58fd86cec847e294b840656fd2c4c9586393 100644 (file)
@@ -328,20 +328,16 @@ static int cik_ih_hw_init(struct amdgpu_ip_block *ip_block)
        return cik_ih_irq_init(adev);
 }
 
-static int cik_ih_hw_fini(void *handle)
+static int cik_ih_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       cik_ih_irq_disable(adev);
+       cik_ih_irq_disable(ip_block->adev);
 
        return 0;
 }
 
 static int cik_ih_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return cik_ih_hw_fini(adev);
+       return cik_ih_hw_fini(ip_block);
 }
 
 static int cik_ih_resume(struct amdgpu_ip_block *ip_block)
index 96744060b51ed560359a7325d3d9e929edb39225..df3f429e003e35e766b43871fa96a99d7374aaf1 100644 (file)
@@ -1001,9 +1001,9 @@ static int cik_sdma_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int cik_sdma_hw_fini(void *handle)
+static int cik_sdma_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cik_ctx_switch_enable(adev, false);
        cik_sdma_enable(adev, false);
@@ -1013,9 +1013,7 @@ static int cik_sdma_hw_fini(void *handle)
 
 static int cik_sdma_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return cik_sdma_hw_fini(adev);
+       return cik_sdma_hw_fini(ip_block);
 }
 
 static int cik_sdma_resume(struct amdgpu_ip_block *ip_block)
index d14af4538ef1b4a6f5d3443c053c0afebe45f18e..cadd69a243af19a0ca1dd8208879b25612a7a735 100644 (file)
@@ -324,20 +324,16 @@ static int cz_ih_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int cz_ih_hw_fini(void *handle)
+static int cz_ih_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       cz_ih_irq_disable(adev);
+       cz_ih_irq_disable(ip_block->adev);
 
        return 0;
 }
 
 static int cz_ih_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return cz_ih_hw_fini(adev);
+       return cz_ih_hw_fini(ip_block);
 }
 
 static int cz_ih_resume(struct amdgpu_ip_block *ip_block)
index 111c03f07155699549338768ae21fb9926431e42..2d0a24a343f72e5d4dda937b66a08e0f1ff1a170 100644 (file)
@@ -2887,10 +2887,10 @@ static int dce_v10_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int dce_v10_0_hw_fini(void *handle)
+static int dce_v10_0_hw_fini(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_hpd_fini(adev);
 
@@ -2917,7 +2917,7 @@ static int dce_v10_0_suspend(struct amdgpu_ip_block *ip_block)
        adev->mode_info.bl_level =
                amdgpu_atombios_encoder_get_backlight_level_from_reg(adev);
 
-       return dce_v10_0_hw_fini(adev);
+       return dce_v10_0_hw_fini(ip_block);
 }
 
 static int dce_v10_0_resume(struct amdgpu_ip_block *ip_block)
index 4d030716eb00de8a1fb9ad48f6fe8d2fb3ee6fd4..386ece7bc3899d14ddde66b0b19b7977bbd300ac 100644 (file)
@@ -3025,10 +3025,10 @@ static int dce_v11_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int dce_v11_0_hw_fini(void *handle)
+static int dce_v11_0_hw_fini(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_hpd_fini(adev);
 
@@ -3055,7 +3055,7 @@ static int dce_v11_0_suspend(struct amdgpu_ip_block *ip_block)
        adev->mode_info.bl_level =
                amdgpu_atombios_encoder_get_backlight_level_from_reg(adev);
 
-       return dce_v11_0_hw_fini(adev);
+       return dce_v11_0_hw_fini(ip_block);
 }
 
 static int dce_v11_0_resume(struct amdgpu_ip_block *ip_block)
index d333e4f834d1f1a540fe547a54737d22215ee570..cd3e0118988dfa641643238a8ea04f031f1b6e22 100644 (file)
@@ -2783,10 +2783,10 @@ static int dce_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int dce_v6_0_hw_fini(void *handle)
+static int dce_v6_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
        int i;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        dce_v6_0_hpd_fini(adev);
 
@@ -2812,7 +2812,7 @@ static int dce_v6_0_suspend(struct amdgpu_ip_block *ip_block)
        adev->mode_info.bl_level =
                amdgpu_atombios_encoder_get_backlight_level_from_reg(adev);
 
-       return dce_v6_0_hw_fini(adev);
+       return dce_v6_0_hw_fini(ip_block);
 }
 
 static int dce_v6_0_resume(struct amdgpu_ip_block *ip_block)
index 166fd991bfbaf972c26e54c2455bf5c06d54a61c..295bc1d4709557815e04ba01b98b6e5ef6f5f96c 100644 (file)
@@ -2805,10 +2805,10 @@ static int dce_v8_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int dce_v8_0_hw_fini(void *handle)
+static int dce_v8_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
        int i;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        dce_v8_0_hpd_fini(adev);
 
@@ -2835,7 +2835,7 @@ static int dce_v8_0_suspend(struct amdgpu_ip_block *ip_block)
        adev->mode_info.bl_level =
                amdgpu_atombios_encoder_get_backlight_level_from_reg(adev);
 
-       return dce_v8_0_hw_fini(adev);
+       return dce_v8_0_hw_fini(ip_block);
 }
 
 static int dce_v8_0_resume(struct amdgpu_ip_block *ip_block)
index e00ff7b624031dc788b0fd9e29f96a2dc33cebd7..e8c55c36f85a13a964a4cc3e113c0599409afddf 100644 (file)
@@ -7418,9 +7418,9 @@ static int gfx_v10_0_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int gfx_v10_0_hw_fini(void *handle)
+static int gfx_v10_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        amdgpu_irq_put(adev, &adev->gfx.priv_reg_irq, 0);
        amdgpu_irq_put(adev, &adev->gfx.priv_inst_irq, 0);
@@ -7431,7 +7431,7 @@ static int gfx_v10_0_hw_fini(void *handle)
         * otherwise the gfxoff disallowing will be failed to set.
         */
        if (amdgpu_ip_version(adev, GC_HWIP, 0) == IP_VERSION(10, 3, 1))
-               gfx_v10_0_set_powergating_state(handle, AMD_PG_STATE_UNGATE);
+               gfx_v10_0_set_powergating_state(ip_block->adev, AMD_PG_STATE_UNGATE);
 
        if (!adev->no_hw_access) {
                if (amdgpu_async_gfx_ring) {
@@ -7458,9 +7458,7 @@ static int gfx_v10_0_hw_fini(void *handle)
 
 static int gfx_v10_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return gfx_v10_0_hw_fini(adev);
+       return gfx_v10_0_hw_fini(ip_block);
 }
 
 static int gfx_v10_0_resume(struct amdgpu_ip_block *ip_block)
index 601e3a3e31e632115614de5cd394bbd6713e8da6..6b22128ab004b9f7056344f47464bc12385b7cc3 100644 (file)
@@ -4667,9 +4667,9 @@ static int gfx_v11_0_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int gfx_v11_0_hw_fini(void *handle)
+static int gfx_v11_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        amdgpu_irq_put(adev, &adev->gfx.priv_reg_irq, 0);
        amdgpu_irq_put(adev, &adev->gfx.priv_inst_irq, 0);
@@ -4707,9 +4707,7 @@ static int gfx_v11_0_hw_fini(void *handle)
 
 static int gfx_v11_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return gfx_v11_0_hw_fini(adev);
+       return gfx_v11_0_hw_fini(ip_block);
 }
 
 static int gfx_v11_0_resume(struct amdgpu_ip_block *ip_block)
index 68f90aab45d97003fc99fcf04758db1ed76756dc..dc25fcb89b131e96c37dc93d7f82998ff7ed6900 100644 (file)
@@ -3603,9 +3603,9 @@ static int gfx_v12_0_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int gfx_v12_0_hw_fini(void *handle)
+static int gfx_v12_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        uint32_t tmp;
 
        amdgpu_irq_put(adev, &adev->gfx.priv_reg_irq, 0);
@@ -3645,9 +3645,7 @@ static int gfx_v12_0_hw_fini(void *handle)
 
 static int gfx_v12_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return gfx_v12_0_hw_fini(adev);
+       return gfx_v12_0_hw_fini(ip_block);
 }
 
 static int gfx_v12_0_resume(struct amdgpu_ip_block *ip_block)
index bf3efe6bc4bf1b90b80ad7dc7b73d1d4746e80e5..6ac6d4dfa49f049540ddaf11e1cc0c4673fed167 100644 (file)
@@ -3142,9 +3142,9 @@ static int gfx_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int gfx_v6_0_hw_fini(void *handle)
+static int gfx_v6_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gfx_v6_0_cp_enable(adev, false);
        adev->gfx.rlc.funcs->stop(adev);
@@ -3155,9 +3155,7 @@ static int gfx_v6_0_hw_fini(void *handle)
 
 static int gfx_v6_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return gfx_v6_0_hw_fini(adev);
+       return gfx_v6_0_hw_fini(ip_block);
 }
 
 static int gfx_v6_0_resume(struct amdgpu_ip_block *ip_block)
index 71a98a538b3736763deaef9ca1b4abda5f61394a..77150c9f1e1828ed90cfa7c5305e3b82f5241b0e 100644 (file)
@@ -4486,9 +4486,9 @@ static int gfx_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int gfx_v7_0_hw_fini(void *handle)
+static int gfx_v7_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        amdgpu_irq_put(adev, &adev->gfx.priv_reg_irq, 0);
        amdgpu_irq_put(adev, &adev->gfx.priv_inst_irq, 0);
@@ -4501,9 +4501,7 @@ static int gfx_v7_0_hw_fini(void *handle)
 
 static int gfx_v7_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return gfx_v7_0_hw_fini(adev);
+       return gfx_v7_0_hw_fini(ip_block);
 }
 
 static int gfx_v7_0_resume(struct amdgpu_ip_block *ip_block)
index b924e8947f3b17c2b0d769270f877318fd671a8c..88acf34e16fc9f7d9e57232e88d4d6e010a36688 100644 (file)
@@ -4879,10 +4879,9 @@ static int gfx_v8_0_wait_for_idle(struct amdgpu_ip_block *ip_block)
        return -ETIMEDOUT;
 }
 
-static int gfx_v8_0_hw_fini(void *handle)
+static int gfx_v8_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-       struct amdgpu_ip_block *ip_block;
+       struct amdgpu_device *adev = ip_block->adev;
 
        amdgpu_irq_put(adev, &adev->gfx.priv_reg_irq, 0);
        amdgpu_irq_put(adev, &adev->gfx.priv_inst_irq, 0);
@@ -4899,10 +4898,6 @@ static int gfx_v8_0_hw_fini(void *handle)
                return 0;
        }
 
-       ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_GFX);
-       if (!ip_block)
-               return -EINVAL;
-
        amdgpu_gfx_rlc_enter_safe_mode(adev, 0);
        if (!gfx_v8_0_wait_for_idle(ip_block))
                gfx_v8_0_cp_enable(adev, false);
@@ -4919,9 +4914,7 @@ static int gfx_v8_0_hw_fini(void *handle)
 
 static int gfx_v8_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return gfx_v8_0_hw_fini(adev);
+       return gfx_v8_0_hw_fini(ip_block);
 }
 
 static int gfx_v8_0_resume(struct amdgpu_ip_block *ip_block)
index ba601e2a27d4507f25543b4ca6c664d79a058dcb..d85b2968a7cf41a03413f21a612a7674db988e60 100644 (file)
@@ -4022,9 +4022,9 @@ static int gfx_v9_0_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int gfx_v9_0_hw_fini(void *handle)
+static int gfx_v9_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (amdgpu_ras_is_supported(adev, AMDGPU_RAS_BLOCK__GFX))
                amdgpu_irq_put(adev, &adev->gfx.cp_ecc_error_irq, 0);
@@ -4076,9 +4076,7 @@ static int gfx_v9_0_hw_fini(void *handle)
 
 static int gfx_v9_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return gfx_v9_0_hw_fini(adev);
+       return gfx_v9_0_hw_fini(ip_block);
 }
 
 static int gfx_v9_0_resume(struct amdgpu_ip_block *ip_block)
index fe6df1723013323f48aa400e09066687407708bd..7d425d2e7ab00d7f8e0f053b8e77d47aff253426 100644 (file)
@@ -2369,9 +2369,9 @@ static int gfx_v9_4_3_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int gfx_v9_4_3_hw_fini(void *handle)
+static int gfx_v9_4_3_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int i, num_xcc;
 
        amdgpu_irq_put(adev, &adev->gfx.priv_reg_irq, 0);
@@ -2388,9 +2388,7 @@ static int gfx_v9_4_3_hw_fini(void *handle)
 
 static int gfx_v9_4_3_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return gfx_v9_4_3_hw_fini(adev);
+       return gfx_v9_4_3_hw_fini(ip_block);
 }
 
 static int gfx_v9_4_3_resume(struct amdgpu_ip_block *ip_block)
index 80e724397d5bb97e0185fec40b118df6f14158ca..5cf2002fcba80b953930979c65fc14fabf21ae76 100644 (file)
@@ -1032,9 +1032,9 @@ static void gmc_v10_0_gart_disable(struct amdgpu_device *adev)
        adev->mmhub.funcs->gart_disable(adev);
 }
 
-static int gmc_v10_0_hw_fini(void *handle)
+static int gmc_v10_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gmc_v10_0_gart_disable(adev);
 
@@ -1055,9 +1055,7 @@ static int gmc_v10_0_hw_fini(void *handle)
 
 static int gmc_v10_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       gmc_v10_0_hw_fini(adev);
+       gmc_v10_0_hw_fini(ip_block);
 
        return 0;
 }
index c8e7e0162505e6acff05cc4cd92b7e5757533393..4df4d73038f8202700be10279ef2a8e3088e61ba 100644 (file)
@@ -940,9 +940,9 @@ static void gmc_v11_0_gart_disable(struct amdgpu_device *adev)
        adev->mmhub.funcs->gart_disable(adev);
 }
 
-static int gmc_v11_0_hw_fini(void *handle)
+static int gmc_v11_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (amdgpu_sriov_vf(adev)) {
                /* full access mode, so don't touch any GMC register */
@@ -963,9 +963,7 @@ static int gmc_v11_0_hw_fini(void *handle)
 
 static int gmc_v11_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       gmc_v11_0_hw_fini(adev);
+       gmc_v11_0_hw_fini(ip_block);
 
        return 0;
 }
index 7e3366253d319bb9fffa3d8630c5be4411388492..e33f9e9058cc8732a6e5cdb213804be26f7beb7b 100644 (file)
@@ -924,9 +924,9 @@ static void gmc_v12_0_gart_disable(struct amdgpu_device *adev)
        adev->mmhub.funcs->gart_disable(adev);
 }
 
-static int gmc_v12_0_hw_fini(void *handle)
+static int gmc_v12_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (amdgpu_sriov_vf(adev)) {
                /* full access mode, so don't touch any GMC register */
@@ -947,9 +947,7 @@ static int gmc_v12_0_hw_fini(void *handle)
 
 static int gmc_v12_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       gmc_v12_0_hw_fini(adev);
+       gmc_v12_0_hw_fini(ip_block);
 
        return 0;
 }
index bdbf47a98dec325bec475a0956d21f6bfedb451c..c1e2f1d79e743929ff4920b21f03fadf404ee65f 100644 (file)
@@ -925,9 +925,9 @@ static int gmc_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int gmc_v6_0_hw_fini(void *handle)
+static int gmc_v6_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
        gmc_v6_0_gart_disable(adev);
@@ -937,9 +937,7 @@ static int gmc_v6_0_hw_fini(void *handle)
 
 static int gmc_v6_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       gmc_v6_0_hw_fini(adev);
+       gmc_v6_0_hw_fini(ip_block);
 
        return 0;
 }
index 82959be636d0f7ab4e535dbd34487886151a268e..54a48662f3b5b5e04a421bd6a226706436692b6a 100644 (file)
@@ -1101,9 +1101,9 @@ static int gmc_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int gmc_v7_0_hw_fini(void *handle)
+static int gmc_v7_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
        gmc_v7_0_gart_disable(adev);
@@ -1113,9 +1113,7 @@ static int gmc_v7_0_hw_fini(void *handle)
 
 static int gmc_v7_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       gmc_v7_0_hw_fini(adev);
+       gmc_v7_0_hw_fini(ip_block);
 
        return 0;
 }
index f56e7024b6dd0ea6924d991f392d4a825b6fb54d..c4f2ad32c078d9c0f4a891ccb41c0ae791131a87 100644 (file)
@@ -1232,9 +1232,9 @@ static int gmc_v8_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int gmc_v8_0_hw_fini(void *handle)
+static int gmc_v8_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        amdgpu_irq_put(adev, &adev->gmc.vm_fault, 0);
        gmc_v8_0_gart_disable(adev);
@@ -1244,9 +1244,7 @@ static int gmc_v8_0_hw_fini(void *handle)
 
 static int gmc_v8_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       gmc_v8_0_hw_fini(adev);
+       gmc_v8_0_hw_fini(ip_block);
 
        return 0;
 }
index 507952da94a51bedcc1ca77d549436ea9b0d76d3..94600e5c8ea31aa35fbf3355204849e56a718fd7 100644 (file)
@@ -2393,9 +2393,9 @@ static void gmc_v9_0_gart_disable(struct amdgpu_device *adev)
        adev->mmhub.funcs->gart_disable(adev);
 }
 
-static int gmc_v9_0_hw_fini(void *handle)
+static int gmc_v9_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gmc_v9_0_gart_disable(adev);
 
@@ -2430,9 +2430,7 @@ static int gmc_v9_0_hw_fini(void *handle)
 
 static int gmc_v9_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return gmc_v9_0_hw_fini(adev);
+       return gmc_v9_0_hw_fini(ip_block);
 }
 
 static int gmc_v9_0_resume(struct amdgpu_ip_block *ip_block)
index 9d37b93c8fd81cc790e6acfacbfa86524d9524df..a3fb01f905d43bb89a09ea47ae481db041ba0026 100644 (file)
@@ -318,20 +318,16 @@ static int iceland_ih_hw_init(struct amdgpu_ip_block *ip_block)
        return iceland_ih_irq_init(adev);
 }
 
-static int iceland_ih_hw_fini(void *handle)
+static int iceland_ih_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       iceland_ih_irq_disable(adev);
+       iceland_ih_irq_disable(ip_block->adev);
 
        return 0;
 }
 
 static int iceland_ih_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return iceland_ih_hw_fini(adev);
+       return iceland_ih_hw_fini(ip_block);
 }
 
 static int iceland_ih_resume(struct amdgpu_ip_block *ip_block)
index 0c0b7764cd8e97ff3bc0f141e3b48ee2b47fcaba..09403eac483bc8947ecb13b3b58af827630bf5c1 100644 (file)
@@ -635,20 +635,16 @@ static int ih_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int ih_v6_0_hw_fini(void *handle)
+static int ih_v6_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       ih_v6_0_irq_disable(adev);
+       ih_v6_0_irq_disable(ip_block->adev);
 
        return 0;
 }
 
 static int ih_v6_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return ih_v6_0_hw_fini(adev);
+       return ih_v6_0_hw_fini(ip_block);
 }
 
 static int ih_v6_0_resume(struct amdgpu_ip_block *ip_block)
index 0b2db6e493fd337b1536b65d245ea3247501fdbf..9706d7593d267c186ded3e8aa72782a0253b6a16 100644 (file)
@@ -614,20 +614,16 @@ static int ih_v6_1_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int ih_v6_1_hw_fini(void *handle)
+static int ih_v6_1_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       ih_v6_1_irq_disable(adev);
+       ih_v6_1_irq_disable(ip_block->adev);
 
        return 0;
 }
 
 static int ih_v6_1_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return ih_v6_1_hw_fini(adev);
+       return ih_v6_1_hw_fini(ip_block);
 }
 
 static int ih_v6_1_resume(struct amdgpu_ip_block *ip_block)
index da708cdecbbef9657769522a6a92e82f76fd7c3b..9657145d7ccea078026bfad33f748b402fc3ab5b 100644 (file)
@@ -604,20 +604,16 @@ static int ih_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int ih_v7_0_hw_fini(void *handle)
+static int ih_v7_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       ih_v7_0_irq_disable(adev);
+       ih_v7_0_irq_disable(ip_block->adev);
 
        return 0;
 }
 
 static int ih_v7_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return ih_v7_0_hw_fini(adev);
+       return ih_v7_0_hw_fini(ip_block);
 }
 
 static int ih_v7_0_resume(struct amdgpu_ip_block *ip_block)
index 2829616894e7318e07b1ff3b9fccd2fb88c92753..ec3d341fef61bcca50955e47141802965d3a2706 100644 (file)
@@ -146,9 +146,9 @@ static int jpeg_v2_0_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the JPEG block, mark ring as not ready any more
  */
-static int jpeg_v2_0_hw_fini(void *handle)
+static int jpeg_v2_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
 
@@ -168,14 +168,13 @@ static int jpeg_v2_0_hw_fini(void *handle)
  */
 static int jpeg_v2_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = jpeg_v2_0_hw_fini(adev);
+       r = jpeg_v2_0_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_jpeg_suspend(adev);
+       r = amdgpu_jpeg_suspend(ip_block->adev);
 
        return r;
 }
index 352816caa3e07032d6e3d693db8953d2f1006936..37cf415b6b41086d851b243d5e94c33a941c232b 100644 (file)
@@ -206,9 +206,9 @@ static int jpeg_v2_5_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the JPEG block, mark ring as not ready any more
  */
-static int jpeg_v2_5_hw_fini(void *handle)
+static int jpeg_v2_5_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int i;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
@@ -237,14 +237,13 @@ static int jpeg_v2_5_hw_fini(void *handle)
  */
 static int jpeg_v2_5_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = jpeg_v2_5_hw_fini(adev);
+       r = jpeg_v2_5_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_jpeg_suspend(adev);
+       r = amdgpu_jpeg_suspend(ip_block->adev);
 
        return r;
 }
index ccd1093d5bb26a9f6ed16fa01f0eb6397536c35b..2fa866a3e39dbecfc63a6f7ae425f8305a80cdce 100644 (file)
@@ -160,9 +160,9 @@ static int jpeg_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the JPEG block, mark ring as not ready any more
  */
-static int jpeg_v3_0_hw_fini(void *handle)
+static int jpeg_v3_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
 
@@ -182,14 +182,13 @@ static int jpeg_v3_0_hw_fini(void *handle)
  */
 static int jpeg_v3_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = jpeg_v3_0_hw_fini(adev);
+       r = jpeg_v3_0_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_jpeg_suspend(adev);
+       r = amdgpu_jpeg_suspend(ip_block->adev);
 
        return r;
 }
index 2dfdefb4db40be3075c2f6b92ca87f2fcf6ad848..3cef4124b171b7d05bc09a78a15be69cc6d84cb6 100644 (file)
@@ -191,9 +191,9 @@ static int jpeg_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the JPEG block, mark ring as not ready any more
  */
-static int jpeg_v4_0_hw_fini(void *handle)
+static int jpeg_v4_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
        if (!amdgpu_sriov_vf(adev)) {
@@ -216,14 +216,13 @@ static int jpeg_v4_0_hw_fini(void *handle)
  */
 static int jpeg_v4_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = jpeg_v4_0_hw_fini(adev);
+       r = jpeg_v4_0_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_jpeg_suspend(adev);
+       r = amdgpu_jpeg_suspend(ip_block->adev);
 
        return r;
 }
index abb9f8953c7c1dae453fe077ced934980d8387bd..cf6efe6db8b2fe27c7b80fc4636c0ed7d33445ba 100644 (file)
@@ -362,9 +362,9 @@ static int jpeg_v4_0_3_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the JPEG block, mark ring as not ready any more
  */
-static int jpeg_v4_0_3_hw_fini(void *handle)
+static int jpeg_v4_0_3_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int ret = 0;
 
        cancel_delayed_work_sync(&adev->jpeg.idle_work);
@@ -386,14 +386,13 @@ static int jpeg_v4_0_3_hw_fini(void *handle)
  */
 static int jpeg_v4_0_3_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = jpeg_v4_0_3_hw_fini(adev);
+       r = jpeg_v4_0_3_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_jpeg_suspend(adev);
+       r = amdgpu_jpeg_suspend(ip_block->adev);
 
        return r;
 }
index 7412d2d43bd448a7f74296b482cec056276360e1..2f9749b00eaf141e99d4bdb87dcfbb7d2a50fe9b 100644 (file)
@@ -214,9 +214,9 @@ static int jpeg_v4_0_5_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the JPEG block, mark ring as not ready any more
  */
-static int jpeg_v4_0_5_hw_fini(void *handle)
+static int jpeg_v4_0_5_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int i;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
@@ -243,14 +243,13 @@ static int jpeg_v4_0_5_hw_fini(void *handle)
  */
 static int jpeg_v4_0_5_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = jpeg_v4_0_5_hw_fini(adev);
+       r = jpeg_v4_0_5_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_jpeg_suspend(adev);
+       r = amdgpu_jpeg_suspend(ip_block->adev);
 
        return r;
 }
index 0c1749f6c4a3c0ca2ba700c6dfd6c6f61836c441..a9a0b3f250dee0c9ef7e932bd85f57a88018ace8 100644 (file)
@@ -157,9 +157,9 @@ static int jpeg_v5_0_0_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the JPEG block, mark ring as not ready any more
  */
-static int jpeg_v5_0_0_hw_fini(void *handle)
+static int jpeg_v5_0_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
 
@@ -179,14 +179,13 @@ static int jpeg_v5_0_0_hw_fini(void *handle)
  */
 static int jpeg_v5_0_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = jpeg_v5_0_0_hw_fini(adev);
+       r = jpeg_v5_0_0_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_jpeg_suspend(adev);
+       r = amdgpu_jpeg_suspend(ip_block->adev);
 
        return r;
 }
index b74afd94146250b489b28b94c6468ecb59f5b75d..4b0f83fe9dd985080a43ccbc6b0e284b6e830085 100644 (file)
@@ -56,7 +56,7 @@ 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(struct amdgpu_ip_block *ip_block);
-static int mes_v11_0_hw_fini(void *handle);
+static int mes_v11_0_hw_fini(struct amdgpu_ip_block *ip_block);
 static int mes_v11_0_kiq_hw_init(struct amdgpu_device *adev);
 static int mes_v11_0_kiq_hw_fini(struct amdgpu_device *adev);
 
@@ -1522,6 +1522,12 @@ static int mes_v11_0_kiq_hw_init(struct amdgpu_device *adev)
 
        mes_v11_0_kiq_setting(&adev->gfx.kiq[0].ring);
 
+       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_queue_init(adev, AMDGPU_MES_KIQ_PIPE);
        if (r)
                goto failure;
@@ -1532,12 +1538,6 @@ 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) {
-               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;
@@ -1546,7 +1546,7 @@ static int mes_v11_0_kiq_hw_init(struct amdgpu_device *adev)
        return r;
 
 failure:
-       mes_v11_0_hw_fini(adev);
+       mes_v11_0_hw_fini(ip_block);
        return r;
 }
 
@@ -1622,13 +1622,13 @@ out:
        return 0;
 
 failure:
-       mes_v11_0_hw_fini(adev);
+       mes_v11_0_hw_fini(ip_block);
        return r;
 }
 
-static int mes_v11_0_hw_fini(void *handle)
+static int mes_v11_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        if (amdgpu_sriov_is_mes_info_enable(adev)) {
                amdgpu_bo_free_kernel(&adev->mes.resource_1, &adev->mes.resource_1_gpu_addr,
                                        &adev->mes.resource_1_addr);
@@ -1639,13 +1639,12 @@ static int mes_v11_0_hw_fini(void *handle)
 static int mes_v11_0_suspend(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_mes_suspend(adev);
+       r = amdgpu_mes_suspend(ip_block->adev);
        if (r)
                return r;
 
-       return mes_v11_0_hw_fini(adev);
+       return mes_v11_0_hw_fini(ip_block);
 }
 
 static int mes_v11_0_resume(struct amdgpu_ip_block *ip_block)
index a7687822223bbaf9ee4c1a8e2efd67afff05abff..f50071cf95b96c150eccfabdf5dc08c954a1921e 100644 (file)
@@ -40,7 +40,7 @@ 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(struct amdgpu_ip_block *ip_block);
-static int mes_v12_0_hw_fini(void *handle);
+static int mes_v12_0_hw_fini(struct amdgpu_ip_block *ip_block);
 static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev);
 static int mes_v12_0_kiq_hw_fini(struct amdgpu_device *adev);
 
@@ -1480,6 +1480,12 @@ static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev)
 
        mes_v12_0_enable(adev, true);
 
+       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_queue_init(adev, AMDGPU_MES_KIQ_PIPE);
        if (r)
                goto failure;
@@ -1493,12 +1499,6 @@ static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev)
        }
 
        if (adev->mes.enable_legacy_queue_map) {
-               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;
@@ -1507,7 +1507,7 @@ static int mes_v12_0_kiq_hw_init(struct amdgpu_device *adev)
        return r;
 
 failure:
-       mes_v12_0_hw_fini(adev);
+       mes_v12_0_hw_fini(ip_block);
        return r;
 }
 
@@ -1591,11 +1591,11 @@ out:
        return 0;
 
 failure:
-       mes_v12_0_hw_fini(adev);
+       mes_v12_0_hw_fini(ip_block);
        return r;
 }
 
-static int mes_v12_0_hw_fini(void *handle)
+static int mes_v12_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
        return 0;
 }
@@ -1603,13 +1603,12 @@ static int mes_v12_0_hw_fini(void *handle)
 static int mes_v12_0_suspend(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = amdgpu_mes_suspend(adev);
+       r = amdgpu_mes_suspend(ip_block->adev);
        if (r)
                return r;
 
-       return mes_v12_0_hw_fini(adev);
+       return mes_v12_0_hw_fini(ip_block);
 }
 
 static int mes_v12_0_resume(struct amdgpu_ip_block *ip_block)
index 0d744b3d4bb48af9e6a8e62f408f1550586cffed..93da900b7ee2c97297246136eb656296ceea5224 100644 (file)
@@ -609,20 +609,16 @@ static int navi10_ih_hw_init(struct amdgpu_ip_block *ip_block)
        return navi10_ih_irq_init(adev);
 }
 
-static int navi10_ih_hw_fini(void *handle)
+static int navi10_ih_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       navi10_ih_irq_disable(adev);
+       navi10_ih_irq_disable(ip_block->adev);
 
        return 0;
 }
 
 static int navi10_ih_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return navi10_ih_hw_fini(adev);
+       return navi10_ih_hw_fini(ip_block);
 }
 
 static int navi10_ih_resume(struct amdgpu_ip_block *ip_block)
index 4b1085e2bfdda28657d1cf3342115b14149f6a18..4e8f9af1e2bec1436184a69e673f414555ca5cc6 100644 (file)
@@ -1014,9 +1014,9 @@ static int nv_common_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int nv_common_hw_fini(void *handle)
+static int nv_common_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* Disable the doorbell aperture and selfring doorbell aperture
         * separately in hw_fini because nv_enable_doorbell_aperture
@@ -1031,9 +1031,7 @@ static int nv_common_hw_fini(void *handle)
 
 static int nv_common_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return nv_common_hw_fini(adev);
+       return nv_common_hw_fini(ip_block);
 }
 
 static int nv_common_resume(struct amdgpu_ip_block *ip_block)
index 2d41c74c73bd3c1bdcc240091eb9712b68cf6350..10fd772cb80fd52dd089d51563ef23d8162be453 100644 (file)
@@ -892,20 +892,16 @@ static int sdma_v2_4_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int sdma_v2_4_hw_fini(void *handle)
+static int sdma_v2_4_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       sdma_v2_4_enable(adev, false);
+       sdma_v2_4_enable(ip_block->adev, false);
 
        return 0;
 }
 
 static int sdma_v2_4_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v2_4_hw_fini(adev);
+       return sdma_v2_4_hw_fini(ip_block);
 }
 
 static int sdma_v2_4_resume(struct amdgpu_ip_block *ip_block)
index 03333107c2e9eda3274691ab1af4ed7d13b3e1fe..69fba087e09c79c42190f0246219331ee7af21d2 100644 (file)
@@ -1178,9 +1178,9 @@ static int sdma_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int sdma_v3_0_hw_fini(void *handle)
+static int sdma_v3_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        sdma_v3_0_ctx_switch_enable(adev, false);
        sdma_v3_0_enable(adev, false);
@@ -1190,9 +1190,7 @@ static int sdma_v3_0_hw_fini(void *handle)
 
 static int sdma_v3_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v3_0_hw_fini(adev);
+       return sdma_v3_0_hw_fini(ip_block);
 }
 
 static int sdma_v3_0_resume(struct amdgpu_ip_block *ip_block)
index 7f5ca95b5fcf2c053ae9d7b7604cda0244d0489d..c1f98f6cf20d4801676cb734c4d4ed0cb92b2dd4 100644 (file)
@@ -1964,9 +1964,9 @@ static int sdma_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
        return sdma_v4_0_start(adev);
 }
 
-static int sdma_v4_0_hw_fini(void *handle)
+static int sdma_v4_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int i;
 
        if (amdgpu_sriov_vf(adev))
@@ -1998,7 +1998,7 @@ static int sdma_v4_0_suspend(struct amdgpu_ip_block *ip_block)
                return 0;
        }
 
-       return sdma_v4_0_hw_fini(adev);
+       return sdma_v4_0_hw_fini(ip_block);
 }
 
 static int sdma_v4_0_resume(struct amdgpu_ip_block *ip_block)
index f4ab26998a51d5060e6da36d9a3fc1ba04956a04..9c7cea0890c98d1d549a834d5f315ca1c91c672f 100644 (file)
@@ -1482,9 +1482,9 @@ static int sdma_v4_4_2_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int sdma_v4_4_2_hw_fini(void *handle)
+static int sdma_v4_4_2_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        uint32_t inst_mask;
        int i;
 
@@ -1515,7 +1515,7 @@ static int sdma_v4_4_2_suspend(struct amdgpu_ip_block *ip_block)
        if (amdgpu_in_reset(adev))
                sdma_v4_4_2_set_clockgating_state(adev, AMD_CG_STATE_UNGATE);
 
-       return sdma_v4_4_2_hw_fini(adev);
+       return sdma_v4_4_2_hw_fini(ip_block);
 }
 
 static int sdma_v4_4_2_resume(struct amdgpu_ip_block *ip_block)
index 68eb1fd986dd0d368fade6193d2da2d260a9c0ad..6a675daf56202339294bb5cc90923eb3465b7782 100644 (file)
@@ -1489,9 +1489,9 @@ static int sdma_v5_0_hw_init(struct amdgpu_ip_block *ip_block)
        return r;
 }
 
-static int sdma_v5_0_hw_fini(void *handle)
+static int sdma_v5_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (amdgpu_sriov_vf(adev))
                return 0;
@@ -1504,9 +1504,7 @@ static int sdma_v5_0_hw_fini(void *handle)
 
 static int sdma_v5_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v5_0_hw_fini(adev);
+       return sdma_v5_0_hw_fini(ip_block);
 }
 
 static int sdma_v5_0_resume(struct amdgpu_ip_block *ip_block)
index e2eaa2425a7217c6d6547de226a6e12073458d92..e1413ccaf7e41fd7afa8bc828bf24c91d52baa84 100644 (file)
@@ -1389,9 +1389,9 @@ static int sdma_v5_2_hw_init(struct amdgpu_ip_block *ip_block)
        return sdma_v5_2_start(adev);
 }
 
-static int sdma_v5_2_hw_fini(void *handle)
+static int sdma_v5_2_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (amdgpu_sriov_vf(adev))
                return 0;
@@ -1404,9 +1404,7 @@ static int sdma_v5_2_hw_fini(void *handle)
 
 static int sdma_v5_2_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v5_2_hw_fini(adev);
+       return sdma_v5_2_hw_fini(ip_block);
 }
 
 static int sdma_v5_2_resume(struct amdgpu_ip_block *ip_block)
index 9ab045552109e4000e8f41772858808a6466225c..4b33bd6b776db9565e579a71eebaab84f53b20f1 100644 (file)
@@ -1387,9 +1387,9 @@ static int sdma_v6_0_hw_init(struct amdgpu_ip_block *ip_block)
        return sdma_v6_0_start(adev);
 }
 
-static int sdma_v6_0_hw_fini(void *handle)
+static int sdma_v6_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (amdgpu_sriov_vf(adev))
                return 0;
@@ -1402,9 +1402,7 @@ static int sdma_v6_0_hw_fini(void *handle)
 
 static int sdma_v6_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v6_0_hw_fini(adev);
+       return sdma_v6_0_hw_fini(ip_block);
 }
 
 static int sdma_v6_0_resume(struct amdgpu_ip_block *ip_block)
index 4e2919bd15dfc7fcb21f1524515076e0be73d1db..24f24974ac1d8e5480efee6998c64619b1ab2cee 100644 (file)
@@ -1345,9 +1345,9 @@ static int sdma_v7_0_hw_init(struct amdgpu_ip_block *ip_block)
        return sdma_v7_0_start(adev);
 }
 
-static int sdma_v7_0_hw_fini(void *handle)
+static int sdma_v7_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (amdgpu_sriov_vf(adev))
                return 0;
@@ -1360,9 +1360,7 @@ static int sdma_v7_0_hw_fini(void *handle)
 
 static int sdma_v7_0_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return sdma_v7_0_hw_fini(adev);
+       return sdma_v7_0_hw_fini(ip_block);
 }
 
 static int sdma_v7_0_resume(struct amdgpu_ip_block *ip_block)
index 8b0cad1dfad6770e277bcc2e3cb579d9d76d4a83..b9934661a92ee6665f817af3f199c730a01dcc82 100644 (file)
@@ -2645,16 +2645,14 @@ static int si_common_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int si_common_hw_fini(void *handle)
+static int si_common_hw_fini(struct amdgpu_ip_block *ip_block)
 {
        return 0;
 }
 
 static int si_common_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return si_common_hw_fini(adev);
+       return si_common_hw_fini(ip_block);
 }
 
 static int si_common_resume(struct amdgpu_ip_block *ip_block)
index 68e7572b4a901cfd6cc4969f88f3ece8c84ade8d..d44483ed3363e3469962bc6ff40725cfc19a9382 100644 (file)
@@ -524,20 +524,16 @@ static int si_dma_hw_init(struct amdgpu_ip_block *ip_block)
        return si_dma_start(adev);
 }
 
-static int si_dma_hw_fini(void *handle)
+static int si_dma_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       si_dma_stop(adev);
+       si_dma_stop(ip_block->adev);
 
        return 0;
 }
 
 static int si_dma_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return si_dma_hw_fini(adev);
+       return si_dma_hw_fini(ip_block);
 }
 
 static int si_dma_resume(struct amdgpu_ip_block *ip_block)
index 413a4cd35fe4c2b42da17cbaf1f3b720b598f348..b018a3b90401979988185b1f252ee6da8109683a 100644 (file)
@@ -193,20 +193,16 @@ static int si_ih_hw_init(struct amdgpu_ip_block *ip_block)
        return si_ih_irq_init(adev);
 }
 
-static int si_ih_hw_fini(void *handle)
+static int si_ih_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       si_ih_irq_disable(adev);
+       si_ih_irq_disable(ip_block->adev);
 
        return 0;
 }
 
 static int si_ih_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return si_ih_hw_fini(adev);
+       return si_ih_hw_fini(ip_block);
 }
 
 static int si_ih_resume(struct amdgpu_ip_block *ip_block)
index d2a74da44a3bdc27485be387da01c510af1b7122..6ab34c526c863db21b90408267f037030db51176 100644 (file)
@@ -1284,9 +1284,9 @@ static int soc15_common_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int soc15_common_hw_fini(void *handle)
+static int soc15_common_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* Disable the doorbell aperture and selfring doorbell aperture
         * separately in hw_fini because soc15_enable_doorbell_aperture
@@ -1320,9 +1320,7 @@ static int soc15_common_hw_fini(void *handle)
 
 static int soc15_common_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return soc15_common_hw_fini(adev);
+       return soc15_common_hw_fini(ip_block);
 }
 
 static int soc15_common_resume(struct amdgpu_ip_block *ip_block)
index 4ce702c168c0e34571b9bf9f05e2d362977962ac..c4b950e75133fd71232ca0ec2d3aad95defbb45a 100644 (file)
@@ -867,9 +867,9 @@ static int soc21_common_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int soc21_common_hw_fini(void *handle)
+static int soc21_common_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* Disable the doorbell aperture and selfring doorbell aperture
         * separately in hw_fini because soc21_enable_doorbell_aperture
@@ -892,9 +892,7 @@ static int soc21_common_hw_fini(void *handle)
 
 static int soc21_common_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return soc21_common_hw_fini(adev);
+       return soc21_common_hw_fini(ip_block);
 }
 
 static bool soc21_need_reset_on_resume(struct amdgpu_device *adev)
index 8fa1fb4f92455c65fb27184b230f9662d122ce72..b20dc81dc2574e761583d7f6fa6bb4b147dce84c 100644 (file)
@@ -494,9 +494,9 @@ static int soc24_common_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int soc24_common_hw_fini(void *handle)
+static int soc24_common_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* Disable the doorbell aperture and selfring doorbell aperture
         * separately in hw_fini because soc21_enable_doorbell_aperture
@@ -514,9 +514,7 @@ static int soc24_common_hw_fini(void *handle)
 
 static int soc24_common_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return soc24_common_hw_fini(adev);
+       return soc24_common_hw_fini(ip_block);
 }
 
 static int soc24_common_resume(struct amdgpu_ip_block *ip_block)
index b4fa3c74cb439de60620368edc2706bf4379686f..45fb5140c8b71238357295443b229cd132578487 100644 (file)
@@ -336,20 +336,16 @@ static int tonga_ih_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int tonga_ih_hw_fini(void *handle)
+static int tonga_ih_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       tonga_ih_irq_disable(adev);
+       tonga_ih_irq_disable(ip_block->adev);
 
        return 0;
 }
 
 static int tonga_ih_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return tonga_ih_hw_fini(adev);
+       return tonga_ih_hw_fini(ip_block);
 }
 
 static int tonga_ih_resume(struct amdgpu_ip_block *ip_block)
@@ -405,12 +401,10 @@ static bool tonga_ih_check_soft_reset(struct amdgpu_ip_block *ip_block)
 
 static int tonga_ih_pre_soft_reset(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       if (!adev->irq.srbm_soft_reset)
+       if (!ip_block->adev->irq.srbm_soft_reset)
                return 0;
 
-       return tonga_ih_hw_fini(adev);
+       return tonga_ih_hw_fini(ip_block);
 }
 
 static int tonga_ih_post_soft_reset(struct amdgpu_ip_block *ip_block)
index 23d1464baa5887fcdef6e6353ca603693386bc1c..c5540c30d1bbc768fbdfb173dbb7e62f23b942ea 100644 (file)
@@ -692,9 +692,9 @@ done:
  *
  * Stop the UVD block, mark ring as not ready any more
  */
-static int uvd_v3_1_hw_fini(void *handle)
+static int uvd_v3_1_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->uvd.idle_work);
 
@@ -740,7 +740,7 @@ static int uvd_v3_1_suspend(struct amdgpu_ip_block *ip_block)
                                                       AMD_CG_STATE_GATE);
        }
 
-       r = uvd_v3_1_hw_fini(adev);
+       r = uvd_v3_1_hw_fini(ip_block);
        if (r)
                return r;
 
index d7f5a481cf1b4f991a1189874ffd61833c59374f..02e2dda63828265901ccb57b5cd47ad927ed4df9 100644 (file)
@@ -206,9 +206,9 @@ done:
  *
  * Stop the UVD block, mark ring as not ready any more
  */
-static int uvd_v4_2_hw_fini(void *handle)
+static int uvd_v4_2_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->uvd.idle_work);
 
@@ -254,7 +254,7 @@ static int uvd_v4_2_suspend(struct amdgpu_ip_block *ip_block)
                                                       AMD_CG_STATE_GATE);
        }
 
-       r = uvd_v4_2_hw_fini(adev);
+       r = uvd_v4_2_hw_fini(ip_block);
        if (r)
                return r;
 
index 3dc6a66a481c9f45e627c97954ec13d6608a09c8..d84b49064138d6f6c4bc6b675cc08e9043a4076c 100644 (file)
@@ -204,9 +204,9 @@ done:
  *
  * Stop the UVD block, mark ring as not ready any more
  */
-static int uvd_v5_0_hw_fini(void *handle)
+static int uvd_v5_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->uvd.idle_work);
 
@@ -252,7 +252,7 @@ static int uvd_v5_0_suspend(struct amdgpu_ip_block *ip_block)
                                                       AMD_CG_STATE_GATE);
        }
 
-       r = uvd_v5_0_hw_fini(adev);
+       r = uvd_v5_0_hw_fini(ip_block);
        if (r)
                return r;
 
index a0f3860d18efe24164a0f6661d7653d013f08c49..d14b1769f74ce55c022989b5bdd8ab12683ee3d9 100644 (file)
@@ -528,9 +528,9 @@ done:
  *
  * Stop the UVD block, mark ring as not ready any more
  */
-static int uvd_v6_0_hw_fini(void *handle)
+static int uvd_v6_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->uvd.idle_work);
 
@@ -576,7 +576,7 @@ static int uvd_v6_0_suspend(struct amdgpu_ip_block *ip_block)
                                                       AMD_CG_STATE_GATE);
        }
 
-       r = uvd_v6_0_hw_fini(adev);
+       r = uvd_v6_0_hw_fini(ip_block);
        if (r)
                return r;
 
index 1a18ffdb987f7358bcd888b98bbf6417118a3dc5..52ce3ac38215cf4fff9e483051ea0b133cbf3170 100644 (file)
@@ -592,9 +592,9 @@ done:
  *
  * Stop the UVD block, mark ring as not ready any more
  */
-static int uvd_v7_0_hw_fini(void *handle)
+static int uvd_v7_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->uvd.idle_work);
 
@@ -644,7 +644,7 @@ static int uvd_v7_0_suspend(struct amdgpu_ip_block *ip_block)
                                                       AMD_CG_STATE_GATE);
        }
 
-       r = uvd_v7_0_hw_fini(adev);
+       r = uvd_v7_0_hw_fini(ip_block);
        if (r)
                return r;
 
index 924afe16a902327a9bfdcb3890e08b5bd0c33450..a4531000ec0bfc7f8ec9070493b5a419bfc2eba2 100644 (file)
@@ -481,11 +481,9 @@ static int vce_v2_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int vce_v2_0_hw_fini(void *handle)
+static int vce_v2_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       cancel_delayed_work_sync(&adev->vce.idle_work);
+       cancel_delayed_work_sync(&ip_block->adev->vce.idle_work);
 
        return 0;
 }
@@ -519,7 +517,7 @@ static int vce_v2_0_suspend(struct amdgpu_ip_block *ip_block)
                                                       AMD_CG_STATE_GATE);
        }
 
-       r = vce_v2_0_hw_fini(adev);
+       r = vce_v2_0_hw_fini(ip_block);
        if (r)
                return r;
 
index a1ed38348713895d1b585e2fcf79de5b4b303e0b..9f9a9d89bcdc24129c2c626504e3e8c309c622f3 100644 (file)
@@ -485,15 +485,10 @@ static int vce_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int vce_v3_0_hw_fini(void *handle)
+static int vce_v3_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-       struct amdgpu_ip_block *ip_block;
-
-       ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_VCE);
-       if (!ip_block)
-               return -EINVAL;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->vce.idle_work);
 
@@ -533,7 +528,7 @@ static int vce_v3_0_suspend(struct amdgpu_ip_block *ip_block)
                                                       AMD_CG_STATE_GATE);
        }
 
-       r = vce_v3_0_hw_fini(adev);
+       r = vce_v3_0_hw_fini(ip_block);
        if (r)
                return r;
 
index 3dc4e9310128c90fb58e47f10e3b119742f990e2..f4d2650e6b7a21cd9396456c1e2836b85d653ceb 100644 (file)
@@ -536,14 +536,9 @@ static int vce_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int vce_v4_0_hw_fini(void *handle)
+static int vce_v4_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-       struct amdgpu_ip_block *ip_block;
-
-       ip_block = amdgpu_device_ip_get_ip_block(adev, AMD_IP_BLOCK_TYPE_VCE);
-       if (!ip_block)
-               return -EINVAL;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->vce.idle_work);
 
@@ -599,7 +594,7 @@ static int vce_v4_0_suspend(struct amdgpu_ip_block *ip_block)
                                                       AMD_CG_STATE_GATE);
        }
 
-       r = vce_v4_0_hw_fini(adev);
+       r = vce_v4_0_hw_fini(ip_block);
        if (r)
                return r;
 
index d5da383897da0a9f8c74a353691f3506e89a8add..c069c6d89e3831a753d5f80cb416d9f3056668bc 100644 (file)
@@ -272,9 +272,9 @@ static int vcn_v1_0_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the VCN block, mark ring as not ready any more
  */
-static int vcn_v1_0_hw_fini(void *handle)
+static int vcn_v1_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
 
@@ -306,7 +306,7 @@ static int vcn_v1_0_suspend(struct amdgpu_ip_block *ip_block)
                        amdgpu_dpm_enable_uvd(adev, false);
        }
 
-       r = vcn_v1_0_hw_fini(adev);
+       r = vcn_v1_0_hw_fini(ip_block);
        if (r)
                return r;
 
index 5f5b3350672eb3ba9b2d3c21e411ee00e806fede..c104c47301c7f88ee82242c518c7294cc35d4c29 100644 (file)
@@ -309,9 +309,9 @@ static int vcn_v2_0_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the VCN block, mark ring as not ready any more
  */
-static int vcn_v2_0_hw_fini(void *handle)
+static int vcn_v2_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
 
@@ -333,13 +333,12 @@ static int vcn_v2_0_hw_fini(void *handle)
 static int vcn_v2_0_suspend(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = vcn_v2_0_hw_fini(adev);
+       r = vcn_v2_0_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_vcn_suspend(adev);
+       r = amdgpu_vcn_suspend(ip_block->adev);
 
        return r;
 }
index a86d62f6aea6a84ba63693010160d407baaa60d1..e76e1168d6f8d9b581c712049130e2a320227348 100644 (file)
@@ -385,9 +385,9 @@ static int vcn_v2_5_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the VCN block, mark ring as not ready any more
  */
-static int vcn_v2_5_hw_fini(void *handle)
+static int vcn_v2_5_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int i;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
@@ -418,13 +418,12 @@ static int vcn_v2_5_hw_fini(void *handle)
 static int vcn_v2_5_suspend(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = vcn_v2_5_hw_fini(adev);
+       r = vcn_v2_5_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_vcn_suspend(adev);
+       r = amdgpu_vcn_suspend(ip_block->adev);
 
        return r;
 }
index 7c11f3f7775603bc873afdc422127723edb3d1f4..51ea9a83204f6e75274425d6ac65f7d9374adc07 100644 (file)
@@ -417,9 +417,9 @@ static int vcn_v3_0_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the VCN block, mark ring as not ready any more
  */
-static int vcn_v3_0_hw_fini(void *handle)
+static int vcn_v3_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int i;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
@@ -450,13 +450,12 @@ static int vcn_v3_0_hw_fini(void *handle)
 static int vcn_v3_0_suspend(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = vcn_v3_0_hw_fini(adev);
+       r = vcn_v3_0_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_vcn_suspend(adev);
+       r = amdgpu_vcn_suspend(ip_block->adev);
 
        return r;
 }
index 8f0f56e21606d4232288105570f0c76cf40836de..e33cc611f2154a30dfcadfc197f63fbc9dac6b87 100644 (file)
@@ -345,9 +345,9 @@ static int vcn_v4_0_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the VCN block, mark ring as not ready any more
  */
-static int vcn_v4_0_hw_fini(void *handle)
+static int vcn_v4_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int i;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
@@ -379,13 +379,12 @@ static int vcn_v4_0_hw_fini(void *handle)
 static int vcn_v4_0_suspend(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = vcn_v4_0_hw_fini(adev);
+       r = vcn_v4_0_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_vcn_suspend(adev);
+       r = amdgpu_vcn_suspend(ip_block->adev);
 
        return r;
 }
index 0ace2ed73a0d5432ada6d6c7fca6269c622db32b..f02699a92e501ed40ebdd595352f4f1a2e1cf073 100644 (file)
@@ -312,9 +312,9 @@ static int vcn_v4_0_3_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the VCN block, mark ring as not ready any more
  */
-static int vcn_v4_0_3_hw_fini(void *handle)
+static int vcn_v4_0_3_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
 
@@ -333,14 +333,13 @@ static int vcn_v4_0_3_hw_fini(void *handle)
  */
 static int vcn_v4_0_3_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
-       r = vcn_v4_0_3_hw_fini(adev);
+       r = vcn_v4_0_3_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_vcn_suspend(adev);
+       r = amdgpu_vcn_suspend(ip_block->adev);
 
        return r;
 }
index 45341dce246c1143a19794c9487c3b0368be770a..6d277ee27f46340850db520326355f2e63fc2985 100644 (file)
@@ -295,9 +295,9 @@ static int vcn_v4_0_5_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the VCN block, mark ring as not ready any more
  */
-static int vcn_v4_0_5_hw_fini(void *handle)
+static int vcn_v4_0_5_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int i;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
@@ -327,13 +327,12 @@ static int vcn_v4_0_5_hw_fini(void *handle)
 static int vcn_v4_0_5_suspend(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = vcn_v4_0_5_hw_fini(adev);
+       r = vcn_v4_0_5_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_vcn_suspend(adev);
+       r = amdgpu_vcn_suspend(ip_block->adev);
 
        return r;
 }
index a348eb2c305444f70aa43a85b9780e739b9d450b..89e813b7ba5dff89a94c6ab4360f5b2a290081e9 100644 (file)
@@ -259,9 +259,9 @@ static int vcn_v5_0_0_hw_init(struct amdgpu_ip_block *ip_block)
  *
  * Stop the VCN block, mark ring as not ready any more
  */
-static int vcn_v5_0_0_hw_fini(void *handle)
+static int vcn_v5_0_0_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int i;
 
        cancel_delayed_work_sync(&adev->vcn.idle_work);
@@ -291,13 +291,12 @@ static int vcn_v5_0_0_hw_fini(void *handle)
 static int vcn_v5_0_0_suspend(struct amdgpu_ip_block *ip_block)
 {
        int r;
-       struct amdgpu_device *adev = ip_block->adev;
 
-       r = vcn_v5_0_0_hw_fini(adev);
+       r = vcn_v5_0_0_hw_fini(ip_block);
        if (r)
                return r;
 
-       r = amdgpu_vcn_suspend(adev);
+       r = amdgpu_vcn_suspend(ip_block->adev);
 
        return r;
 }
index 20d896b6d4fe4cdc6897cc603e4589e6b20f44e0..73de5909f655ba09510a34382b5a1c7228b1c41f 100644 (file)
@@ -539,20 +539,16 @@ static int vega10_ih_hw_init(struct amdgpu_ip_block *ip_block)
        return vega10_ih_irq_init(ip_block->adev);
 }
 
-static int vega10_ih_hw_fini(void *handle)
+static int vega10_ih_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       vega10_ih_irq_disable(adev);
+       vega10_ih_irq_disable(ip_block->adev);
 
        return 0;
 }
 
 static int vega10_ih_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return vega10_ih_hw_fini(adev);
+       return vega10_ih_hw_fini(ip_block);
 }
 
 static int vega10_ih_resume(struct amdgpu_ip_block *ip_block)
index 513a7abce8e2bd1e52ff021974d11f85ea0ec1f6..a42404a58015d1f58575d8b6bee82c9214d27a09 100644 (file)
@@ -607,20 +607,16 @@ static int vega20_ih_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int vega20_ih_hw_fini(void *handle)
+static int vega20_ih_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
-
-       vega20_ih_irq_disable(adev);
+       vega20_ih_irq_disable(ip_block->adev);
 
        return 0;
 }
 
 static int vega20_ih_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return vega20_ih_hw_fini(adev);
+       return vega20_ih_hw_fini(ip_block);
 }
 
 static int vega20_ih_resume(struct amdgpu_ip_block *ip_block)
index eb4de59b8b931e4758d38b23ff2411e54208234e..4996049dc1995d41364631a213641f1dd2f93b00 100644 (file)
@@ -1718,9 +1718,9 @@ static int vi_common_hw_init(struct amdgpu_ip_block *ip_block)
        return 0;
 }
 
-static int vi_common_hw_fini(void *handle)
+static int vi_common_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* enable the doorbell aperture */
        vi_enable_doorbell_aperture(adev, false);
@@ -1733,9 +1733,7 @@ static int vi_common_hw_fini(void *handle)
 
 static int vi_common_suspend(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = ip_block->adev;
-
-       return vi_common_hw_fini(adev);
+       return vi_common_hw_fini(ip_block);
 }
 
 static int vi_common_resume(struct amdgpu_ip_block *ip_block)
index 484758be24275b3603f1db07fd27df3305e94349..133fe97333960e1ec622290d2dd7f0cc7a5d6189 100644 (file)
@@ -2830,9 +2830,9 @@ static int dm_hw_init(struct amdgpu_ip_block *ip_block)
  * cleanup. This involves cleaning up the DRM device, DC, and any modules that
  * were loaded. Also flush IRQ workqueues and disable them.
  */
-static int dm_hw_fini(void *handle)
+static int dm_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        amdgpu_dm_hpd_fini(adev);
 
index ecf60a8d7be5fac07373daf28414b03211771979..d892273fdb10dd583142b6cf33403cac907b63b6 100644 (file)
@@ -385,7 +385,7 @@ struct amd_ip_funcs {
        int (*sw_fini)(struct amdgpu_ip_block *ip_block);
        int (*early_fini)(struct amdgpu_ip_block *ip_block);
        int (*hw_init)(struct amdgpu_ip_block *ip_block);
-       int (*hw_fini)(void *handle);
+       int (*hw_fini)(struct amdgpu_ip_block *ip_block);
        void (*late_fini)(struct amdgpu_ip_block *ip_block);
        int (*prepare_suspend)(struct amdgpu_ip_block *ip_block);
        int (*suspend)(struct amdgpu_ip_block *ip_block);
index 59803eaed0c23e6d08b10e3986a865bbf23a839a..2cd6cb991f29c847ae89d8104d13951c93e9c69e 100644 (file)
@@ -3052,9 +3052,9 @@ static int kv_dpm_hw_init(struct amdgpu_ip_block *ip_block)
        return ret;
 }
 
-static int kv_dpm_hw_fini(void *handle)
+static int kv_dpm_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (adev->pm.dpm_enabled)
                kv_dpm_disable(adev);
index a3915ef274f99c9d79560e6d38aa3afd0b4d5178..a4908f0402f1ab8d6f1a3063f522f5af02e897e3 100644 (file)
@@ -7795,9 +7795,9 @@ static int si_dpm_hw_init(struct amdgpu_ip_block *ip_block)
        return ret;
 }
 
-static int si_dpm_hw_fini(void *handle)
+static int si_dpm_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (adev->pm.dpm_enabled)
                si_dpm_disable(adev);
index 77aba184a8d2fb30a58622f84a8e9c993fb00f7b..f193c77cc1413b866180cb24f9bd865db25625f6 100644 (file)
@@ -173,10 +173,9 @@ static int pp_hw_init(struct amdgpu_ip_block *ip_block)
        return ret;
 }
 
-static int pp_hw_fini(void *handle)
+static int pp_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = handle;
-       struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle;
+       struct pp_hwmgr *hwmgr = ip_block->adev->powerplay.pp_handle;
 
        cancel_delayed_work_sync(&hwmgr->swctf_delayed_work);
 
index 246eba201ff6c09c828ac1b98a2854b1549c8781..ec92e24b7bda52dfc4ec97ebd21811c61312e794 100644 (file)
@@ -2009,9 +2009,9 @@ static int smu_reset_mp1_state(struct smu_context *smu)
        return ret;
 }
 
-static int smu_hw_fini(void *handle)
+static int smu_hw_fini(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct smu_context *smu = adev->powerplay.pp_handle;
        int ret;
 
@@ -2060,7 +2060,7 @@ static int smu_reset(struct smu_context *smu)
        if (!ip_block)
                return -EINVAL;
 
-       ret = smu_hw_fini(adev);
+       ret = smu_hw_fini(ip_block);
        if (ret)
                return ret;