]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
drm/amdgpu: update the handle ptr in early_init
authorSunil Khatri <sunil.khatri@amd.com>
Wed, 25 Sep 2024 11:29:51 +0000 (16:59 +0530)
committerAlex Deucher <alexander.deucher@amd.com>
Tue, 1 Oct 2024 21:40:22 +0000 (17:40 -0400)
update the handle ptr to amdgpu_ip_block ptr
for all functions pointers on early_init.

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>
86 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_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_v1_0.c
drivers/gpu/drm/amd/amdgpu/jpeg_v1_0.h
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 bf6c4a0d0525240d98634d6bc5f65f8a29ceeb9e..c4ca5987567922f51405f397e186d76e4826f770 100644 (file)
@@ -585,7 +585,7 @@ static int acp_resume(void *handle)
        return 0;
 }
 
-static int acp_early_init(void *handle)
+static int acp_early_init(struct amdgpu_ip_block *ip_block)
 {
        return 0;
 }
index f60ff041c0e26bcac9a903d43e417f5e1ba00ba3..4dccadea220a223af539c56e0814ea962529dff7 100644 (file)
@@ -2611,25 +2611,25 @@ static int amdgpu_device_ip_early_init(struct amdgpu_device *adev)
 
        total = true;
        for (i = 0; i < adev->num_ip_blocks; i++) {
+               ip_block = &adev->ip_blocks[i];
+
                if ((amdgpu_ip_block_mask & (1 << i)) == 0) {
                        DRM_WARN("disabled ip block: %d <%s>\n",
                                  i, adev->ip_blocks[i].version->funcs->name);
                        adev->ip_blocks[i].status.valid = false;
-               } else {
-                       if (adev->ip_blocks[i].version->funcs->early_init) {
-                               r = adev->ip_blocks[i].version->funcs->early_init((void *)adev);
-                               if (r == -ENOENT) {
-                                       adev->ip_blocks[i].status.valid = false;
-                               } else if (r) {
-                                       DRM_ERROR("early_init of IP block <%s> failed %d\n",
-                                                 adev->ip_blocks[i].version->funcs->name, r);
-                                       total = false;
-                               } else {
-                                       adev->ip_blocks[i].status.valid = true;
-                               }
+               } else if (ip_block->version->funcs->early_init) {
+                       r = ip_block->version->funcs->early_init(ip_block);
+                       if (r == -ENOENT) {
+                               adev->ip_blocks[i].status.valid = false;
+                       } else if (r) {
+                               DRM_ERROR("early_init of IP block <%s> failed %d\n",
+                                         adev->ip_blocks[i].version->funcs->name, r);
+                               total = false;
                        } else {
                                adev->ip_blocks[i].status.valid = true;
                        }
+               } else {
+                       adev->ip_blocks[i].status.valid = true;
                }
                /* get the vbios after the asic_funcs are set up */
                if (adev->ip_blocks[i].version->type == AMD_IP_BLOCK_TYPE_COMMON) {
index 4766e99dd98fb0332325d72ed4c92b71877977f0..7c1f17dc6b4b6b06bcc481084f857dd17543e021 100644 (file)
@@ -122,9 +122,10 @@ static int isp_load_fw_by_psp(struct amdgpu_device *adev)
        return r;
 }
 
-static int isp_early_init(void *handle)
+static int isp_early_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;
 
        switch (amdgpu_ip_version(adev, ISP_HWIP, 0)) {
index 944dad9ad29f864ee2f595fc8f50ab7e22dcd7ff..8f07dad9e4498efecc309cccee8b0aad74964b11 100644 (file)
@@ -159,9 +159,9 @@ static int psp_init_sriov_microcode(struct psp_context *psp)
        return ret;
 }
 
-static int psp_early_init(void *handle)
+static int psp_early_init(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;
 
        psp->autoload_supported = true;
index 6162582d0aa2721704a13a1ec68309468501934d..d7e3773413676af44a643ed1bc4f74e24ca2a0be 100644 (file)
@@ -765,9 +765,9 @@ static int umsch_mm_init(struct amdgpu_device *adev)
 }
 
 
-static int umsch_mm_early_init(void *handle)
+static int umsch_mm_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        switch (amdgpu_ip_version(adev, VCN_HWIP, 0)) {
        case IP_VERSION(4, 0, 5):
index 5acd20ff59797bb687b1d4cf903d4da4bd7ecb6c..c9c4e8c7dc9f5ebab0ecf9203f1152179072bac0 100644 (file)
@@ -295,9 +295,9 @@ int amdgpu_vpe_ring_fini(struct amdgpu_vpe *vpe)
        return 0;
 }
 
-static int vpe_early_init(void *handle)
+static int vpe_early_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;
 
        switch (amdgpu_ip_version(adev, VPE_HWIP, 0)) {
index cf1d5d462b676ac49ba082d0629c8033f3ec214b..0a0114de11b49cc2525474c8d3b10489cd569189 100644 (file)
@@ -1985,9 +1985,9 @@ static const struct amdgpu_asic_funcs cik_asic_funcs =
        .query_video_codecs = &cik_query_video_codecs,
 };
 
-static int cik_common_early_init(void *handle)
+static int cik_common_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->smc_rreg = &cik_smc_rreg;
        adev->smc_wreg = &cik_smc_wreg;
index 576baa9dbb0e1caf3b1ea19f4f483cdba1f1cd63..5ccd7e2ebf675bdf9d743ace4f4248cbf72bca69 100644 (file)
@@ -283,9 +283,9 @@ static void cik_ih_set_rptr(struct amdgpu_device *adev,
        WREG32(mmIH_RB_RPTR, ih->rptr);
 }
 
-static int cik_ih_early_init(void *handle)
+static int cik_ih_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int ret;
 
        ret = amdgpu_irq_add_domain(adev);
index 952737de94111c9a771036fbc4954ab71cdcd350..3565dbcf7e38de27cd483029b1f131b5fd78ac96 100644 (file)
@@ -918,9 +918,9 @@ static void cik_enable_sdma_mgls(struct amdgpu_device *adev,
        }
 }
 
-static int cik_sdma_early_init(void *handle)
+static int cik_sdma_early_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->sdma.num_instances = SDMA_MAX_INSTANCE;
index 0726437873845954303b58f3fae00a0f99282f32..bbc50a8e3bc481b4455bfbd8004101139d30f013 100644 (file)
@@ -274,9 +274,9 @@ static void cz_ih_set_rptr(struct amdgpu_device *adev,
        WREG32(mmIH_RB_RPTR, ih->rptr);
 }
 
-static int cz_ih_early_init(void *handle)
+static int cz_ih_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int ret;
 
        ret = amdgpu_irq_add_domain(adev);
index 70c1399f738defc91de1cb4ffb2b92dd4b134817..a7a48ad986988e8bc3a3208b73fbd31123d96483 100644 (file)
@@ -2738,9 +2738,9 @@ static int dce_v10_0_crtc_init(struct amdgpu_device *adev, int index)
        return 0;
 }
 
-static int dce_v10_0_early_init(void *handle)
+static int dce_v10_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->audio_endpt_rreg = &dce_v10_0_audio_endpt_rreg;
        adev->audio_endpt_wreg = &dce_v10_0_audio_endpt_wreg;
index f154c24499c8a42b8230623c693cd34812571e66..0b8017a9b925abf986f0663137ec8b225c6ee486 100644 (file)
@@ -2851,9 +2851,9 @@ static int dce_v11_0_crtc_init(struct amdgpu_device *adev, int index)
        return 0;
 }
 
-static int dce_v11_0_early_init(void *handle)
+static int dce_v11_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->audio_endpt_rreg = &dce_v11_0_audio_endpt_rreg;
        adev->audio_endpt_wreg = &dce_v11_0_audio_endpt_wreg;
index a7fcb135827f8bf02d2d3f25a4375e5ef3a66f97..2c074d35bb13e92dcd76d157bfb59d19ede24dad 100644 (file)
@@ -2633,9 +2633,9 @@ static int dce_v6_0_crtc_init(struct amdgpu_device *adev, int index)
        return 0;
 }
 
-static int dce_v6_0_early_init(void *handle)
+static int dce_v6_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->audio_endpt_rreg = &dce_v6_0_audio_endpt_rreg;
        adev->audio_endpt_wreg = &dce_v6_0_audio_endpt_wreg;
index 77ac3f114d241117fb9cf2f070e8d316b2691c97..71197d58c92d33786cb0480e412598b4ce32016f 100644 (file)
@@ -2644,9 +2644,9 @@ static int dce_v8_0_crtc_init(struct amdgpu_device *adev, int index)
        return 0;
 }
 
-static int dce_v8_0_early_init(void *handle)
+static int dce_v8_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->audio_endpt_rreg = &dce_v8_0_audio_endpt_rreg;
        adev->audio_endpt_wreg = &dce_v8_0_audio_endpt_wreg;
index 4b889a2acb109fcee8c7cc36e19fe1b8b81257de..3d0969a7ba69d60439a5da763d63557001832701 100644 (file)
@@ -7678,9 +7678,9 @@ static void gfx_v10_0_ring_emit_gds_switch(struct amdgpu_ring *ring,
                                    (1 << (oa_size + oa_base)) - (1 << oa_base));
 }
 
-static int gfx_v10_0_early_init(void *handle)
+static int gfx_v10_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->gfx.funcs = &gfx_v10_0_gfx_funcs;
 
index 3f29b36323a155b55eb7a8adc519d1a56364d434..690cd7b173f7200dce8b687e69f4d784fd1cff85 100644 (file)
@@ -4997,9 +4997,9 @@ static void gfx_v11_0_ring_emit_gds_switch(struct amdgpu_ring *ring,
                                    (1 << (oa_size + oa_base)) - (1 << oa_base));
 }
 
-static int gfx_v11_0_early_init(void *handle)
+static int gfx_v11_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->gfx.funcs = &gfx_v11_0_gfx_funcs;
 
index 3044436436c862eafb6df3adc73f673dad7c2503..6423b20e9156c7c037b08aa6404dd5466b76731d 100644 (file)
@@ -3695,9 +3695,9 @@ static uint64_t gfx_v12_0_get_gpu_clock_counter(struct amdgpu_device *adev)
        return clock;
 }
 
-static int gfx_v12_0_early_init(void *handle)
+static int gfx_v12_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->gfx.funcs = &gfx_v12_0_gfx_funcs;
 
index 564f0b9336b6aad4e0a0c3e3c89ee388c8a912ed..cc9f9b10b435bc5ae15dbf5cfb835b44e8006158 100644 (file)
@@ -3023,9 +3023,9 @@ static const struct amdgpu_rlc_funcs gfx_v6_0_rlc_funcs = {
        .start = gfx_v6_0_rlc_start
 };
 
-static int gfx_v6_0_early_init(void *handle)
+static int gfx_v6_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->gfx.xcc_mask = 1;
        adev->gfx.num_gfx_rings = GFX6_NUM_GFX_RINGS;
index f146806c4633babf2dbef74d30101a1cf3e1f5e0..3babf5b5a9dd23899b01b986f0f5282faf18fa5e 100644 (file)
@@ -4134,9 +4134,9 @@ static const struct amdgpu_rlc_funcs gfx_v7_0_rlc_funcs = {
        .update_spm_vmid = gfx_v7_0_update_spm_vmid
 };
 
-static int gfx_v7_0_early_init(void *handle)
+static int gfx_v7_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->gfx.xcc_mask = 1;
        adev->gfx.num_gfx_rings = GFX7_NUM_GFX_RINGS;
index bc8295812cc8429f9f0a14cc4d015f1e8b447219..e80e071f193ce6449da235f2f9b9a6e80c119e9e 100644 (file)
@@ -5254,9 +5254,9 @@ static const struct amdgpu_gfx_funcs gfx_v8_0_gfx_funcs = {
        .select_me_pipe_q = &gfx_v8_0_select_me_pipe_q
 };
 
-static int gfx_v8_0_early_init(void *handle)
+static int gfx_v8_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->gfx.xcc_mask = 1;
        adev->gfx.num_gfx_rings = GFX8_NUM_GFX_RINGS;
index f9f2410ee7d1c33d6f18575f0c7c37e205563784..8c98511144b2f0ac614e74f116698bc988c34139 100644 (file)
@@ -4766,9 +4766,9 @@ fail:
        return r;
 }
 
-static int gfx_v9_0_early_init(void *handle)
+static int gfx_v9_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->gfx.funcs = &gfx_v9_0_gfx_funcs;
 
index eabe0cf6191c1e946ed3cdcc7fa3f1030b445336..0dee2102d75983c9597fe090301a84d7324631fd 100644 (file)
@@ -2511,9 +2511,9 @@ static void gfx_v9_4_3_ring_emit_gds_switch(struct amdgpu_ring *ring,
                                   (1 << (oa_size + oa_base)) - (1 << oa_base));
 }
 
-static int gfx_v9_4_3_early_init(void *handle)
+static int gfx_v9_4_3_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->gfx.num_compute_rings = min(amdgpu_gfx_get_num_kcq(adev),
                                          AMDGPU_MAX_COMPUTE_RINGS);
index 9784a28921853ffe4aaa13615ef9c8dd19b1fa63..f54f9bb89bcac7f7119040d915ac2deeed47bf0e 100644 (file)
@@ -630,9 +630,9 @@ static void gmc_v10_0_set_gfxhub_funcs(struct amdgpu_device *adev)
 }
 
 
-static int gmc_v10_0_early_init(void *handle)
+static int gmc_v10_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gmc_v10_0_set_mmhub_funcs(adev);
        gmc_v10_0_set_gfxhub_funcs(adev);
index 2797fd84432b22d6ded588a047f40219187a282a..32dec30722ac4a39b2b2de0eb012381d581d182e 100644 (file)
@@ -601,9 +601,9 @@ static void gmc_v11_0_set_gfxhub_funcs(struct amdgpu_device *adev)
        }
 }
 
-static int gmc_v11_0_early_init(void *handle)
+static int gmc_v11_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gmc_v11_0_set_gfxhub_funcs(adev);
        gmc_v11_0_set_mmhub_funcs(adev);
index edcb5351f8cca7ce8f302cacd04189c12bf1cf1a..e0d3d865a59aa2336461f7d9435037a266d21d86 100644 (file)
@@ -604,9 +604,9 @@ static void gmc_v12_0_set_gfxhub_funcs(struct amdgpu_device *adev)
        }
 }
 
-static int gmc_v12_0_early_init(void *handle)
+static int gmc_v12_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gmc_v12_0_set_gfxhub_funcs(adev);
        gmc_v12_0_set_mmhub_funcs(adev);
index d36725666b54ccf8472e4c0ef374ffcfc23071a8..3a524319f31e133bd4382b024293c59da91de2d6 100644 (file)
@@ -762,9 +762,9 @@ static int gmc_v6_0_convert_vram_type(int mc_seq_vram_type)
        }
 }
 
-static int gmc_v6_0_early_init(void *handle)
+static int gmc_v6_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gmc_v6_0_set_gmc_funcs(adev);
        gmc_v6_0_set_irq_funcs(adev);
index 994432fb57eafa155cce1c05b35d2fe6440594b4..489b3c2ab6608bc8ff1b1f814eccd516c7b5eb4d 100644 (file)
@@ -921,9 +921,9 @@ static int gmc_v7_0_convert_vram_type(int mc_seq_vram_type)
        }
 }
 
-static int gmc_v7_0_early_init(void *handle)
+static int gmc_v7_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gmc_v7_0_set_gmc_funcs(adev);
        gmc_v7_0_set_irq_funcs(adev);
index 86488c052f822469483a8e8fa1d69b5023deacc9..d564b1d8c828b2d2518a18096e755c7d3103016f 100644 (file)
@@ -1027,9 +1027,9 @@ static int gmc_v8_0_convert_vram_type(int mc_seq_vram_type)
        }
 }
 
-static int gmc_v8_0_early_init(void *handle)
+static int gmc_v8_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        gmc_v8_0_set_gmc_funcs(adev);
        gmc_v8_0_set_irq_funcs(adev);
index cafcb24449dfb8951bdf63f1c5cf9b8db0d868c2..f274acdc49bc2407f344911ec5d020a548290219 100644 (file)
@@ -1545,9 +1545,9 @@ static void gmc_v9_0_set_xgmi_ras_funcs(struct amdgpu_device *adev)
                adev->gmc.xgmi.ras = &xgmi_ras;
 }
 
-static int gmc_v9_0_early_init(void *handle)
+static int gmc_v9_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /*
         * 9.4.0, 9.4.1 and 9.4.3 don't have XGMI defined
index 07984f7c3ae773a16f4b4668824f39ac4eb2a723..87b29600cf1fb1a5f48302235ef6ac2f9c605645 100644 (file)
@@ -273,9 +273,9 @@ static void iceland_ih_set_rptr(struct amdgpu_device *adev,
        WREG32(mmIH_RB_RPTR, ih->rptr);
 }
 
-static int iceland_ih_early_init(void *handle)
+static int iceland_ih_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int ret;
 
        ret = amdgpu_irq_add_domain(adev);
index 18a761d6ef33061a6c3648408474b2816cef77a5..fa6c7e5fbbe3b3e43a865ec6284bc5480920a659 100644 (file)
@@ -559,9 +559,9 @@ static void ih_v6_0_set_self_irq_funcs(struct amdgpu_device *adev)
        adev->irq.self_irq.funcs = &ih_v6_0_self_irq_funcs;
 }
 
-static int ih_v6_0_early_init(void *handle)
+static int ih_v6_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        ih_v6_0_set_interrupt_funcs(adev);
        ih_v6_0_set_self_irq_funcs(adev);
index 2e0469feca1e92b232fe64a028995cdd5c64f057..ebe23630e8f6744e45c6b7292d97524ba6845acb 100644 (file)
@@ -532,9 +532,9 @@ static void ih_v6_1_set_self_irq_funcs(struct amdgpu_device *adev)
        adev->irq.self_irq.funcs = &ih_v6_1_self_irq_funcs;
 }
 
-static int ih_v6_1_early_init(void *handle)
+static int ih_v6_1_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int ret;
 
        ret = amdgpu_irq_add_domain(adev);
index 6852081fcff216fe615b6fc04d7fe2fc218e75d1..1619f0ba4d1b91449aa886f38748bce4986251f8 100644 (file)
@@ -528,9 +528,9 @@ static void ih_v7_0_set_self_irq_funcs(struct amdgpu_device *adev)
        adev->irq.self_irq.funcs = &ih_v7_0_self_irq_funcs;
 }
 
-static int ih_v7_0_early_init(void *handle)
+static int ih_v7_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        ih_v7_0_set_interrupt_funcs(adev);
        ih_v7_0_set_self_irq_funcs(adev);
index 6e0e88076224bcf3ca3febf0dd36de51edac35fb..8effd6dc65d41b2f00eb17d48e9977dbb596c30f 100644 (file)
@@ -462,9 +462,9 @@ static int jpeg_v1_0_process_interrupt(struct amdgpu_device *adev,
  *
  * Set ring and irq function pointers
  */
-int jpeg_v1_0_early_init(void *handle)
+int jpeg_v1_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->jpeg.num_jpeg_inst = 1;
        adev->jpeg.num_jpeg_rings = 1;
index 9654d22e03763c68590a8c9b576dc3cbb7e35038..791de235cd8bdea398d446b00bcaa4d5c93503dc 100644 (file)
@@ -24,7 +24,7 @@
 #ifndef __JPEG_V1_0_H__
 #define __JPEG_V1_0_H__
 
-int jpeg_v1_0_early_init(void *handle);
+int jpeg_v1_0_early_init(struct amdgpu_ip_block *ip_block);
 int jpeg_v1_0_sw_init(void *handle);
 void jpeg_v1_0_sw_fini(void *handle);
 void jpeg_v1_0_start(struct amdgpu_device *adev, int mode);
index 41c0f8750dc1dbb5132d66e443a8aeb1d7d3c6d3..341c551dad8b0e8c2a73f1b7a7126ca5354b9c40 100644 (file)
@@ -45,9 +45,9 @@ static int jpeg_v2_0_set_powergating_state(void *handle,
  *
  * Set ring and irq function pointers
  */
-static int jpeg_v2_0_early_init(void *handle)
+static int jpeg_v2_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->jpeg.num_jpeg_inst = 1;
        adev->jpeg.num_jpeg_rings = 1;
index eedb9a829d9500d767ba4ee9bf5a5215a0cb1140..ec0fa685e1275fd6abe83704d23081f2d0c4ae35 100644 (file)
@@ -54,9 +54,9 @@ static int amdgpu_ih_clientid_jpeg[] = {
  *
  * Set ring and irq function pointers
  */
-static int jpeg_v2_5_early_init(void *handle)
+static int jpeg_v2_5_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        u32 harvest;
        int i;
 
index b1e7fd25afbcb935f1ac9a446d6775121f8f2628..dd00daa1d7eda7c92f5f482be5833fae4b162167 100644 (file)
@@ -46,9 +46,9 @@ static int jpeg_v3_0_set_powergating_state(void *handle,
  *
  * Set ring and irq function pointers
  */
-static int jpeg_v3_0_early_init(void *handle)
+static int jpeg_v3_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        u32 harvest;
 
index 6c5c1a68a9b7b80be7cf939714822746d2a5565d..b147e0eba31da78a0c0685cba28ac13e1239b0a8 100644 (file)
@@ -52,9 +52,9 @@ static void jpeg_v4_0_dec_ring_set_wptr(struct amdgpu_ring *ring);
  *
  * Set ring and irq function pointers
  */
-static int jpeg_v4_0_early_init(void *handle)
+static int jpeg_v4_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
 
        adev->jpeg.num_jpeg_inst = 1;
index baf86c0e5274d8cb8850ad351824f95da9e98d63..903c47e9e8eb9b8c6402c2ef6ae088e8f195c4b4 100644 (file)
@@ -72,9 +72,9 @@ static inline bool jpeg_v4_0_3_normalizn_reqd(struct amdgpu_device *adev)
  *
  * Set ring and irq function pointers
  */
-static int jpeg_v4_0_3_early_init(void *handle)
+static int jpeg_v4_0_3_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->jpeg.num_jpeg_rings = AMDGPU_MAX_JPEG_RINGS;
 
index 44eeed445ea917a75b1f45fd40fbafc1e2fde2be..48ab3e0a62d25f3724f3a340f5d357dbc5ff9a88 100644 (file)
@@ -65,9 +65,9 @@ static int amdgpu_ih_clientid_jpeg[] = {
  *
  * Set ring and irq function pointers
  */
-static int jpeg_v4_0_5_early_init(void *handle)
+static int jpeg_v4_0_5_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        switch (amdgpu_ip_version(adev, UVD_HWIP, 0)) {
        case IP_VERSION(4, 0, 5):
index d662aa841f97184376a73af57005bc32432557fe..61288104060dea7a37cf41d711531b2924706e85 100644 (file)
@@ -46,9 +46,9 @@ static int jpeg_v5_0_0_set_powergating_state(void *handle,
  *
  * Set ring and irq function pointers
  */
-static int jpeg_v5_0_0_early_init(void *handle)
+static int jpeg_v5_0_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->jpeg.num_jpeg_inst = 1;
        adev->jpeg.num_jpeg_rings = 1;
index e2b3f859a1c0536ea1e278964caf6459a70e4b41..d476cf771bbe6b3d680500650f1e51fa60af2190 100644 (file)
@@ -1653,9 +1653,9 @@ static int mes_v11_0_resume(void *handle)
        return amdgpu_mes_resume(adev);
 }
 
-static int mes_v11_0_early_init(void *handle)
+static int mes_v11_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int pipe, r;
 
        for (pipe = 0; pipe < AMDGPU_MAX_MES_PIPES; pipe++) {
index 8d27421689c9d52fc3d7b7ed233d774199fbfa80..a490d0e2c2cb41c5498930396fbe8d5762e39ef0 100644 (file)
@@ -1617,9 +1617,9 @@ static int mes_v12_0_resume(void *handle)
        return amdgpu_mes_resume(adev);
 }
 
-static int mes_v12_0_early_init(void *handle)
+static int mes_v12_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int pipe, r;
 
        for (pipe = 0; pipe < AMDGPU_MAX_MES_PIPES; pipe++) {
index b281462093f117085fc15643b65ff85d8751db77..17aab897f86b916e6d7114e9c5151b1207a340fc 100644 (file)
@@ -542,9 +542,9 @@ static void navi10_ih_set_self_irq_funcs(struct amdgpu_device *adev)
        adev->irq.self_irq.funcs = &navi10_ih_self_irq_funcs;
 }
 
-static int navi10_ih_early_init(void *handle)
+static int navi10_ih_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        navi10_ih_set_interrupt_funcs(adev);
        navi10_ih_set_self_irq_funcs(adev);
index 4938e6b340e9e40e5d388deaae124e183f5817c1..63a3c725ceb95475924f29a0c20c920446af6f0a 100644 (file)
@@ -634,9 +634,9 @@ static const struct amdgpu_asic_funcs nv_asic_funcs = {
        .query_video_codecs = &nv_query_video_codecs,
 };
 
-static int nv_common_early_init(void *handle)
+static int nv_common_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->nbio.funcs->set_reg_remap(adev);
        adev->smc_rreg = NULL;
index 725392522267ff2aeeeba514ad225513b09dfa84..5b81985588690af8604cd00ddaf58a329c839fd2 100644 (file)
@@ -807,9 +807,9 @@ static void sdma_v2_4_ring_emit_wreg(struct amdgpu_ring *ring,
        amdgpu_ring_write(ring, val);
 }
 
-static int sdma_v2_4_early_init(void *handle)
+static int sdma_v2_4_early_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->sdma.num_instances = SDMA_MAX_INSTANCE;
index e65194fe94af654188c183a8de41b9447312dfcc..37275b38bca82ba2b7bf607140b4b04eecf347f6 100644 (file)
@@ -1080,9 +1080,9 @@ static void sdma_v3_0_ring_emit_wreg(struct amdgpu_ring *ring,
        amdgpu_ring_write(ring, val);
 }
 
-static int sdma_v3_0_early_init(void *handle)
+static int sdma_v3_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int r;
 
        switch (adev->asic_type) {
index f17ce2d53b9299656ef50396157c40a3943fb014..cb5f841047173ba5008cfc7b96c23b3c76074fec 100644 (file)
@@ -1751,9 +1751,9 @@ static bool sdma_v4_0_fw_support_paging_queue(struct amdgpu_device *adev)
        }
 }
 
-static int sdma_v4_0_early_init(void *handle)
+static int sdma_v4_0_early_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 = sdma_v4_0_init_microcode(adev);
index d577b973d0a4090fdafbb3650cb4934d5291479d..c7c4456586cc96df88813e7d8ac3da6eec87911e 100644 (file)
@@ -1290,9 +1290,9 @@ static bool sdma_v4_4_2_fw_support_paging_queue(struct amdgpu_device *adev)
        }
 }
 
-static int sdma_v4_4_2_early_init(void *handle)
+static int sdma_v4_4_2_early_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 = sdma_v4_4_2_init_microcode(adev);
index 397797aef0ea127cb44788d7826053a5b5410b15..475629702fa6160fbbd2968e38f147f1afafe669 100644 (file)
@@ -1389,9 +1389,9 @@ static void sdma_v5_0_ring_emit_reg_write_reg_wait(struct amdgpu_ring *ring,
        amdgpu_ring_emit_reg_wait(ring, reg1, mask, mask);
 }
 
-static int sdma_v5_0_early_init(void *handle)
+static int sdma_v5_0_early_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 = sdma_v5_0_init_microcode(adev);
index de91474b5704922fd2c20df66372827fcaae4544..64583cbeeb3616b6709cc496f90ad417f2a1095b 100644 (file)
@@ -1262,9 +1262,9 @@ static void sdma_v5_2_ring_emit_reg_write_reg_wait(struct amdgpu_ring *ring,
        amdgpu_ring_emit_reg_wait(ring, reg1, mask, mask);
 }
 
-static int sdma_v5_2_early_init(void *handle)
+static int sdma_v5_2_early_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 = amdgpu_sdma_init_microcode(adev, 0, true);
index 5eafc81e82f9460f5e07dfdece3632a444bf9221..5b549e00143eecb20a887848579f404578ff67fa 100644 (file)
@@ -1294,9 +1294,9 @@ static void sdma_v6_0_set_ras_funcs(struct amdgpu_device *adev)
        }
 }
 
-static int sdma_v6_0_early_init(void *handle)
+static int sdma_v6_0_early_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 = amdgpu_sdma_init_microcode(adev, 0, true);
index 8509769db9c01bfa60dd76e6fe901fb4a40ec78a..90baf9a20b227a82f5803a5ff2aa5d3326715ef2 100644 (file)
@@ -1253,9 +1253,9 @@ static void sdma_v7_0_ring_emit_reg_write_reg_wait(struct amdgpu_ring *ring,
        amdgpu_ring_emit_reg_wait(ring, reg1, mask, mask);
 }
 
-static int sdma_v7_0_early_init(void *handle)
+static int sdma_v7_0_early_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 = amdgpu_sdma_init_microcode(adev, 0, true);
index 85235470e872c86d1d61ee332383140d2ab4c5cd..93c68abf447a6023d496dbf3254e2a71f48e560b 100644 (file)
@@ -2022,9 +2022,9 @@ static uint32_t si_get_rev_id(struct amdgpu_device *adev)
                >> CC_DRM_ID_STRAPS__ATI_REV_ID__SHIFT;
 }
 
-static int si_common_early_init(void *handle)
+static int si_common_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->smc_rreg = &si_smc_rreg;
        adev->smc_wreg = &si_smc_wreg;
index 11db5b75583218b379eff99eb0e44bd485632103..791d492e991d4f3f90382b1e97253ede501bae2e 100644 (file)
@@ -457,9 +457,9 @@ static void si_dma_ring_emit_wreg(struct amdgpu_ring *ring,
        amdgpu_ring_write(ring, val);
 }
 
-static int si_dma_early_init(void *handle)
+static int si_dma_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->sdma.num_instances = 2;
 
index 5237395e4fab5e74c2a063fa2c3ef1dc2a45ef98..bd2ae8255498217597ccd4413976a2a04418a56b 100644 (file)
@@ -156,9 +156,9 @@ static void si_ih_set_rptr(struct amdgpu_device *adev,
        WREG32(IH_RB_RPTR, ih->rptr);
 }
 
-static int si_ih_early_init(void *handle)
+static int si_ih_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        si_ih_set_interrupt_funcs(adev);
 
index 619933f252aa5750af1c2697ab2690b5b8d14753..e1161027ec3b7dc8cf86acc202bae3b40efda0a0 100644 (file)
@@ -933,9 +933,9 @@ static const struct amdgpu_asic_funcs aqua_vanjaram_asic_funcs =
        .get_reg_state = &aqua_vanjaram_get_reg_state,
 };
 
-static int soc15_common_early_init(void *handle)
+static int soc15_common_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->nbio.funcs->set_reg_remap(adev);
        adev->smc_rreg = NULL;
index d30ad7d56def9c81d923d0b3697c03e961d20982..c9e88cd4349ae38b2b76c3a21248dc1a59990a29 100644 (file)
@@ -556,9 +556,9 @@ static const struct amdgpu_asic_funcs soc21_asic_funcs = {
        .update_umd_stable_pstate = &soc21_update_umd_stable_pstate,
 };
 
-static int soc21_common_early_init(void *handle)
+static int soc21_common_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->nbio.funcs->set_reg_remap(adev);
        adev->smc_rreg = NULL;
index fd4c3d4f8387981d28f91695c0fdde65831c8315..3dcb3d953509d039ad4e6b50a34c817cd95312b8 100644 (file)
@@ -363,9 +363,9 @@ static const struct amdgpu_asic_funcs soc24_asic_funcs = {
        .update_umd_stable_pstate = &soc24_update_umd_stable_pstate,
 };
 
-static int soc24_common_early_init(void *handle)
+static int soc24_common_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->nbio.funcs->set_reg_remap(adev);
        adev->smc_rreg = NULL;
index 24d49d813607f7fb68393da1f2b3a78f95d862c0..ae27dac9411777f7dea1db5990dd8e35118a91b9 100644 (file)
@@ -283,9 +283,9 @@ static void tonga_ih_set_rptr(struct amdgpu_device *adev,
        }
 }
 
-static int tonga_ih_early_init(void *handle)
+static int tonga_ih_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        int ret;
 
        ret = amdgpu_irq_add_domain(adev);
index 805d6662c88b6d91b02679bca4be56325dc953c0..d5e2b9639238c58f5d5629bdf5524455c337142b 100644 (file)
@@ -531,9 +531,9 @@ static void uvd_v3_1_set_irq_funcs(struct amdgpu_device *adev)
 }
 
 
-static int uvd_v3_1_early_init(void *handle)
+static int uvd_v3_1_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        adev->uvd.num_uvd_inst = 1;
 
        uvd_v3_1_set_ring_funcs(adev);
index 3f19c606f4de5187397077a4f7eae74ac723f690..5c46174dabbf30675e834055b39aafe265267de6 100644 (file)
@@ -90,9 +90,9 @@ static void uvd_v4_2_ring_set_wptr(struct amdgpu_ring *ring)
        WREG32(mmUVD_RBC_RB_WPTR, lower_32_bits(ring->wptr));
 }
 
-static int uvd_v4_2_early_init(void *handle)
+static int uvd_v4_2_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        adev->uvd.num_uvd_inst = 1;
 
        uvd_v4_2_set_ring_funcs(adev);
index efd903c21d48eb7fbf7bf505d459f3a81b66356b..fd4acb1300f936c902be6584a549a5b3b7b2234d 100644 (file)
@@ -88,9 +88,9 @@ static void uvd_v5_0_ring_set_wptr(struct amdgpu_ring *ring)
        WREG32(mmUVD_RBC_RB_WPTR, lower_32_bits(ring->wptr));
 }
 
-static int uvd_v5_0_early_init(void *handle)
+static int uvd_v5_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        adev->uvd.num_uvd_inst = 1;
 
        uvd_v5_0_set_ring_funcs(adev);
index 495de506845540c68534ea9cead558b3662f85a5..e05e81d6fbd49a30fa05fc5578e760df9baa7e64 100644 (file)
@@ -354,9 +354,9 @@ error:
        return r;
 }
 
-static int uvd_v6_0_early_init(void *handle)
+static int uvd_v6_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        adev->uvd.num_uvd_inst = 1;
 
        if (!(adev->flags & AMD_IS_APU) &&
index 6068b784dc6938d0acff333d715108811164a13d..15b8f6211bb580ccf4c2d4336ad7e195677bb258 100644 (file)
@@ -361,9 +361,9 @@ error:
        return r;
 }
 
-static int uvd_v7_0_early_init(void *handle)
+static int uvd_v7_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        if (adev->asic_type == CHIP_VEGA20) {
                u32 harvest;
index 66fada199bda233aa0ffcad230feaf570679e0a8..97ce06228a9108341fa2a4b24ff201ac255e8e0c 100644 (file)
@@ -398,9 +398,9 @@ static void vce_v2_0_enable_mgcg(struct amdgpu_device *adev, bool enable,
        }
 }
 
-static int vce_v2_0_early_init(void *handle)
+static int vce_v2_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->vce.num_rings = 2;
 
index 4bfba2931b088ca3f5dae3165320ff111e65552e..31ca855a950af913d401ee2ee32619509ef541ca 100644 (file)
@@ -396,9 +396,9 @@ static unsigned vce_v3_0_get_harvest_config(struct amdgpu_device *adev)
        }
 }
 
-static int vce_v3_0_early_init(void *handle)
+static int vce_v3_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->vce.harvest_config = vce_v3_0_get_harvest_config(adev);
 
index 0748bf44c880868dde1eb6f92a68ef73d01b4b8f..14ead62ec57db23ba196755e1810035f78352b8c 100644 (file)
@@ -407,9 +407,9 @@ static int vce_v4_0_stop(struct amdgpu_device *adev)
        return 0;
 }
 
-static int vce_v4_0_early_init(void *handle)
+static int vce_v4_0_early_init(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)) /* currently only VCN0 support SRIOV */
                adev->vce.num_rings = 1;
index 21e0962e53c20d16c02f17ced6c583e68f34fea3..451622184838e126ca38f2cd78720851e93b039c 100644 (file)
@@ -100,9 +100,9 @@ static void vcn_v1_0_ring_begin_use(struct amdgpu_ring *ring);
  * Set ring and irq function pointers
  * Load microcode from filesystem
  */
-static int vcn_v1_0_early_init(void *handle)
+static int vcn_v1_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->vcn.num_enc_rings = 2;
 
@@ -110,7 +110,7 @@ static int vcn_v1_0_early_init(void *handle)
        vcn_v1_0_set_enc_ring_funcs(adev);
        vcn_v1_0_set_irq_funcs(adev);
 
-       jpeg_v1_0_early_init(handle);
+       jpeg_v1_0_early_init(ip_block);
 
        return amdgpu_vcn_early_init(adev);
 }
index b6d41d531ef930684c4785719c786e5970be1a4c..18383e7a13ce131e80ef39c77a74d2ff068e1825 100644 (file)
@@ -105,9 +105,9 @@ static int vcn_v2_0_start_sriov(struct amdgpu_device *adev);
  * Set ring and irq function pointers
  * Load microcode from filesystem
  */
-static int vcn_v2_0_early_init(void *handle)
+static int vcn_v2_0_early_init(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))
                adev->vcn.num_enc_rings = 1;
index 6be770a060eff6f36b1336929b7b2e6049e62152..0ba7bc05244792e4efd61e5421c536460d5c0817 100644 (file)
@@ -115,9 +115,9 @@ static int amdgpu_ih_clientid_vcns[] = {
  * Set ring and irq function pointers
  * Load microcode from filesystem
  */
-static int vcn_v2_5_early_init(void *handle)
+static int vcn_v2_5_early_init(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)) {
                adev->vcn.num_vcn_inst = 2;
index 0c2d698ca0464e36c331a6ef4886a410d9a04627..7204e3630052b98a06511a8bf82d1fe40231184e 100644 (file)
@@ -121,9 +121,9 @@ static void vcn_v3_0_enc_ring_set_wptr(struct amdgpu_ring *ring);
  * Set ring and irq function pointers
  * Load microcode from filesystem
  */
-static int vcn_v3_0_early_init(void *handle)
+static int vcn_v3_0_early_init(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)) {
                adev->vcn.num_vcn_inst = VCN_INSTANCES_SIENNA_CICHLID;
index d3aa1a5b2529f44ce1ad3e0aaebd2cba96e033e7..cfebd1255b75859aff233d7a5e9b6acaa2f6e26b 100644 (file)
@@ -111,9 +111,9 @@ static void vcn_v4_0_set_ras_funcs(struct amdgpu_device *adev);
  * Set ring and irq function pointers
  * Load microcode from filesystem
  */
-static int vcn_v4_0_early_init(void *handle)
+static int vcn_v4_0_early_init(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)) {
index ca5ac917f07d31a7b03eb7308ced409258fb7d3f..d64f4735ebf37496ef12b750a4f7013273c9f430 100644 (file)
@@ -102,9 +102,9 @@ static void vcn_v4_0_3_enable_ras(struct amdgpu_device *adev,
  *
  * Set ring and irq function pointers
  */
-static int vcn_v4_0_3_early_init(void *handle)
+static int vcn_v4_0_3_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* re-use enc ring as unified ring */
        adev->vcn.num_enc_rings = 1;
index 0d8aa5a0904b082dbc69ab4f057d6608548716fa..d13f07faae8a0b34c948afe9d6db6cde934fd483 100644 (file)
@@ -109,9 +109,9 @@ static void vcn_v4_0_5_unified_ring_set_wptr(struct amdgpu_ring *ring);
  * Set ring and irq function pointers
  * Load microcode from filesystem
  */
-static int vcn_v4_0_5_early_init(void *handle)
+static int vcn_v4_0_5_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* re-use enc ring as unified ring */
        adev->vcn.num_enc_rings = 1;
index 8a2e217ae5c97604c73df701f6ff25cb1c8a3ec5..d9c92df3843f059763d3ca25e432c9d0a0bbd1d8 100644 (file)
@@ -92,9 +92,9 @@ static void vcn_v5_0_0_unified_ring_set_wptr(struct amdgpu_ring *ring);
  * Set ring and irq function pointers
  * Load microcode from filesystem
  */
-static int vcn_v5_0_0_early_init(void *handle)
+static int vcn_v5_0_0_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        /* re-use enc ring as unified ring */
        adev->vcn.num_enc_rings = 1;
index bf68e18e3824b8e492c2451b655bfcf5068910f6..5b0c81d510e7b1f83a8c4a150a6ab910463d7832 100644 (file)
@@ -472,9 +472,9 @@ static void vega10_ih_set_self_irq_funcs(struct amdgpu_device *adev)
        adev->irq.self_irq.funcs = &vega10_ih_self_irq_funcs;
 }
 
-static int vega10_ih_early_init(void *handle)
+static int vega10_ih_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        vega10_ih_set_interrupt_funcs(adev);
        vega10_ih_set_self_irq_funcs(adev);
index ac439f0565e357bb555c67095fc0b5324356090e..dec7279c8106293e702a2f4a13d2d35943221425 100644 (file)
@@ -526,9 +526,9 @@ static void vega20_ih_set_self_irq_funcs(struct amdgpu_device *adev)
        adev->irq.self_irq.funcs = &vega20_ih_self_irq_funcs;
 }
 
-static int vega20_ih_early_init(void *handle)
+static int vega20_ih_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        vega20_ih_set_interrupt_funcs(adev);
        vega20_ih_set_self_irq_funcs(adev);
index d39c670f622046d37b7ee14bae88eaf10f1147d4..c9ee4491ba64c5c2a1d0eaf9791010933c1d9ac1 100644 (file)
@@ -1455,9 +1455,9 @@ static const struct amdgpu_asic_funcs vi_asic_funcs =
 #define CZ_REV_BRISTOL(rev)     \
        ((rev >= 0xC8 && rev <= 0xCE) || (rev >= 0xE1 && rev <= 0xE6))
 
-static int vi_common_early_init(void *handle)
+static int vi_common_early_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) {
                adev->smc_rreg = &cz_smc_rreg;
index 00c22d212ae6c1968165d3fe8de6118420e11e6a..f597a25b7646e81aa8d882320459a63c6b09ca10 100644 (file)
@@ -968,7 +968,7 @@ static int dm_set_powergating_state(void *handle,
 }
 
 /* Prototypes of private functions */
-static int dm_early_init(void *handle);
+static int dm_early_init(struct amdgpu_ip_block *ip_block);
 
 /* Allocate memory for FBC compressed data  */
 static void amdgpu_dm_fbc_init(struct drm_connector *connector)
@@ -5256,9 +5256,9 @@ static int dm_init_microcode(struct amdgpu_device *adev)
        return r;
 }
 
-static int dm_early_init(void *handle)
+static int dm_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
        struct amdgpu_mode_info *mode_info = &adev->mode_info;
        struct atom_context *ctx = mode_info->atom_context;
        int index = GetIndexIntoMasterTable(DATA, Object_Header);
index 9b02ab1c2048a223ac7c66870824dbb05bd33af9..67d75ac339bf11e603e70af23b7d2af681136a06 100644 (file)
@@ -379,7 +379,7 @@ struct amdgpu_ip_block;
 
 struct amd_ip_funcs {
        char *name;
-       int (*early_init)(void *handle);
+       int (*early_init)(struct amdgpu_ip_block *ip_block);
        int (*late_init)(void *handle);
        int (*sw_init)(void *handle);
        int (*sw_fini)(void *handle);
index e8b6989a40f35a7b29b4fe5c46c479665fc22e91..ff71af96eb1a98f0e41e2b6ad545c72c85f1830e 100644 (file)
@@ -2954,9 +2954,9 @@ static int kv_dpm_get_temp(void *handle)
        return actual_temp;
 }
 
-static int kv_dpm_early_init(void *handle)
+static int kv_dpm_early_init(struct amdgpu_ip_block *ip_block)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->powerplay.pp_funcs = &kv_dpm_funcs;
        adev->powerplay.pp_handle = adev;
index 43028e776c932dc9a4288a2c659481af1b85dd4b..5aa4eca21708ca4cff2e19294467b8168ba3dd18 100644 (file)
@@ -7930,10 +7930,10 @@ static void si_dpm_print_power_state(void *handle,
        amdgpu_dpm_print_ps_status(adev, rps);
 }
 
-static int si_dpm_early_init(void *handle)
+static int si_dpm_early_init(struct amdgpu_ip_block *ip_block)
 {
 
-       struct amdgpu_device *adev = (struct amdgpu_device *)handle;
+       struct amdgpu_device *adev = ip_block->adev;
 
        adev->powerplay.pp_funcs = &si_dpm_funcs;
        adev->powerplay.pp_handle = adev;
index a71c6117d7e54736e439b264ab785d027acf1f96..2af325b9fc197ea0b7b106a17739efef5200ca0a 100644 (file)
@@ -75,11 +75,10 @@ static void amd_powerplay_destroy(struct amdgpu_device *adev)
        hwmgr = NULL;
 }
 
-static int pp_early_init(void *handle)
+static int pp_early_init(struct amdgpu_ip_block *ip_block)
 {
        int ret;
-       struct amdgpu_device *adev = handle;
-
+       struct amdgpu_device *adev = ip_block->adev;
        ret = amd_powerplay_create(adev);
 
        if (ret != 0)
index e0ab175cd0009f5b398bdcc75a41543a1fa55144..59ca1f3b10f130ee2d8ace695369d52031320f08 100644 (file)
@@ -742,9 +742,9 @@ static int smu_set_funcs(struct amdgpu_device *adev)
        return 0;
 }
 
-static int smu_early_init(void *handle)
+static int smu_early_init(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;
        int r;