#include "pp_debug.h"
 #include <linux/module.h>
 #include <linux/slab.h>
-
+#include "atom.h"
 #include "ppatomctrl.h"
 #include "atombios.h"
 #include "cgs_common.h"
        return 0;
 }
 
-
 int atomctrl_initialize_mc_reg_table(
                struct pp_hwmgr *hwmgr,
                uint8_t module_index,
        u16 size;
 
        vram_info = (ATOM_VRAM_INFO_HEADER_V2_1 *)
-               cgs_atom_get_data_table(hwmgr->device,
+               smu_atom_get_data_table(hwmgr->adev,
                                GetIndexIntoMasterTable(DATA, VRAM_Info), &size, &frev, &crev);
 
        if (module_index >= vram_info->ucNumOfVRAMModule) {
                uint32_t engine_clock,
                uint32_t memory_clock)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
+
        SET_ENGINE_CLOCK_PS_ALLOCATION engine_clock_parameters;
 
        /* They are both in 10KHz Units. */
        /* in 10 khz units.*/
        engine_clock_parameters.sReserved.ulClock =
                cpu_to_le32(memory_clock & SET_CLOCK_FREQ_MASK);
-       return cgs_atom_exec_cmd_table(hwmgr->device,
+
+       return amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, DynamicMemorySettings),
-                       &engine_clock_parameters);
+                       (uint32_t *)&engine_clock_parameters);
 }
 
 /**
        union voltage_object_info *voltage_info;
 
        voltage_info = (union voltage_object_info *)
-               cgs_atom_get_data_table(device, index,
+               smu_atom_get_data_table(device, index,
                        &size, &frev, &crev);
 
        if (voltage_info != NULL)
                pp_atomctrl_memory_clock_param *mpll_param,
                bool strobe_mode)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
        COMPUTE_MEMORY_CLOCK_PARAM_PARAMETERS_V2_1 mpll_parameters;
        int result;
 
        mpll_parameters.ulClock = cpu_to_le32(clock_value);
        mpll_parameters.ucInputFlag = (uint8_t)((strobe_mode) ? 1 : 0);
 
-       result = cgs_atom_exec_cmd_table
-               (hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                 GetIndexIntoMasterTable(COMMAND, ComputeMemoryClockParam),
-                &mpll_parameters);
+               (uint32_t *)&mpll_parameters);
 
        if (0 == result) {
                mpll_param->mpll_fb_divider.clk_frac =
 int atomctrl_get_memory_pll_dividers_vi(struct pp_hwmgr *hwmgr,
                uint32_t clock_value, pp_atomctrl_memory_clock_param *mpll_param)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
        COMPUTE_MEMORY_CLOCK_PARAM_PARAMETERS_V2_2 mpll_parameters;
        int result;
 
        mpll_parameters.ulClock.ulClock = cpu_to_le32(clock_value);
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, ComputeMemoryClockParam),
-                       &mpll_parameters);
+                       (uint32_t *)&mpll_parameters);
 
        if (!result)
                mpll_param->mpll_post_divider =
                                          uint32_t clock_value,
                                          pp_atomctrl_clock_dividers_kong *dividers)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
        COMPUTE_MEMORY_ENGINE_PLL_PARAMETERS_V4 pll_parameters;
        int result;
 
        pll_parameters.ulClock = cpu_to_le32(clock_value);
 
-       result = cgs_atom_exec_cmd_table
-               (hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                 GetIndexIntoMasterTable(COMMAND, ComputeMemoryEnginePLL),
-                &pll_parameters);
+               (uint32_t *)&pll_parameters);
 
        if (0 == result) {
                dividers->pll_post_divider = pll_parameters.ucPostDiv;
                uint32_t clock_value,
                pp_atomctrl_clock_dividers_vi *dividers)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
        COMPUTE_GPU_CLOCK_OUTPUT_PARAMETERS_V1_6 pll_patameters;
        int result;
 
        pll_patameters.ulClock.ulClock = cpu_to_le32(clock_value);
        pll_patameters.ulClock.ucPostDiv = COMPUTE_GPUCLK_INPUT_FLAG_SCLK;
 
-       result = cgs_atom_exec_cmd_table
-               (hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                 GetIndexIntoMasterTable(COMMAND, ComputeMemoryEnginePLL),
-                &pll_patameters);
+               (uint32_t *)&pll_patameters);
 
        if (0 == result) {
                dividers->pll_post_divider =
                uint32_t clock_value,
                pp_atomctrl_clock_dividers_ai *dividers)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
        COMPUTE_GPU_CLOCK_OUTPUT_PARAMETERS_V1_7 pll_patameters;
        int result;
 
        pll_patameters.ulClock.ulClock = cpu_to_le32(clock_value);
        pll_patameters.ulClock.ucPostDiv = COMPUTE_GPUCLK_INPUT_FLAG_SCLK;
 
-       result = cgs_atom_exec_cmd_table
-               (hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                 GetIndexIntoMasterTable(COMMAND, ComputeMemoryEnginePLL),
-                &pll_patameters);
+               (uint32_t *)&pll_patameters);
 
        if (0 == result) {
                dividers->usSclk_fcw_frac     = le16_to_cpu(pll_patameters.usSclk_fcw_frac);
                uint32_t clock_value,
                pp_atomctrl_clock_dividers_vi *dividers)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
        COMPUTE_GPU_CLOCK_OUTPUT_PARAMETERS_V1_6 pll_patameters;
        int result;
 
        pll_patameters.ulClock.ucPostDiv =
                COMPUTE_GPUCLK_INPUT_FLAG_DEFAULT_GPUCLK;
 
-       result = cgs_atom_exec_cmd_table
-               (hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                 GetIndexIntoMasterTable(COMMAND, ComputeMemoryEnginePLL),
-                &pll_patameters);
+               (uint32_t *)&pll_patameters);
 
        if (0 == result) {
                dividers->pll_post_divider =
        uint32_t clock;
 
        fw_info = (ATOM_FIRMWARE_INFO *)
-               cgs_atom_get_data_table(hwmgr->device,
+               smu_atom_get_data_table(hwmgr->adev,
                        GetIndexIntoMasterTable(DATA, FirmwareInfo),
                        &size, &frev, &crev);
 
                uint8_t voltage_mode)
 {
        ATOM_VOLTAGE_OBJECT_INFO_V3_1 *voltage_info =
-               (ATOM_VOLTAGE_OBJECT_INFO_V3_1 *)get_voltage_info_table(hwmgr->device);
+               (ATOM_VOLTAGE_OBJECT_INFO_V3_1 *)get_voltage_info_table(hwmgr->adev);
        bool ret;
 
        PP_ASSERT_WITH_CODE((NULL != voltage_info),
                pp_atomctrl_voltage_table *voltage_table)
 {
        ATOM_VOLTAGE_OBJECT_INFO_V3_1 *voltage_info =
-               (ATOM_VOLTAGE_OBJECT_INFO_V3_1 *)get_voltage_info_table(hwmgr->device);
+               (ATOM_VOLTAGE_OBJECT_INFO_V3_1 *)get_voltage_info_table(hwmgr->adev);
        const ATOM_VOLTAGE_OBJECT_V3 *voltage_object;
        unsigned int i;
 
        void *table_address;
 
        table_address = (ATOM_GPIO_PIN_LUT *)
-               cgs_atom_get_data_table(device,
+               smu_atom_get_data_table(device,
                                GetIndexIntoMasterTable(DATA, GPIO_Pin_LUT),
                                &size, &frev, &crev);
 
 {
        bool bRet = false;
        ATOM_GPIO_PIN_LUT *gpio_lookup_table =
-               get_gpio_lookup_table(hwmgr->device);
+               get_gpio_lookup_table(hwmgr->adev);
 
        PP_ASSERT_WITH_CODE((NULL != gpio_lookup_table),
                        "Could not find GPIO lookup Table in BIOS.", return false);
                bool debug)
 {
        ATOM_ASIC_PROFILING_INFO_V3_4 *getASICProfilingInfo;
-
+       struct amdgpu_device *adev = hwmgr->adev;
        EFUSE_LINEAR_FUNC_PARAM sRO_fuse;
        EFUSE_LINEAR_FUNC_PARAM sCACm_fuse;
        EFUSE_LINEAR_FUNC_PARAM sCACb_fuse;
        int result;
 
        getASICProfilingInfo = (ATOM_ASIC_PROFILING_INFO_V3_4 *)
-                       cgs_atom_get_data_table(hwmgr->device,
+                       smu_atom_get_data_table(hwmgr->adev,
                                        GetIndexIntoMasterTable(DATA, ASIC_ProfilingInfo),
                                        NULL, NULL, NULL);
 
 
        sOutput_FuseValues.sEfuse = sInput_FuseValues;
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, ReadEfuseValue),
-                       &sOutput_FuseValues);
+                       (uint32_t *)&sOutput_FuseValues);
 
        if (result)
                return result;
 
        sOutput_FuseValues.sEfuse = sInput_FuseValues;
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, ReadEfuseValue),
-                       &sOutput_FuseValues);
+                       (uint32_t *)&sOutput_FuseValues);
 
        if (result)
                return result;
        sInput_FuseValues.ucBitLength = sCACb_fuse.ucEfuseLength;
        sOutput_FuseValues.sEfuse = sInput_FuseValues;
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, ReadEfuseValue),
-                       &sOutput_FuseValues);
+                       (uint32_t *)&sOutput_FuseValues);
 
        if (result)
                return result;
 
        sOutput_FuseValues.sEfuse = sInput_FuseValues;
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, ReadEfuseValue),
-                       &sOutput_FuseValues);
+                       (uint32_t *)&sOutput_FuseValues);
 
        if (result)
                return result;
 
        sOutput_FuseValues.sEfuse = sInput_FuseValues;
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, ReadEfuseValue),
-                       &sOutput_FuseValues);
+                       (uint32_t *)&sOutput_FuseValues);
        if (result)
                return result;
 
        sInput_FuseValues.ucBitLength = sKv_b_fuse.ucEfuseLength;
        sOutput_FuseValues.sEfuse = sInput_FuseValues;
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, ReadEfuseValue),
-                       &sOutput_FuseValues);
+                       (uint32_t *)&sOutput_FuseValues);
 
        if (result)
                return result;
 
        sOutput_FuseValues.sEfuse = sInput_FuseValues;
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, ReadEfuseValue),
-                       &sOutput_FuseValues);
+                       (uint32_t *)&sOutput_FuseValues);
 
        if (result)
                return result;
                uint32_t sclk, uint16_t virtual_voltage_Id,
                uint16_t *voltage)
 {
-       int result;
+       struct amdgpu_device *adev = hwmgr->adev;
        GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_2 get_voltage_info_param_space;
+       int result;
 
        get_voltage_info_param_space.ucVoltageType   =
                voltage_type;
        get_voltage_info_param_space.ulSCLKFreq      =
                cpu_to_le32(sclk);
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, GetVoltageInfo),
-                       &get_voltage_info_param_space);
+                       (uint32_t *)&get_voltage_info_param_space);
 
        if (0 != result)
                return result;
                             uint16_t virtual_voltage_id,
                             uint16_t *voltage)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
+       GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_2 get_voltage_info_param_space;
        int result;
        int entry_id;
-       GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_2 get_voltage_info_param_space;
 
        /* search for leakage voltage ID 0xff01 ~ 0xff08 and sckl */
        for (entry_id = 0; entry_id < hwmgr->dyn_state.vddc_dependency_on_sclk->count; entry_id++) {
        get_voltage_info_param_space.ulSCLKFreq =
                cpu_to_le32(hwmgr->dyn_state.vddc_dependency_on_sclk->entries[entry_id].clk);
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, GetVoltageInfo),
-                       &get_voltage_info_param_space);
+                       (uint32_t *)&get_voltage_info_param_space);
 
        if (0 != result)
                return result;
        u16 size;
 
        fw_info = (ATOM_COMMON_TABLE_HEADER *)
-               cgs_atom_get_data_table(hwmgr->device,
+               smu_atom_get_data_table(hwmgr->adev,
                                GetIndexIntoMasterTable(DATA, FirmwareInfo),
                                &size, &frev, &crev);
 
        u16 size;
 
        table = (ATOM_ASIC_INTERNAL_SS_INFO *)
-               cgs_atom_get_data_table(device,
+               smu_atom_get_data_table(device,
                        GetIndexIntoMasterTable(DATA, ASIC_InternalSS_Info),
                        &size, &frev, &crev);
 
 
        memset(ssEntry, 0x00, sizeof(pp_atomctrl_internal_ss_info));
 
-       table = asic_internal_ss_get_ss_table(hwmgr->device);
+       table = asic_internal_ss_get_ss_table(hwmgr->adev);
 
        if (NULL == table)
                return -1;
                        ASIC_INTERNAL_ENGINE_SS, engine_clock, ssInfo);
 }
 
-int atomctrl_read_efuse(void *device, uint16_t start_index,
+int atomctrl_read_efuse(struct pp_hwmgr *hwmgr, uint16_t start_index,
                uint16_t end_index, uint32_t mask, uint32_t *efuse)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
        int result;
        READ_EFUSE_VALUE_PARAMETER efuse_param;
 
        efuse_param.sEfuse.ucBitLength  = (uint8_t)
                        ((end_index - start_index) + 1);
 
-       result = cgs_atom_exec_cmd_table(device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, ReadEfuseValue),
-                       &efuse_param);
+                       (uint32_t *)&efuse_param);
        if (!result)
                *efuse = le32_to_cpu(efuse_param.ulEfuseValue) & mask;
 
 int atomctrl_set_ac_timing_ai(struct pp_hwmgr *hwmgr, uint32_t memory_clock,
                              uint8_t level)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
        DYNAMICE_MEMORY_SETTINGS_PARAMETER_V2_1 memory_clock_parameters;
        int result;
 
                ADJUST_MC_SETTING_PARAM;
        memory_clock_parameters.asDPMMCReg.ucMclkDPMState = level;
 
-       result = cgs_atom_exec_cmd_table
-               (hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                 GetIndexIntoMasterTable(COMMAND, DynamicMemorySettings),
-                &memory_clock_parameters);
+               (uint32_t *)&memory_clock_parameters);
 
        return result;
 }
 int atomctrl_get_voltage_evv_on_sclk_ai(struct pp_hwmgr *hwmgr, uint8_t voltage_type,
                                uint32_t sclk, uint16_t virtual_voltage_Id, uint32_t *voltage)
 {
-
+       struct amdgpu_device *adev = hwmgr->adev;
        int result;
        GET_VOLTAGE_INFO_INPUT_PARAMETER_V1_3 get_voltage_info_param_space;
 
        get_voltage_info_param_space.usVoltageLevel = cpu_to_le16(virtual_voltage_Id);
        get_voltage_info_param_space.ulSCLKFreq = cpu_to_le32(sclk);
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, GetVoltageInfo),
-                       &get_voltage_info_param_space);
+                       (uint32_t *)&get_voltage_info_param_space);
 
        if (0 != result)
                return result;
        u16 size;
 
        ATOM_SMU_INFO_V2_1 *psmu_info =
-               (ATOM_SMU_INFO_V2_1 *)cgs_atom_get_data_table(hwmgr->device,
+               (ATOM_SMU_INFO_V2_1 *)smu_atom_get_data_table(hwmgr->adev,
                        GetIndexIntoMasterTable(DATA, SMU_Info),
                        &size, &frev, &crev);
 
                return -EINVAL;
 
        profile = (ATOM_ASIC_PROFILING_INFO_V3_6 *)
-                       cgs_atom_get_data_table(hwmgr->device,
+                       smu_atom_get_data_table(hwmgr->adev,
                                        GetIndexIntoMasterTable(DATA, ASIC_ProfilingInfo),
                                        NULL, NULL, NULL);
        if (!profile)
                                uint16_t *load_line)
 {
        ATOM_VOLTAGE_OBJECT_INFO_V3_1 *voltage_info =
-               (ATOM_VOLTAGE_OBJECT_INFO_V3_1 *)get_voltage_info_table(hwmgr->device);
+               (ATOM_VOLTAGE_OBJECT_INFO_V3_1 *)get_voltage_info_table(hwmgr->adev);
 
        const ATOM_VOLTAGE_OBJECT_V3 *voltage_object;
 
 
 int atomctrl_get_leakage_id_from_efuse(struct pp_hwmgr *hwmgr, uint16_t *virtual_voltage_id)
 {
-       int result;
+       struct amdgpu_device *adev = hwmgr->adev;
        SET_VOLTAGE_PS_ALLOCATION allocation;
        SET_VOLTAGE_PARAMETERS_V1_3 *voltage_parameters =
                        (SET_VOLTAGE_PARAMETERS_V1_3 *)&allocation.sASICSetVoltage;
+       int result;
 
        voltage_parameters->ucVoltageMode = ATOM_GET_LEAKAGE_ID;
 
-       result = cgs_atom_exec_cmd_table(hwmgr->device,
+       result = amdgpu_atom_execute_table(adev->mode_info.atom_context,
                        GetIndexIntoMasterTable(COMMAND, SetVoltage),
-                       voltage_parameters);
+                       (uint32_t *)voltage_parameters);
 
        *virtual_voltage_id = voltage_parameters->usVoltageLevel;
 
        ix = GetIndexIntoMasterTable(DATA, ASIC_ProfilingInfo);
 
        profile = (ATOM_ASIC_PROFILING_INFO_V2_1 *)
-                       cgs_atom_get_data_table(hwmgr->device,
+                       smu_atom_get_data_table(hwmgr->adev,
                                        ix,
                                        NULL, NULL, NULL);
        if (!profile)
 
 
 #include "ppatomfwctrl.h"
 #include "atomfirmware.h"
+#include "atom.h"
 #include "pp_debug.h"
 
-
 static const union atom_voltage_object_v4 *pp_atomfwctrl_lookup_voltage_type_v4(
                const struct atom_voltage_objects_info_v4_1 *voltage_object_info_table,
                uint8_t voltage_type, uint8_t voltage_mode)
 
        while (offset < size) {
                const union atom_voltage_object_v4 *voltage_object =
-                               (const union atom_voltage_object_v4 *)(start + offset);
+                       (const union atom_voltage_object_v4 *)(start + offset);
 
-        if (voltage_type == voltage_object->gpio_voltage_obj.header.voltage_type &&
-            voltage_mode == voltage_object->gpio_voltage_obj.header.voltage_mode)
-            return voltage_object;
+               if (voltage_type == voltage_object->gpio_voltage_obj.header.voltage_type &&
+                   voltage_mode == voltage_object->gpio_voltage_obj.header.voltage_mode)
+                       return voltage_object;
 
-        offset += le16_to_cpu(voltage_object->gpio_voltage_obj.header.object_size);
+               offset += le16_to_cpu(voltage_object->gpio_voltage_obj.header.object_size);
 
-    }
+       }
 
-    return NULL;
+       return NULL;
 }
 
 static struct atom_voltage_objects_info_v4_1 *pp_atomfwctrl_get_voltage_info_table(
                struct pp_hwmgr *hwmgr)
 {
-    const void *table_address;
-    uint16_t idx;
+       const void *table_address;
+       uint16_t idx;
 
-    idx = GetIndexIntoMasterDataTable(voltageobject_info);
-    table_address =    cgs_atom_get_data_table(hwmgr->device,
-               idx, NULL, NULL, NULL);
+       idx = GetIndexIntoMasterDataTable(voltageobject_info);
+       table_address = smu_atom_get_data_table(hwmgr->adev,
+                                               idx, NULL, NULL, NULL);
 
-    PP_ASSERT_WITH_CODE( 
-        table_address,
-        "Error retrieving BIOS Table Address!",
-        return NULL);
+       PP_ASSERT_WITH_CODE(table_address,
+                       "Error retrieving BIOS Table Address!",
+                       return NULL);
 
-    return (struct atom_voltage_objects_info_v4_1 *)table_address;
+       return (struct atom_voltage_objects_info_v4_1 *)table_address;
 }
 
 /**
        uint16_t idx;
 
        idx = GetIndexIntoMasterDataTable(gpio_pin_lut);
-       table_address = cgs_atom_get_data_table(hwmgr->device,
+       table_address = smu_atom_get_data_table(hwmgr->adev,
                        idx, NULL, NULL, NULL);
        PP_ASSERT_WITH_CODE(table_address,
                        "Error retrieving BIOS Table Address!",
                uint32_t clock_type, uint32_t clock_value,
                struct pp_atomfwctrl_clock_dividers_soc15 *dividers)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
        struct compute_gpu_clock_input_parameter_v1_8 pll_parameters;
        struct compute_gpu_clock_output_parameter_v1_8 *pll_output;
-       int result;
        uint32_t idx;
 
        pll_parameters.gpuclock_10khz = (uint32_t)clock_value;
        pll_parameters.gpu_clock_type = clock_type;
 
        idx = GetIndexIntoMasterCmdTable(computegpuclockparam);
-       result = cgs_atom_exec_cmd_table(hwmgr->device, idx, &pll_parameters);
-
-       if (!result) {
-               pll_output = (struct compute_gpu_clock_output_parameter_v1_8 *)
-                               &pll_parameters;
-               dividers->ulClock = le32_to_cpu(pll_output->gpuclock_10khz);
-               dividers->ulDid = le32_to_cpu(pll_output->dfs_did);
-               dividers->ulPll_fb_mult = le32_to_cpu(pll_output->pll_fb_mult);
-               dividers->ulPll_ss_fbsmult = le32_to_cpu(pll_output->pll_ss_fbsmult);
-               dividers->usPll_ss_slew_frac = le16_to_cpu(pll_output->pll_ss_slew_frac);
-               dividers->ucPll_ss_enable = pll_output->pll_ss_enable;
-       }
-       return result;
+
+       if (amdgpu_atom_execute_table(
+               adev->mode_info.atom_context, idx, (uint32_t *)&pll_parameters))
+               return -EINVAL;
+
+       pll_output = (struct compute_gpu_clock_output_parameter_v1_8 *)
+                       &pll_parameters;
+       dividers->ulClock = le32_to_cpu(pll_output->gpuclock_10khz);
+       dividers->ulDid = le32_to_cpu(pll_output->dfs_did);
+       dividers->ulPll_fb_mult = le32_to_cpu(pll_output->pll_fb_mult);
+       dividers->ulPll_ss_fbsmult = le32_to_cpu(pll_output->pll_ss_fbsmult);
+       dividers->usPll_ss_slew_frac = le16_to_cpu(pll_output->pll_ss_slew_frac);
+       dividers->ucPll_ss_enable = pll_output->pll_ss_enable;
+
+       return 0;
 }
 
 int pp_atomfwctrl_get_avfs_information(struct pp_hwmgr *hwmgr,
 
        idx = GetIndexIntoMasterDataTable(asic_profiling_info);
        profile = (struct atom_asic_profiling_info_v4_1 *)
-                       cgs_atom_get_data_table(hwmgr->device,
+                       smu_atom_get_data_table(hwmgr->adev,
                                        idx, NULL, NULL, NULL);
 
        if (!profile)
 
        idx = GetIndexIntoMasterDataTable(smu_info);
        info = (struct atom_smu_info_v3_1 *)
-               cgs_atom_get_data_table(hwmgr->device,
+               smu_atom_get_data_table(hwmgr->adev,
                                idx, NULL, NULL, NULL);
 
        if (!info) {
 
 int pp_atomfwctrl__get_clk_information_by_clkid(struct pp_hwmgr *hwmgr, BIOS_CLKID id, uint32_t *frequency)
 {
+       struct amdgpu_device *adev = hwmgr->adev;
        struct atom_get_smu_clock_info_parameters_v3_1   parameters;
        struct atom_get_smu_clock_info_output_parameters_v3_1 *output;
        uint32_t ix;
        parameters.command = GET_SMU_CLOCK_INFO_V3_1_GET_CLOCK_FREQ;
 
        ix = GetIndexIntoMasterCmdTable(getsmuclockinfo);
-       if (!cgs_atom_exec_cmd_table(hwmgr->device, ix, ¶meters)) {
-               output = (struct atom_get_smu_clock_info_output_parameters_v3_1 *)¶meters;
-               *frequency = output->atom_smu_outputclkfreq.smu_clock_freq_hz / 10000;
-       } else {
-               pr_info("Error execute_table getsmuclockinfo!");
-               return -1;
-       }
+
+       if (amdgpu_atom_execute_table(
+               adev->mode_info.atom_context, ix, (uint32_t *)¶meters))
+               return -EINVAL;
+
+       output = (struct atom_get_smu_clock_info_output_parameters_v3_1 *)¶meters;
+       *frequency = output->atom_smu_outputclkfreq.smu_clock_freq_hz / 10000;
 
        return 0;
 }
 
        ix = GetIndexIntoMasterDataTable(firmwareinfo);
        info = (struct atom_firmware_info_v3_1 *)
-               cgs_atom_get_data_table(hwmgr->device,
+               smu_atom_get_data_table(hwmgr->adev,
                                ix, NULL, NULL, NULL);
 
        if (!info) {
 
        ix = GetIndexIntoMasterDataTable(smc_dpm_info);
        info = (struct atom_smc_dpm_info_v4_1 *)
-               cgs_atom_get_data_table(hwmgr->device,
+               smu_atom_get_data_table(hwmgr->adev,
                                ix, NULL, NULL, NULL);
        if (!info) {
                pr_info("Error retrieving BIOS Table Address!");