unlock_srbm(adev);
 }
 
-static void kgd_program_sh_mem_settings(struct kgd_dev *kgd, uint32_t vmid,
+static void kgd_program_sh_mem_settings(struct amdgpu_device *adev, uint32_t vmid,
                                        uint32_t sh_mem_config,
                                        uint32_t sh_mem_ape1_base,
                                        uint32_t sh_mem_ape1_limit,
                                        uint32_t sh_mem_bases)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        lock_srbm(adev, 0, 0, 0, vmid);
 
        WREG32_SOC15(GC, 0, mmSH_MEM_CONFIG, sh_mem_config);
        unlock_srbm(adev);
 }
 
-static int kgd_set_pasid_vmid_mapping(struct kgd_dev *kgd, u32 pasid,
+static int kgd_set_pasid_vmid_mapping(struct amdgpu_device *adev, u32 pasid,
                                        unsigned int vmid)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        /*
         * We have to assume that there is no outstanding mapping.
         * The ATC_VMID_PASID_MAPPING_UPDATE_STATUS bit could be 0 because
  * but still works
  */
 
-static int kgd_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id)
+static int kgd_init_interrupts(struct amdgpu_device *adev, uint32_t pipe_id)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t mec;
        uint32_t pipe;
 
        return 0;
 }
 
-static bool get_atc_vmid_pasid_mapping_info(struct kgd_dev *kgd,
+static bool get_atc_vmid_pasid_mapping_info(struct amdgpu_device *adev,
                                        uint8_t vmid, uint16_t *p_pasid)
 {
        uint32_t value;
-       struct amdgpu_device *adev = (struct amdgpu_device *) kgd;
 
        value = RREG32(SOC15_REG_OFFSET(ATHUB, 0, mmATC_VMID0_PASID_MAPPING)
                     + vmid);
        return !!(value & ATC_VMID0_PASID_MAPPING__VALID_MASK);
 }
 
-static int kgd_address_watch_disable(struct kgd_dev *kgd)
+static int kgd_address_watch_disable(struct amdgpu_device *adev)
 {
        return 0;
 }
 
-static int kgd_address_watch_execute(struct kgd_dev *kgd,
+static int kgd_address_watch_execute(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        uint32_t cntl_val,
                                        uint32_t addr_hi,
        return 0;
 }
 
-static int kgd_wave_control_execute(struct kgd_dev *kgd,
+static int kgd_wave_control_execute(struct amdgpu_device *adev,
                                        uint32_t gfx_index_val,
                                        uint32_t sq_cmd)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t data = 0;
 
        mutex_lock(&adev->grbm_idx_mutex);
        return 0;
 }
 
-static uint32_t kgd_address_watch_get_offset(struct kgd_dev *kgd,
+static uint32_t kgd_address_watch_get_offset(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        unsigned int reg_offset)
 {
        return 0;
 }
 
-static void set_vm_context_page_table_base(struct kgd_dev *kgd, uint32_t vmid,
-               uint64_t page_table_base)
+static void set_vm_context_page_table_base(struct amdgpu_device *adev,
+               uint32_t vmid, uint64_t page_table_base)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        if (!amdgpu_amdkfd_is_kfd_vmid(adev, vmid)) {
                pr_err("trying to set page table base for wrong VMID %u\n",
                       vmid);
        adev->gfxhub.funcs->setup_vm_pt_regs(adev, vmid, page_table_base);
 }
 
-static void program_trap_handler_settings(struct kgd_dev *kgd,
+static void program_trap_handler_settings(struct amdgpu_device *adev,
                uint32_t vmid, uint64_t tba_addr, uint64_t tma_addr)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        lock_srbm(adev, 0, 0, 0, vmid);
 
        /*
 
        unlock_srbm(adev);
 }
 
-static void program_sh_mem_settings_v10_3(struct kgd_dev *kgd, uint32_t vmid,
+static void program_sh_mem_settings_v10_3(struct amdgpu_device *adev, uint32_t vmid,
                                        uint32_t sh_mem_config,
                                        uint32_t sh_mem_ape1_base,
                                        uint32_t sh_mem_ape1_limit,
                                        uint32_t sh_mem_bases)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        lock_srbm(adev, 0, 0, 0, vmid);
 
        WREG32_SOC15(GC, 0, mmSH_MEM_CONFIG, sh_mem_config);
 }
 
 /* ATC is defeatured on Sienna_Cichlid */
-static int set_pasid_vmid_mapping_v10_3(struct kgd_dev *kgd, unsigned int pasid,
+static int set_pasid_vmid_mapping_v10_3(struct amdgpu_device *adev, unsigned int pasid,
                                        unsigned int vmid)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        uint32_t value = pasid << IH_VMID_0_LUT__PASID__SHIFT;
 
        /* Mapping vmid to pasid also for IH block */
        return 0;
 }
 
-static int init_interrupts_v10_3(struct kgd_dev *kgd, uint32_t pipe_id)
+static int init_interrupts_v10_3(struct amdgpu_device *adev, uint32_t pipe_id)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t mec;
        uint32_t pipe;
 
 }
 
 
-static int address_watch_disable_v10_3(struct kgd_dev *kgd)
+static int address_watch_disable_v10_3(struct amdgpu_device *adev)
 {
        return 0;
 }
 
-static int address_watch_execute_v10_3(struct kgd_dev *kgd,
+static int address_watch_execute_v10_3(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        uint32_t cntl_val,
                                        uint32_t addr_hi,
        return 0;
 }
 
-static int wave_control_execute_v10_3(struct kgd_dev *kgd,
+static int wave_control_execute_v10_3(struct amdgpu_device *adev,
                                        uint32_t gfx_index_val,
                                        uint32_t sq_cmd)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t data = 0;
 
        mutex_lock(&adev->grbm_idx_mutex);
        return 0;
 }
 
-static uint32_t address_watch_get_offset_v10_3(struct kgd_dev *kgd,
+static uint32_t address_watch_get_offset_v10_3(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        unsigned int reg_offset)
 {
        return 0;
 }
 
-static void set_vm_context_page_table_base_v10_3(struct kgd_dev *kgd, uint32_t vmid,
-               uint64_t page_table_base)
+static void set_vm_context_page_table_base_v10_3(struct amdgpu_device *adev,
+               uint32_t vmid, uint64_t page_table_base)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        /* SDMA is on gfxhub as well for Navi1* series */
        adev->gfxhub.funcs->setup_vm_pt_regs(adev, vmid, page_table_base);
 }
 
-static void program_trap_handler_settings_v10_3(struct kgd_dev *kgd,
+static void program_trap_handler_settings_v10_3(struct amdgpu_device *adev,
                        uint32_t vmid, uint64_t tba_addr, uint64_t tma_addr)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        lock_srbm(adev, 0, 0, 0, vmid);
 
        /*
 }
 
 #if 0
-uint32_t enable_debug_trap_v10_3(struct kgd_dev *kgd,
+uint32_t enable_debug_trap_v10_3(struct amdgpu_device *adev,
                                uint32_t trap_debug_wave_launch_mode,
                                uint32_t vmid)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t data = 0;
        uint32_t orig_wave_cntl_value;
        uint32_t orig_stall_vmid;
        return 0;
 }
 
-uint32_t disable_debug_trap_v10_3(struct kgd_dev *kgd)
+uint32_t disable_debug_trap_v10_3(struct amdgpu_device *adev)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        mutex_lock(&adev->grbm_idx_mutex);
 
        WREG32(SOC15_REG_OFFSET(GC, 0, mmSPI_GDBG_TRAP_MASK), 0);
        return 0;
 }
 
-uint32_t set_wave_launch_trap_override_v10_3(struct kgd_dev *kgd,
+uint32_t set_wave_launch_trap_override_v10_3(struct amdgpu_device *adev,
                                                uint32_t trap_override,
                                                uint32_t trap_mask)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t data = 0;
 
        mutex_lock(&adev->grbm_idx_mutex);
        return 0;
 }
 
-uint32_t set_wave_launch_mode_v10_3(struct kgd_dev *kgd,
+uint32_t set_wave_launch_mode_v10_3(struct amdgpu_device *adev,
                                        uint8_t wave_launch_mode,
                                        uint32_t vmid)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t data = 0;
        bool is_stall_mode;
        bool is_mode_set;
  *     sem_rearm_wait_time      -- Wait Count for Semaphore re-arm.
  *     deq_retry_wait_time      -- Wait Count for Global Wave Syncs.
  */
-void get_iq_wait_times_v10_3(struct kgd_dev *kgd,
+void get_iq_wait_times_v10_3(struct amdgpu_device *adev,
                                        uint32_t *wait_times)
 
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        *wait_times = RREG32(SOC15_REG_OFFSET(GC, 0, mmCP_IQ_WAIT_TIME2));
 }
 
-void build_grace_period_packet_info_v10_3(struct kgd_dev *kgd,
+void build_grace_period_packet_info_v10_3(struct amdgpu_device *adev,
                                                uint32_t wait_times,
                                                uint32_t grace_period,
                                                uint32_t *reg_offset,
 
        unlock_srbm(adev);
 }
 
-static void kgd_program_sh_mem_settings(struct kgd_dev *kgd, uint32_t vmid,
+static void kgd_program_sh_mem_settings(struct amdgpu_device *adev, uint32_t vmid,
                                        uint32_t sh_mem_config,
                                        uint32_t sh_mem_ape1_base,
                                        uint32_t sh_mem_ape1_limit,
                                        uint32_t sh_mem_bases)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        lock_srbm(adev, 0, 0, 0, vmid);
 
        WREG32(mmSH_MEM_CONFIG, sh_mem_config);
        unlock_srbm(adev);
 }
 
-static int kgd_set_pasid_vmid_mapping(struct kgd_dev *kgd, u32 pasid,
+static int kgd_set_pasid_vmid_mapping(struct amdgpu_device *adev, u32 pasid,
                                        unsigned int vmid)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        /*
         * We have to assume that there is no outstanding mapping.
         * The ATC_VMID_PASID_MAPPING_UPDATE_STATUS bit could be 0 because
        return 0;
 }
 
-static int kgd_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id)
+static int kgd_init_interrupts(struct amdgpu_device *adev, uint32_t pipe_id)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t mec;
        uint32_t pipe;
 
        return 0;
 }
 
-static int kgd_address_watch_disable(struct kgd_dev *kgd)
+static int kgd_address_watch_disable(struct amdgpu_device *adev)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        union TCP_WATCH_CNTL_BITS cntl;
        unsigned int i;
 
        return 0;
 }
 
-static int kgd_address_watch_execute(struct kgd_dev *kgd,
+static int kgd_address_watch_execute(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        uint32_t cntl_val,
                                        uint32_t addr_hi,
                                        uint32_t addr_lo)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        union TCP_WATCH_CNTL_BITS cntl;
 
        cntl.u32All = cntl_val;
        return 0;
 }
 
-static int kgd_wave_control_execute(struct kgd_dev *kgd,
+static int kgd_wave_control_execute(struct amdgpu_device *adev,
                                        uint32_t gfx_index_val,
                                        uint32_t sq_cmd)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t data;
 
        mutex_lock(&adev->grbm_idx_mutex);
        return 0;
 }
 
-static uint32_t kgd_address_watch_get_offset(struct kgd_dev *kgd,
+static uint32_t kgd_address_watch_get_offset(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        unsigned int reg_offset)
 {
        return watchRegs[watch_point_id * ADDRESS_WATCH_REG_MAX + reg_offset];
 }
 
-static bool get_atc_vmid_pasid_mapping_info(struct kgd_dev *kgd,
+static bool get_atc_vmid_pasid_mapping_info(struct amdgpu_device *adev,
                                        uint8_t vmid, uint16_t *p_pasid)
 {
        uint32_t value;
-       struct amdgpu_device *adev = (struct amdgpu_device *) kgd;
 
        value = RREG32(mmATC_VMID0_PASID_MAPPING + vmid);
        *p_pasid = value & ATC_VMID0_PASID_MAPPING__PASID_MASK;
        return !!(value & ATC_VMID0_PASID_MAPPING__VALID_MASK);
 }
 
-static void set_scratch_backing_va(struct kgd_dev *kgd,
+static void set_scratch_backing_va(struct amdgpu_device *adev,
                                        uint64_t va, uint32_t vmid)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *) kgd;
-
        lock_srbm(adev, 0, 0, 0, vmid);
        WREG32(mmSH_HIDDEN_PRIVATE_BASE_VMID, va);
        unlock_srbm(adev);
 }
 
-static void set_vm_context_page_table_base(struct kgd_dev *kgd, uint32_t vmid,
-                       uint64_t page_table_base)
+static void set_vm_context_page_table_base(struct amdgpu_device *adev,
+                       uint32_t vmid, uint64_t page_table_base)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        if (!amdgpu_amdkfd_is_kfd_vmid(adev, vmid)) {
                pr_err("trying to set page table base for wrong VMID\n");
                return;
   * @vmid: vmid pointer
   * read vmid from register (CIK).
   */
-static uint32_t read_vmid_from_vmfault_reg(struct kgd_dev *kgd)
+static uint32_t read_vmid_from_vmfault_reg(struct amdgpu_device *adev)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        uint32_t status = RREG32(mmVM_CONTEXT1_PROTECTION_FAULT_STATUS);
 
        return REG_GET_FIELD(status, VM_CONTEXT1_PROTECTION_FAULT_STATUS, VMID);
 
        unlock_srbm(adev);
 }
 
-static void kgd_program_sh_mem_settings(struct kgd_dev *kgd, uint32_t vmid,
+static void kgd_program_sh_mem_settings(struct amdgpu_device *adev, uint32_t vmid,
                                        uint32_t sh_mem_config,
                                        uint32_t sh_mem_ape1_base,
                                        uint32_t sh_mem_ape1_limit,
                                        uint32_t sh_mem_bases)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        lock_srbm(adev, 0, 0, 0, vmid);
 
        WREG32(mmSH_MEM_CONFIG, sh_mem_config);
        unlock_srbm(adev);
 }
 
-static int kgd_set_pasid_vmid_mapping(struct kgd_dev *kgd, u32 pasid,
+static int kgd_set_pasid_vmid_mapping(struct amdgpu_device *adev, u32 pasid,
                                        unsigned int vmid)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        /*
         * We have to assume that there is no outstanding mapping.
         * The ATC_VMID_PASID_MAPPING_UPDATE_STATUS bit could be 0 because
        return 0;
 }
 
-static int kgd_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id)
+static int kgd_init_interrupts(struct amdgpu_device *adev, uint32_t pipe_id)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t mec;
        uint32_t pipe;
 
        return 0;
 }
 
-static bool get_atc_vmid_pasid_mapping_info(struct kgd_dev *kgd,
+static bool get_atc_vmid_pasid_mapping_info(struct amdgpu_device *adev,
                                        uint8_t vmid, uint16_t *p_pasid)
 {
        uint32_t value;
-       struct amdgpu_device *adev = (struct amdgpu_device *) kgd;
 
        value = RREG32(mmATC_VMID0_PASID_MAPPING + vmid);
        *p_pasid = value & ATC_VMID0_PASID_MAPPING__PASID_MASK;
        return !!(value & ATC_VMID0_PASID_MAPPING__VALID_MASK);
 }
 
-static int kgd_address_watch_disable(struct kgd_dev *kgd)
+static int kgd_address_watch_disable(struct amdgpu_device *adev)
 {
        return 0;
 }
 
-static int kgd_address_watch_execute(struct kgd_dev *kgd,
+static int kgd_address_watch_execute(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        uint32_t cntl_val,
                                        uint32_t addr_hi,
        return 0;
 }
 
-static int kgd_wave_control_execute(struct kgd_dev *kgd,
+static int kgd_wave_control_execute(struct amdgpu_device *adev,
                                        uint32_t gfx_index_val,
                                        uint32_t sq_cmd)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t data = 0;
 
        mutex_lock(&adev->grbm_idx_mutex);
        return 0;
 }
 
-static uint32_t kgd_address_watch_get_offset(struct kgd_dev *kgd,
+static uint32_t kgd_address_watch_get_offset(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        unsigned int reg_offset)
 {
        return 0;
 }
 
-static void set_scratch_backing_va(struct kgd_dev *kgd,
+static void set_scratch_backing_va(struct amdgpu_device *adev,
                                        uint64_t va, uint32_t vmid)
 {
-       struct amdgpu_device *adev = (struct amdgpu_device *) kgd;
-
        lock_srbm(adev, 0, 0, 0, vmid);
        WREG32(mmSH_HIDDEN_PRIVATE_BASE_VMID, va);
        unlock_srbm(adev);
 }
 
-static void set_vm_context_page_table_base(struct kgd_dev *kgd, uint32_t vmid,
-               uint64_t page_table_base)
+static void set_vm_context_page_table_base(struct amdgpu_device *adev,
+               uint32_t vmid, uint64_t page_table_base)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        if (!amdgpu_amdkfd_is_kfd_vmid(adev, vmid)) {
                pr_err("trying to set page table base for wrong VMID\n");
                return;
 
        unlock_srbm(adev);
 }
 
-void kgd_gfx_v9_program_sh_mem_settings(struct kgd_dev *kgd, uint32_t vmid,
+void kgd_gfx_v9_program_sh_mem_settings(struct amdgpu_device *adev, uint32_t vmid,
                                        uint32_t sh_mem_config,
                                        uint32_t sh_mem_ape1_base,
                                        uint32_t sh_mem_ape1_limit,
                                        uint32_t sh_mem_bases)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        lock_srbm(adev, 0, 0, 0, vmid);
 
        WREG32_RLC(SOC15_REG_OFFSET(GC, 0, mmSH_MEM_CONFIG), sh_mem_config);
        unlock_srbm(adev);
 }
 
-int kgd_gfx_v9_set_pasid_vmid_mapping(struct kgd_dev *kgd, u32 pasid,
+int kgd_gfx_v9_set_pasid_vmid_mapping(struct amdgpu_device *adev, u32 pasid,
                                        unsigned int vmid)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        /*
         * We have to assume that there is no outstanding mapping.
         * The ATC_VMID_PASID_MAPPING_UPDATE_STATUS bit could be 0 because
  * but still works
  */
 
-int kgd_gfx_v9_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id)
+int kgd_gfx_v9_init_interrupts(struct amdgpu_device *adev, uint32_t pipe_id)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t mec;
        uint32_t pipe;
 
        return 0;
 }
 
-bool kgd_gfx_v9_get_atc_vmid_pasid_mapping_info(struct kgd_dev *kgd,
+bool kgd_gfx_v9_get_atc_vmid_pasid_mapping_info(struct amdgpu_device *adev,
                                        uint8_t vmid, uint16_t *p_pasid)
 {
        uint32_t value;
-       struct amdgpu_device *adev = (struct amdgpu_device *) kgd;
 
        value = RREG32(SOC15_REG_OFFSET(ATHUB, 0, mmATC_VMID0_PASID_MAPPING)
                     + vmid);
        return !!(value & ATC_VMID0_PASID_MAPPING__VALID_MASK);
 }
 
-int kgd_gfx_v9_address_watch_disable(struct kgd_dev *kgd)
+int kgd_gfx_v9_address_watch_disable(struct amdgpu_device *adev)
 {
        return 0;
 }
 
-int kgd_gfx_v9_address_watch_execute(struct kgd_dev *kgd,
+int kgd_gfx_v9_address_watch_execute(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        uint32_t cntl_val,
                                        uint32_t addr_hi,
        return 0;
 }
 
-int kgd_gfx_v9_wave_control_execute(struct kgd_dev *kgd,
+int kgd_gfx_v9_wave_control_execute(struct amdgpu_device *adev,
                                        uint32_t gfx_index_val,
                                        uint32_t sq_cmd)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
        uint32_t data = 0;
 
        mutex_lock(&adev->grbm_idx_mutex);
        return 0;
 }
 
-uint32_t kgd_gfx_v9_address_watch_get_offset(struct kgd_dev *kgd,
+uint32_t kgd_gfx_v9_address_watch_get_offset(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        unsigned int reg_offset)
 {
        return 0;
 }
 
-void kgd_gfx_v9_set_vm_context_page_table_base(struct kgd_dev *kgd,
+void kgd_gfx_v9_set_vm_context_page_table_base(struct amdgpu_device *adev,
                        uint32_t vmid, uint64_t page_table_base)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        if (!amdgpu_amdkfd_is_kfd_vmid(adev, vmid)) {
                pr_err("trying to set page table base for wrong VMID %u\n",
                       vmid);
  *
  *  Reading registers referenced above involves programming GRBM appropriately
  */
-void kgd_gfx_v9_get_cu_occupancy(struct kgd_dev *kgd, int pasid,
+void kgd_gfx_v9_get_cu_occupancy(struct amdgpu_device *adev, int pasid,
                int *pasid_wave_cnt, int *max_waves_per_cu)
 {
        int qidx;
        int pasid_tmp;
        int max_queue_cnt;
        int vmid_wave_cnt = 0;
-       struct amdgpu_device *adev;
        DECLARE_BITMAP(cp_queue_bitmap, KGD_MAX_QUEUES);
 
-       adev = get_amdgpu_device(kgd);
        lock_spi_csq_mutexes(adev);
        soc15_grbm_select(adev, 1, 0, 0, 0);
 
                                adev->gfx.cu_info.max_waves_per_simd;
 }
 
-void kgd_gfx_v9_program_trap_handler_settings(struct kgd_dev *kgd,
+void kgd_gfx_v9_program_trap_handler_settings(struct amdgpu_device *adev,
                         uint32_t vmid, uint64_t tba_addr, uint64_t tma_addr)
 {
-       struct amdgpu_device *adev = get_amdgpu_device(kgd);
-
        lock_srbm(adev, 0, 0, 0, vmid);
 
        /*
 
 
 
 
-void kgd_gfx_v9_program_sh_mem_settings(struct kgd_dev *kgd, uint32_t vmid,
+void kgd_gfx_v9_program_sh_mem_settings(struct amdgpu_device *adev, uint32_t vmid,
                uint32_t sh_mem_config,
                uint32_t sh_mem_ape1_base, uint32_t sh_mem_ape1_limit,
                uint32_t sh_mem_bases);
-int kgd_gfx_v9_set_pasid_vmid_mapping(struct kgd_dev *kgd, u32 pasid,
+int kgd_gfx_v9_set_pasid_vmid_mapping(struct amdgpu_device *adev, u32 pasid,
                unsigned int vmid);
-int kgd_gfx_v9_init_interrupts(struct kgd_dev *kgd, uint32_t pipe_id);
+int kgd_gfx_v9_init_interrupts(struct amdgpu_device *adev, uint32_t pipe_id);
 int kgd_gfx_v9_hqd_load(struct amdgpu_device *adev, void *mqd, uint32_t pipe_id,
                        uint32_t queue_id, uint32_t __user *wptr,
                        uint32_t wptr_shift, uint32_t wptr_mask,
                                enum kfd_preempt_type reset_type,
                                unsigned int utimeout, uint32_t pipe_id,
                                uint32_t queue_id);
-int kgd_gfx_v9_address_watch_disable(struct kgd_dev *kgd);
-int kgd_gfx_v9_address_watch_execute(struct kgd_dev *kgd,
+int kgd_gfx_v9_address_watch_disable(struct amdgpu_device *adev);
+int kgd_gfx_v9_address_watch_execute(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        uint32_t cntl_val,
                                        uint32_t addr_hi,
                                        uint32_t addr_lo);
-int kgd_gfx_v9_wave_control_execute(struct kgd_dev *kgd,
+int kgd_gfx_v9_wave_control_execute(struct amdgpu_device *adev,
                                        uint32_t gfx_index_val,
                                        uint32_t sq_cmd);
-uint32_t kgd_gfx_v9_address_watch_get_offset(struct kgd_dev *kgd,
+uint32_t kgd_gfx_v9_address_watch_get_offset(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        unsigned int reg_offset);
 
-bool kgd_gfx_v9_get_atc_vmid_pasid_mapping_info(struct kgd_dev *kgd,
+bool kgd_gfx_v9_get_atc_vmid_pasid_mapping_info(struct amdgpu_device *adev,
                                        uint8_t vmid, uint16_t *p_pasid);
 
-void kgd_gfx_v9_set_vm_context_page_table_base(struct kgd_dev *kgd,
+void kgd_gfx_v9_set_vm_context_page_table_base(struct amdgpu_device *adev,
                        uint32_t vmid, uint64_t page_table_base);
-void kgd_gfx_v9_get_cu_occupancy(struct kgd_dev *kgd, int pasid,
+void kgd_gfx_v9_get_cu_occupancy(struct amdgpu_device *adev, int pasid,
                int *pasid_wave_cnt, int *max_waves_per_cu);
-void kgd_gfx_v9_program_trap_handler_settings(struct kgd_dev *kgd,
+void kgd_gfx_v9_program_trap_handler_settings(struct amdgpu_device *adev,
                uint32_t vmid, uint64_t tba_addr, uint64_t tma_addr);
 
                *patched_flag = true;
                *tmp_ihre = *ihre;
 
-               vmid = f2g->read_vmid_from_vmfault_reg(dev->kgd);
-               ret = f2g->get_atc_vmid_pasid_mapping_info(dev->kgd, vmid, &pasid);
+               vmid = f2g->read_vmid_from_vmfault_reg(dev->adev);
+               ret = f2g->get_atc_vmid_pasid_mapping_info(dev->adev, vmid, &pasid);
 
                tmp_ihre->ring_id &= 0x000000ff;
                tmp_ihre->ring_id |= vmid << 8;
 
        if (dev->dqm->sched_policy == KFD_SCHED_POLICY_NO_HWS &&
            pdd->qpd.vmid != 0 && dev->kfd2kgd->set_scratch_backing_va)
                dev->kfd2kgd->set_scratch_backing_va(
-                       dev->kgd, args->va_addr, pdd->qpd.vmid);
+                       dev->adev, args->va_addr, pdd->qpd.vmid);
 
        return 0;
 
 
 
 static void dbgdev_address_watch_disable_nodiq(struct kfd_dev *dev)
 {
-       dev->kfd2kgd->address_watch_disable(dev->kgd);
+       dev->kfd2kgd->address_watch_disable(dev->adev);
 }
 
 static int dbgdev_diq_submit_ib(struct kfd_dbgdev *dbgdev,
                pr_debug("\t\t%30s\n", "* * * * * * * * * * * * * * * * * *");
 
                pdd->dev->kfd2kgd->address_watch_execute(
-                                               dbgdev->dev->kgd,
+                                               dbgdev->dev->adev,
                                                i,
                                                cntl.u32All,
                                                addrHi.u32All,
 
                aw_reg_add_dword =
                                dbgdev->dev->kfd2kgd->address_watch_get_offset(
-                                       dbgdev->dev->kgd,
+                                       dbgdev->dev->adev,
                                        i,
                                        ADDRESS_WATCH_REG_CNTL);
 
 
                aw_reg_add_dword =
                                dbgdev->dev->kfd2kgd->address_watch_get_offset(
-                                       dbgdev->dev->kgd,
+                                       dbgdev->dev->adev,
                                        i,
                                        ADDRESS_WATCH_REG_ADDR_HI);
 
 
                aw_reg_add_dword =
                                dbgdev->dev->kfd2kgd->address_watch_get_offset(
-                                       dbgdev->dev->kgd,
+                                       dbgdev->dev->adev,
                                        i,
                                        ADDRESS_WATCH_REG_ADDR_LO);
 
 
                aw_reg_add_dword =
                                dbgdev->dev->kfd2kgd->address_watch_get_offset(
-                                       dbgdev->dev->kgd,
+                                       dbgdev->dev->adev,
                                        i,
                                        ADDRESS_WATCH_REG_CNTL);
 
 
        pr_debug("\t\t %30s\n", "* * * * * * * * * * * * * * * * * *");
 
-       return dbgdev->dev->kfd2kgd->wave_control_execute(dbgdev->dev->kgd,
+       return dbgdev->dev->kfd2kgd->wave_control_execute(dbgdev->dev->adev,
                                                        reg_gfx_index.u32All,
                                                        reg_sq_cmd.u32All);
 }
 
        for (vmid = first_vmid_to_scan; vmid <= last_vmid_to_scan; vmid++) {
                status = dev->kfd2kgd->get_atc_vmid_pasid_mapping_info
-                               (dev->kgd, vmid, &queried_pasid);
+                               (dev->adev, vmid, &queried_pasid);
 
                if (status && queried_pasid == p->pasid) {
                        pr_debug("Killing wave fronts of vmid %d and pasid 0x%x\n",
        /* for non DIQ we need to patch the VMID: */
        reg_sq_cmd.bits.vm_id = vmid;
 
-       dev->kfd2kgd->wave_control_execute(dev->kgd,
+       dev->kfd2kgd->wave_control_execute(dev->adev,
                                        reg_gfx_index.u32All,
                                        reg_sq_cmd.u32All);
 
 
                                        struct qcm_process_device *qpd)
 {
        return dqm->dev->kfd2kgd->program_sh_mem_settings(
-                                               dqm->dev->kgd, qpd->vmid,
+                                               dqm->dev->adev, qpd->vmid,
                                                qpd->sh_mem_config,
                                                qpd->sh_mem_ape1_base,
                                                qpd->sh_mem_ape1_limit,
 {
        if (dqm->dev->kfd2kgd->program_trap_handler_settings)
                dqm->dev->kfd2kgd->program_trap_handler_settings(
-                                               dqm->dev->kgd, qpd->vmid,
+                                               dqm->dev->adev, qpd->vmid,
                                                qpd->tba_addr, qpd->tma_addr);
 }
 
        /* qpd->page_table_base is set earlier when register_process()
         * is called, i.e. when the first queue is created.
         */
-       dqm->dev->kfd2kgd->set_vm_context_page_table_base(dqm->dev->kgd,
+       dqm->dev->kfd2kgd->set_vm_context_page_table_base(dqm->dev->adev,
                        qpd->vmid,
                        qpd->page_table_base);
        /* invalidate the VM context after pasid and vmid mapping is set up */
        kfd_flush_tlb(qpd_to_pdd(qpd), TLB_FLUSH_LEGACY);
 
        if (dqm->dev->kfd2kgd->set_scratch_backing_va)
-               dqm->dev->kfd2kgd->set_scratch_backing_va(dqm->dev->kgd,
+               dqm->dev->kfd2kgd->set_scratch_backing_va(dqm->dev->adev,
                                qpd->sh_hidden_private_base, qpd->vmid);
 
        return 0;
 
        if (!list_empty(&qpd->queues_list)) {
                dqm->dev->kfd2kgd->set_vm_context_page_table_base(
-                               dqm->dev->kgd,
+                               dqm->dev->adev,
                                qpd->vmid,
                                qpd->page_table_base);
                kfd_flush_tlb(pdd, TLB_FLUSH_LEGACY);
                        unsigned int vmid)
 {
        return dqm->dev->kfd2kgd->set_pasid_vmid_mapping(
-                                               dqm->dev->kgd, pasid, vmid);
+                                               dqm->dev->adev, pasid, vmid);
 }
 
 static void init_interrupts(struct device_queue_manager *dqm)
 
        for (i = 0 ; i < get_pipes_per_mec(dqm) ; i++)
                if (is_pipe_enabled(dqm, 0, i))
-                       dqm->dev->kfd2kgd->init_interrupts(dqm->dev->kgd, i);
+                       dqm->dev->kfd2kgd->init_interrupts(dqm->dev->adev, i);
 }
 
 static int initialize_nocpsch(struct device_queue_manager *dqm)
 
        /* Collect wave count from device if it supports */
        wave_cnt = 0;
        max_waves_per_cu = 0;
-       dev->kfd2kgd->get_cu_occupancy(dev->kgd, proc->pasid, &wave_cnt,
+       dev->kfd2kgd->get_cu_occupancy(dev->adev, proc->pasid, &wave_cnt,
                        &max_waves_per_cu);
 
        /* Translate wave count to number of compute units */
 
  */
 struct kfd2kgd_calls {
        /* Register access functions */
-       void (*program_sh_mem_settings)(struct kgd_dev *kgd, uint32_t vmid,
+       void (*program_sh_mem_settings)(struct amdgpu_device *adev, uint32_t vmid,
                        uint32_t sh_mem_config, uint32_t sh_mem_ape1_base,
                        uint32_t sh_mem_ape1_limit, uint32_t sh_mem_bases);
 
-       int (*set_pasid_vmid_mapping)(struct kgd_dev *kgd, u32 pasid,
+       int (*set_pasid_vmid_mapping)(struct amdgpu_device *adev, u32 pasid,
                                        unsigned int vmid);
 
-       int (*init_interrupts)(struct kgd_dev *kgd, uint32_t pipe_id);
+       int (*init_interrupts)(struct amdgpu_device *adev, uint32_t pipe_id);
 
        int (*hqd_load)(struct amdgpu_device *adev, void *mqd, uint32_t pipe_id,
                        uint32_t queue_id, uint32_t __user *wptr,
        int (*hqd_sdma_destroy)(struct amdgpu_device *adev, void *mqd,
                                unsigned int timeout);
 
-       int (*address_watch_disable)(struct kgd_dev *kgd);
-       int (*address_watch_execute)(struct kgd_dev *kgd,
+       int (*address_watch_disable)(struct amdgpu_device *adev);
+       int (*address_watch_execute)(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        uint32_t cntl_val,
                                        uint32_t addr_hi,
                                        uint32_t addr_lo);
-       int (*wave_control_execute)(struct kgd_dev *kgd,
+       int (*wave_control_execute)(struct amdgpu_device *adev,
                                        uint32_t gfx_index_val,
                                        uint32_t sq_cmd);
-       uint32_t (*address_watch_get_offset)(struct kgd_dev *kgd,
+       uint32_t (*address_watch_get_offset)(struct amdgpu_device *adev,
                                        unsigned int watch_point_id,
                                        unsigned int reg_offset);
-       bool (*get_atc_vmid_pasid_mapping_info)(
-                                       struct kgd_dev *kgd,
+       bool (*get_atc_vmid_pasid_mapping_info)(struct amdgpu_device *adev,
                                        uint8_t vmid,
                                        uint16_t *p_pasid);
 
         * passed to the shader by the CP. It's the user mode driver's
         * responsibility.
         */
-       void (*set_scratch_backing_va)(struct kgd_dev *kgd,
+       void (*set_scratch_backing_va)(struct amdgpu_device *adev,
                                uint64_t va, uint32_t vmid);
 
-       void (*set_vm_context_page_table_base)(struct kgd_dev *kgd,
+       void (*set_vm_context_page_table_base)(struct amdgpu_device *adev,
                        uint32_t vmid, uint64_t page_table_base);
-       uint32_t (*read_vmid_from_vmfault_reg)(struct kgd_dev *kgd);
+       uint32_t (*read_vmid_from_vmfault_reg)(struct amdgpu_device *adev);
 
-       void (*get_cu_occupancy)(struct kgd_dev *kgd, int pasid, int *wave_cnt,
-                       int *max_waves_per_cu);
-       void (*program_trap_handler_settings)(struct kgd_dev *kgd,
+       void (*get_cu_occupancy)(struct amdgpu_device *adev, int pasid,
+                       int *wave_cnt, int *max_waves_per_cu);
+       void (*program_trap_handler_settings)(struct amdgpu_device *adev,
                        uint32_t vmid, uint64_t tba_addr, uint64_t tma_addr);
 };