diff options
author | Alex Deucher <alexander.deucher@amd.com> | 2016-09-13 00:06:07 -0400 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2016-09-14 15:10:40 -0400 |
commit | 6861c837e28e1b1300a1b24ddab748c8ee50da3b (patch) | |
tree | 2118a141ef6a7d31b8e3d65104aeedbd3b235138 | |
parent | a1047777323cc5da8f59d738708f554937be3193 (diff) |
drm/amdgpu/si/dpm: fix symbol conflicts with radeon
Acked-by: Huang Rui <ray.huang@amd.com>
Reviewed-by: Edward O'Callaghan <funfunctor@folklore1984.net>
Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/si_dpm.c | 287 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/si_smc.c | 37 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/amdgpu/sislands_smc.h | 30 |
3 files changed, 181 insertions, 173 deletions
diff --git a/drivers/gpu/drm/amd/amdgpu/si_dpm.c b/drivers/gpu/drm/amd/amdgpu/si_dpm.c index 374d92b96519..e2db4a734676 100644 --- a/drivers/gpu/drm/amd/amdgpu/si_dpm.c +++ b/drivers/gpu/drm/amd/amdgpu/si_dpm.c | |||
@@ -2274,12 +2274,12 @@ static int si_populate_smc_tdp_limits(struct amdgpu_device *adev, | |||
2274 | smc_table->dpm2Params.SafePowerLimit = | 2274 | smc_table->dpm2Params.SafePowerLimit = |
2275 | cpu_to_be32(si_scale_power_for_smc((near_tdp_limit * SISLANDS_DPM2_TDP_SAFE_LIMIT_PERCENT) / 100, scaling_factor) * 1000); | 2275 | cpu_to_be32(si_scale_power_for_smc((near_tdp_limit * SISLANDS_DPM2_TDP_SAFE_LIMIT_PERCENT) / 100, scaling_factor) * 1000); |
2276 | 2276 | ||
2277 | ret = si_copy_bytes_to_smc(adev, | 2277 | ret = amdgpu_si_copy_bytes_to_smc(adev, |
2278 | (si_pi->state_table_start + offsetof(SISLANDS_SMC_STATETABLE, dpm2Params) + | 2278 | (si_pi->state_table_start + offsetof(SISLANDS_SMC_STATETABLE, dpm2Params) + |
2279 | offsetof(PP_SIslands_DPM2Parameters, TDPLimit)), | 2279 | offsetof(PP_SIslands_DPM2Parameters, TDPLimit)), |
2280 | (u8 *)(&(smc_table->dpm2Params.TDPLimit)), | 2280 | (u8 *)(&(smc_table->dpm2Params.TDPLimit)), |
2281 | sizeof(u32) * 3, | 2281 | sizeof(u32) * 3, |
2282 | si_pi->sram_end); | 2282 | si_pi->sram_end); |
2283 | if (ret) | 2283 | if (ret) |
2284 | return ret; | 2284 | return ret; |
2285 | 2285 | ||
@@ -2293,10 +2293,10 @@ static int si_populate_smc_tdp_limits(struct amdgpu_device *adev, | |||
2293 | papm_parm->PlatformPowerLimit = 0xffffffff; | 2293 | papm_parm->PlatformPowerLimit = 0xffffffff; |
2294 | papm_parm->NearTDPLimitPAPM = 0xffffffff; | 2294 | papm_parm->NearTDPLimitPAPM = 0xffffffff; |
2295 | 2295 | ||
2296 | ret = si_copy_bytes_to_smc(adev, si_pi->papm_cfg_table_start, | 2296 | ret = amdgpu_si_copy_bytes_to_smc(adev, si_pi->papm_cfg_table_start, |
2297 | (u8 *)papm_parm, | 2297 | (u8 *)papm_parm, |
2298 | sizeof(PP_SIslands_PAPMParameters), | 2298 | sizeof(PP_SIslands_PAPMParameters), |
2299 | si_pi->sram_end); | 2299 | si_pi->sram_end); |
2300 | if (ret) | 2300 | if (ret) |
2301 | return ret; | 2301 | return ret; |
2302 | } | 2302 | } |
@@ -2322,13 +2322,13 @@ static int si_populate_smc_tdp_limits_2(struct amdgpu_device *adev, | |||
2322 | smc_table->dpm2Params.SafePowerLimit = | 2322 | smc_table->dpm2Params.SafePowerLimit = |
2323 | cpu_to_be32(si_scale_power_for_smc((adev->pm.dpm.near_tdp_limit_adjusted * SISLANDS_DPM2_TDP_SAFE_LIMIT_PERCENT) / 100, scaling_factor) * 1000); | 2323 | cpu_to_be32(si_scale_power_for_smc((adev->pm.dpm.near_tdp_limit_adjusted * SISLANDS_DPM2_TDP_SAFE_LIMIT_PERCENT) / 100, scaling_factor) * 1000); |
2324 | 2324 | ||
2325 | ret = si_copy_bytes_to_smc(adev, | 2325 | ret = amdgpu_si_copy_bytes_to_smc(adev, |
2326 | (si_pi->state_table_start + | 2326 | (si_pi->state_table_start + |
2327 | offsetof(SISLANDS_SMC_STATETABLE, dpm2Params) + | 2327 | offsetof(SISLANDS_SMC_STATETABLE, dpm2Params) + |
2328 | offsetof(PP_SIslands_DPM2Parameters, NearTDPLimit)), | 2328 | offsetof(PP_SIslands_DPM2Parameters, NearTDPLimit)), |
2329 | (u8 *)(&(smc_table->dpm2Params.NearTDPLimit)), | 2329 | (u8 *)(&(smc_table->dpm2Params.NearTDPLimit)), |
2330 | sizeof(u32) * 2, | 2330 | sizeof(u32) * 2, |
2331 | si_pi->sram_end); | 2331 | si_pi->sram_end); |
2332 | if (ret) | 2332 | if (ret) |
2333 | return ret; | 2333 | return ret; |
2334 | } | 2334 | } |
@@ -2538,7 +2538,7 @@ static int si_enable_power_containment(struct amdgpu_device *adev, | |||
2538 | if (ni_pi->enable_power_containment) { | 2538 | if (ni_pi->enable_power_containment) { |
2539 | if (enable) { | 2539 | if (enable) { |
2540 | if (!si_should_disable_uvd_powertune(adev, amdgpu_new_state)) { | 2540 | if (!si_should_disable_uvd_powertune(adev, amdgpu_new_state)) { |
2541 | smc_result = si_send_msg_to_smc(adev, PPSMC_TDPClampingActive); | 2541 | smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_TDPClampingActive); |
2542 | if (smc_result != PPSMC_Result_OK) { | 2542 | if (smc_result != PPSMC_Result_OK) { |
2543 | ret = -EINVAL; | 2543 | ret = -EINVAL; |
2544 | ni_pi->pc_enabled = false; | 2544 | ni_pi->pc_enabled = false; |
@@ -2547,7 +2547,7 @@ static int si_enable_power_containment(struct amdgpu_device *adev, | |||
2547 | } | 2547 | } |
2548 | } | 2548 | } |
2549 | } else { | 2549 | } else { |
2550 | smc_result = si_send_msg_to_smc(adev, PPSMC_TDPClampingInactive); | 2550 | smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_TDPClampingInactive); |
2551 | if (smc_result != PPSMC_Result_OK) | 2551 | if (smc_result != PPSMC_Result_OK) |
2552 | ret = -EINVAL; | 2552 | ret = -EINVAL; |
2553 | ni_pi->pc_enabled = false; | 2553 | ni_pi->pc_enabled = false; |
@@ -2615,8 +2615,10 @@ static int si_initialize_smc_dte_tables(struct amdgpu_device *adev) | |||
2615 | dte_tables->Tdep_R[i] = cpu_to_be32(dte_data->tdep_r[i]); | 2615 | dte_tables->Tdep_R[i] = cpu_to_be32(dte_data->tdep_r[i]); |
2616 | } | 2616 | } |
2617 | 2617 | ||
2618 | ret = si_copy_bytes_to_smc(adev, si_pi->dte_table_start, (u8 *)dte_tables, | 2618 | ret = amdgpu_si_copy_bytes_to_smc(adev, si_pi->dte_table_start, |
2619 | sizeof(Smc_SIslands_DTE_Configuration), si_pi->sram_end); | 2619 | (u8 *)dte_tables, |
2620 | sizeof(Smc_SIslands_DTE_Configuration), | ||
2621 | si_pi->sram_end); | ||
2620 | kfree(dte_tables); | 2622 | kfree(dte_tables); |
2621 | 2623 | ||
2622 | return ret; | 2624 | return ret; |
@@ -2806,8 +2808,10 @@ static int si_initialize_smc_cac_tables(struct amdgpu_device *adev) | |||
2806 | cac_tables->lkge_lut_T0 = cpu_to_be32((u32)t0); | 2808 | cac_tables->lkge_lut_T0 = cpu_to_be32((u32)t0); |
2807 | cac_tables->lkge_lut_Tstep = cpu_to_be32((u32)t_step); | 2809 | cac_tables->lkge_lut_Tstep = cpu_to_be32((u32)t_step); |
2808 | 2810 | ||
2809 | ret = si_copy_bytes_to_smc(adev, si_pi->cac_table_start, (u8 *)cac_tables, | 2811 | ret = amdgpu_si_copy_bytes_to_smc(adev, si_pi->cac_table_start, |
2810 | sizeof(PP_SIslands_CacConfig), si_pi->sram_end); | 2812 | (u8 *)cac_tables, |
2813 | sizeof(PP_SIslands_CacConfig), | ||
2814 | si_pi->sram_end); | ||
2811 | 2815 | ||
2812 | if (ret) | 2816 | if (ret) |
2813 | goto done_free; | 2817 | goto done_free; |
@@ -2900,12 +2904,12 @@ static int si_enable_smc_cac(struct amdgpu_device *adev, | |||
2900 | if (enable) { | 2904 | if (enable) { |
2901 | if (!si_should_disable_uvd_powertune(adev, amdgpu_new_state)) { | 2905 | if (!si_should_disable_uvd_powertune(adev, amdgpu_new_state)) { |
2902 | if (ni_pi->support_cac_long_term_average) { | 2906 | if (ni_pi->support_cac_long_term_average) { |
2903 | smc_result = si_send_msg_to_smc(adev, PPSMC_CACLongTermAvgEnable); | 2907 | smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_CACLongTermAvgEnable); |
2904 | if (smc_result != PPSMC_Result_OK) | 2908 | if (smc_result != PPSMC_Result_OK) |
2905 | ni_pi->support_cac_long_term_average = false; | 2909 | ni_pi->support_cac_long_term_average = false; |
2906 | } | 2910 | } |
2907 | 2911 | ||
2908 | smc_result = si_send_msg_to_smc(adev, PPSMC_MSG_EnableCac); | 2912 | smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_EnableCac); |
2909 | if (smc_result != PPSMC_Result_OK) { | 2913 | if (smc_result != PPSMC_Result_OK) { |
2910 | ret = -EINVAL; | 2914 | ret = -EINVAL; |
2911 | ni_pi->cac_enabled = false; | 2915 | ni_pi->cac_enabled = false; |
@@ -2914,21 +2918,21 @@ static int si_enable_smc_cac(struct amdgpu_device *adev, | |||
2914 | } | 2918 | } |
2915 | 2919 | ||
2916 | if (si_pi->enable_dte) { | 2920 | if (si_pi->enable_dte) { |
2917 | smc_result = si_send_msg_to_smc(adev, PPSMC_MSG_EnableDTE); | 2921 | smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_EnableDTE); |
2918 | if (smc_result != PPSMC_Result_OK) | 2922 | if (smc_result != PPSMC_Result_OK) |
2919 | ret = -EINVAL; | 2923 | ret = -EINVAL; |
2920 | } | 2924 | } |
2921 | } | 2925 | } |
2922 | } else if (ni_pi->cac_enabled) { | 2926 | } else if (ni_pi->cac_enabled) { |
2923 | if (si_pi->enable_dte) | 2927 | if (si_pi->enable_dte) |
2924 | smc_result = si_send_msg_to_smc(adev, PPSMC_MSG_DisableDTE); | 2928 | smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_DisableDTE); |
2925 | 2929 | ||
2926 | smc_result = si_send_msg_to_smc(adev, PPSMC_MSG_DisableCac); | 2930 | smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_DisableCac); |
2927 | 2931 | ||
2928 | ni_pi->cac_enabled = false; | 2932 | ni_pi->cac_enabled = false; |
2929 | 2933 | ||
2930 | if (ni_pi->support_cac_long_term_average) | 2934 | if (ni_pi->support_cac_long_term_average) |
2931 | smc_result = si_send_msg_to_smc(adev, PPSMC_CACLongTermAvgDisable); | 2935 | smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_CACLongTermAvgDisable); |
2932 | } | 2936 | } |
2933 | } | 2937 | } |
2934 | return ret; | 2938 | return ret; |
@@ -2992,9 +2996,10 @@ static int si_init_smc_spll_table(struct amdgpu_device *adev) | |||
2992 | 2996 | ||
2993 | 2997 | ||
2994 | if (!ret) | 2998 | if (!ret) |
2995 | ret = si_copy_bytes_to_smc(adev, si_pi->spll_table_start, | 2999 | ret = amdgpu_si_copy_bytes_to_smc(adev, si_pi->spll_table_start, |
2996 | (u8 *)spll_table, sizeof(SMC_SISLANDS_SPLL_DIV_TABLE), | 3000 | (u8 *)spll_table, |
2997 | si_pi->sram_end); | 3001 | sizeof(SMC_SISLANDS_SPLL_DIV_TABLE), |
3002 | si_pi->sram_end); | ||
2998 | 3003 | ||
2999 | if (ret) | 3004 | if (ret) |
3000 | ni_pi->enable_power_containment = false; | 3005 | ni_pi->enable_power_containment = false; |
@@ -3664,9 +3669,9 @@ static int si_read_smc_soft_register(struct amdgpu_device *adev, | |||
3664 | { | 3669 | { |
3665 | struct si_power_info *si_pi = si_get_pi(adev); | 3670 | struct si_power_info *si_pi = si_get_pi(adev); |
3666 | 3671 | ||
3667 | return si_read_smc_sram_dword(adev, | 3672 | return amdgpu_si_read_smc_sram_dword(adev, |
3668 | si_pi->soft_regs_start + reg_offset, value, | 3673 | si_pi->soft_regs_start + reg_offset, value, |
3669 | si_pi->sram_end); | 3674 | si_pi->sram_end); |
3670 | } | 3675 | } |
3671 | #endif | 3676 | #endif |
3672 | 3677 | ||
@@ -3675,9 +3680,9 @@ static int si_write_smc_soft_register(struct amdgpu_device *adev, | |||
3675 | { | 3680 | { |
3676 | struct si_power_info *si_pi = si_get_pi(adev); | 3681 | struct si_power_info *si_pi = si_get_pi(adev); |
3677 | 3682 | ||
3678 | return si_write_smc_sram_dword(adev, | 3683 | return amdgpu_si_write_smc_sram_dword(adev, |
3679 | si_pi->soft_regs_start + reg_offset, | 3684 | si_pi->soft_regs_start + reg_offset, |
3680 | value, si_pi->sram_end); | 3685 | value, si_pi->sram_end); |
3681 | } | 3686 | } |
3682 | 3687 | ||
3683 | static bool si_is_special_1gb_platform(struct amdgpu_device *adev) | 3688 | static bool si_is_special_1gb_platform(struct amdgpu_device *adev) |
@@ -3834,7 +3839,7 @@ static int si_notify_hardware_of_thermal_state(struct amdgpu_device *adev, | |||
3834 | PPSMC_Result ret; | 3839 | PPSMC_Result ret; |
3835 | 3840 | ||
3836 | if (thermal_level == 0) { | 3841 | if (thermal_level == 0) { |
3837 | ret = si_send_msg_to_smc(adev, PPSMC_MSG_EnableThermalInterrupt); | 3842 | ret = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_EnableThermalInterrupt); |
3838 | if (ret == PPSMC_Result_OK) | 3843 | if (ret == PPSMC_Result_OK) |
3839 | return 0; | 3844 | return 0; |
3840 | else | 3845 | else |
@@ -3853,7 +3858,7 @@ static void si_notify_hardware_vpu_recovery_event(struct amdgpu_device *adev) | |||
3853 | static int si_notify_hw_of_powersource(struct amdgpu_device *adev, bool ac_power) | 3858 | static int si_notify_hw_of_powersource(struct amdgpu_device *adev, bool ac_power) |
3854 | { | 3859 | { |
3855 | if (ac_power) | 3860 | if (ac_power) |
3856 | return (si_send_msg_to_smc(adev, PPSMC_MSG_RunningOnAC) == PPSMC_Result_OK) ? | 3861 | return (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_RunningOnAC) == PPSMC_Result_OK) ? |
3857 | 0 : -EINVAL; | 3862 | 0 : -EINVAL; |
3858 | 3863 | ||
3859 | return 0; | 3864 | return 0; |
@@ -3864,12 +3869,12 @@ static PPSMC_Result si_send_msg_to_smc_with_parameter(struct amdgpu_device *adev | |||
3864 | PPSMC_Msg msg, u32 parameter) | 3869 | PPSMC_Msg msg, u32 parameter) |
3865 | { | 3870 | { |
3866 | WREG32(SMC_SCRATCH0, parameter); | 3871 | WREG32(SMC_SCRATCH0, parameter); |
3867 | return si_send_msg_to_smc(adev, msg); | 3872 | return amdgpu_si_send_msg_to_smc(adev, msg); |
3868 | } | 3873 | } |
3869 | 3874 | ||
3870 | static int si_restrict_performance_levels_before_switch(struct amdgpu_device *adev) | 3875 | static int si_restrict_performance_levels_before_switch(struct amdgpu_device *adev) |
3871 | { | 3876 | { |
3872 | if (si_send_msg_to_smc(adev, PPSMC_MSG_NoForcedLevel) != PPSMC_Result_OK) | 3877 | if (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_NoForcedLevel) != PPSMC_Result_OK) |
3873 | return -EINVAL; | 3878 | return -EINVAL; |
3874 | 3879 | ||
3875 | return (si_send_msg_to_smc_with_parameter(adev, PPSMC_MSG_SetEnabledLevels, 1) == PPSMC_Result_OK) ? | 3880 | return (si_send_msg_to_smc_with_parameter(adev, PPSMC_MSG_SetEnabledLevels, 1) == PPSMC_Result_OK) ? |
@@ -3911,46 +3916,46 @@ static int si_dpm_force_performance_level(struct amdgpu_device *adev, | |||
3911 | #if 0 | 3916 | #if 0 |
3912 | static int si_set_boot_state(struct amdgpu_device *adev) | 3917 | static int si_set_boot_state(struct amdgpu_device *adev) |
3913 | { | 3918 | { |
3914 | return (si_send_msg_to_smc(adev, PPSMC_MSG_SwitchToInitialState) == PPSMC_Result_OK) ? | 3919 | return (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_SwitchToInitialState) == PPSMC_Result_OK) ? |
3915 | 0 : -EINVAL; | 3920 | 0 : -EINVAL; |
3916 | } | 3921 | } |
3917 | #endif | 3922 | #endif |
3918 | 3923 | ||
3919 | static int si_set_sw_state(struct amdgpu_device *adev) | 3924 | static int si_set_sw_state(struct amdgpu_device *adev) |
3920 | { | 3925 | { |
3921 | return (si_send_msg_to_smc(adev, PPSMC_MSG_SwitchToSwState) == PPSMC_Result_OK) ? | 3926 | return (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_SwitchToSwState) == PPSMC_Result_OK) ? |
3922 | 0 : -EINVAL; | 3927 | 0 : -EINVAL; |
3923 | } | 3928 | } |
3924 | 3929 | ||
3925 | static int si_halt_smc(struct amdgpu_device *adev) | 3930 | static int si_halt_smc(struct amdgpu_device *adev) |
3926 | { | 3931 | { |
3927 | if (si_send_msg_to_smc(adev, PPSMC_MSG_Halt) != PPSMC_Result_OK) | 3932 | if (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_Halt) != PPSMC_Result_OK) |
3928 | return -EINVAL; | 3933 | return -EINVAL; |
3929 | 3934 | ||
3930 | return (si_wait_for_smc_inactive(adev) == PPSMC_Result_OK) ? | 3935 | return (amdgpu_si_wait_for_smc_inactive(adev) == PPSMC_Result_OK) ? |
3931 | 0 : -EINVAL; | 3936 | 0 : -EINVAL; |
3932 | } | 3937 | } |
3933 | 3938 | ||
3934 | static int si_resume_smc(struct amdgpu_device *adev) | 3939 | static int si_resume_smc(struct amdgpu_device *adev) |
3935 | { | 3940 | { |
3936 | if (si_send_msg_to_smc(adev, PPSMC_FlushDataCache) != PPSMC_Result_OK) | 3941 | if (amdgpu_si_send_msg_to_smc(adev, PPSMC_FlushDataCache) != PPSMC_Result_OK) |
3937 | return -EINVAL; | 3942 | return -EINVAL; |
3938 | 3943 | ||
3939 | return (si_send_msg_to_smc(adev, PPSMC_MSG_Resume) == PPSMC_Result_OK) ? | 3944 | return (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_Resume) == PPSMC_Result_OK) ? |
3940 | 0 : -EINVAL; | 3945 | 0 : -EINVAL; |
3941 | } | 3946 | } |
3942 | 3947 | ||
3943 | static void si_dpm_start_smc(struct amdgpu_device *adev) | 3948 | static void si_dpm_start_smc(struct amdgpu_device *adev) |
3944 | { | 3949 | { |
3945 | si_program_jump_on_start(adev); | 3950 | amdgpu_si_program_jump_on_start(adev); |
3946 | si_start_smc(adev); | 3951 | amdgpu_si_start_smc(adev); |
3947 | si_smc_clock(adev, true); | 3952 | amdgpu_si_smc_clock(adev, true); |
3948 | } | 3953 | } |
3949 | 3954 | ||
3950 | static void si_dpm_stop_smc(struct amdgpu_device *adev) | 3955 | static void si_dpm_stop_smc(struct amdgpu_device *adev) |
3951 | { | 3956 | { |
3952 | si_reset_smc(adev); | 3957 | amdgpu_si_reset_smc(adev); |
3953 | si_smc_clock(adev, false); | 3958 | amdgpu_si_smc_clock(adev, false); |
3954 | } | 3959 | } |
3955 | 3960 | ||
3956 | static int si_process_firmware_header(struct amdgpu_device *adev) | 3961 | static int si_process_firmware_header(struct amdgpu_device *adev) |
@@ -3959,82 +3964,82 @@ static int si_process_firmware_header(struct amdgpu_device *adev) | |||
3959 | u32 tmp; | 3964 | u32 tmp; |
3960 | int ret; | 3965 | int ret; |
3961 | 3966 | ||
3962 | ret = si_read_smc_sram_dword(adev, | 3967 | ret = amdgpu_si_read_smc_sram_dword(adev, |
3963 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + | 3968 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + |
3964 | SISLANDS_SMC_FIRMWARE_HEADER_stateTable, | 3969 | SISLANDS_SMC_FIRMWARE_HEADER_stateTable, |
3965 | &tmp, si_pi->sram_end); | 3970 | &tmp, si_pi->sram_end); |
3966 | if (ret) | 3971 | if (ret) |
3967 | return ret; | 3972 | return ret; |
3968 | 3973 | ||
3969 | si_pi->state_table_start = tmp; | 3974 | si_pi->state_table_start = tmp; |
3970 | 3975 | ||
3971 | ret = si_read_smc_sram_dword(adev, | 3976 | ret = amdgpu_si_read_smc_sram_dword(adev, |
3972 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + | 3977 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + |
3973 | SISLANDS_SMC_FIRMWARE_HEADER_softRegisters, | 3978 | SISLANDS_SMC_FIRMWARE_HEADER_softRegisters, |
3974 | &tmp, si_pi->sram_end); | 3979 | &tmp, si_pi->sram_end); |
3975 | if (ret) | 3980 | if (ret) |
3976 | return ret; | 3981 | return ret; |
3977 | 3982 | ||
3978 | si_pi->soft_regs_start = tmp; | 3983 | si_pi->soft_regs_start = tmp; |
3979 | 3984 | ||
3980 | ret = si_read_smc_sram_dword(adev, | 3985 | ret = amdgpu_si_read_smc_sram_dword(adev, |
3981 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + | 3986 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + |
3982 | SISLANDS_SMC_FIRMWARE_HEADER_mcRegisterTable, | 3987 | SISLANDS_SMC_FIRMWARE_HEADER_mcRegisterTable, |
3983 | &tmp, si_pi->sram_end); | 3988 | &tmp, si_pi->sram_end); |
3984 | if (ret) | 3989 | if (ret) |
3985 | return ret; | 3990 | return ret; |
3986 | 3991 | ||
3987 | si_pi->mc_reg_table_start = tmp; | 3992 | si_pi->mc_reg_table_start = tmp; |
3988 | 3993 | ||
3989 | ret = si_read_smc_sram_dword(adev, | 3994 | ret = amdgpu_si_read_smc_sram_dword(adev, |
3990 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + | 3995 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + |
3991 | SISLANDS_SMC_FIRMWARE_HEADER_fanTable, | 3996 | SISLANDS_SMC_FIRMWARE_HEADER_fanTable, |
3992 | &tmp, si_pi->sram_end); | 3997 | &tmp, si_pi->sram_end); |
3993 | if (ret) | 3998 | if (ret) |
3994 | return ret; | 3999 | return ret; |
3995 | 4000 | ||
3996 | si_pi->fan_table_start = tmp; | 4001 | si_pi->fan_table_start = tmp; |
3997 | 4002 | ||
3998 | ret = si_read_smc_sram_dword(adev, | 4003 | ret = amdgpu_si_read_smc_sram_dword(adev, |
3999 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + | 4004 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + |
4000 | SISLANDS_SMC_FIRMWARE_HEADER_mcArbDramAutoRefreshTable, | 4005 | SISLANDS_SMC_FIRMWARE_HEADER_mcArbDramAutoRefreshTable, |
4001 | &tmp, si_pi->sram_end); | 4006 | &tmp, si_pi->sram_end); |
4002 | if (ret) | 4007 | if (ret) |
4003 | return ret; | 4008 | return ret; |
4004 | 4009 | ||
4005 | si_pi->arb_table_start = tmp; | 4010 | si_pi->arb_table_start = tmp; |
4006 | 4011 | ||
4007 | ret = si_read_smc_sram_dword(adev, | 4012 | ret = amdgpu_si_read_smc_sram_dword(adev, |
4008 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + | 4013 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + |
4009 | SISLANDS_SMC_FIRMWARE_HEADER_CacConfigTable, | 4014 | SISLANDS_SMC_FIRMWARE_HEADER_CacConfigTable, |
4010 | &tmp, si_pi->sram_end); | 4015 | &tmp, si_pi->sram_end); |
4011 | if (ret) | 4016 | if (ret) |
4012 | return ret; | 4017 | return ret; |
4013 | 4018 | ||
4014 | si_pi->cac_table_start = tmp; | 4019 | si_pi->cac_table_start = tmp; |
4015 | 4020 | ||
4016 | ret = si_read_smc_sram_dword(adev, | 4021 | ret = amdgpu_si_read_smc_sram_dword(adev, |
4017 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + | 4022 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + |
4018 | SISLANDS_SMC_FIRMWARE_HEADER_DteConfiguration, | 4023 | SISLANDS_SMC_FIRMWARE_HEADER_DteConfiguration, |
4019 | &tmp, si_pi->sram_end); | 4024 | &tmp, si_pi->sram_end); |
4020 | if (ret) | 4025 | if (ret) |
4021 | return ret; | 4026 | return ret; |
4022 | 4027 | ||
4023 | si_pi->dte_table_start = tmp; | 4028 | si_pi->dte_table_start = tmp; |
4024 | 4029 | ||
4025 | ret = si_read_smc_sram_dword(adev, | 4030 | ret = amdgpu_si_read_smc_sram_dword(adev, |
4026 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + | 4031 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + |
4027 | SISLANDS_SMC_FIRMWARE_HEADER_spllTable, | 4032 | SISLANDS_SMC_FIRMWARE_HEADER_spllTable, |
4028 | &tmp, si_pi->sram_end); | 4033 | &tmp, si_pi->sram_end); |
4029 | if (ret) | 4034 | if (ret) |
4030 | return ret; | 4035 | return ret; |
4031 | 4036 | ||
4032 | si_pi->spll_table_start = tmp; | 4037 | si_pi->spll_table_start = tmp; |
4033 | 4038 | ||
4034 | ret = si_read_smc_sram_dword(adev, | 4039 | ret = amdgpu_si_read_smc_sram_dword(adev, |
4035 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + | 4040 | SISLANDS_SMC_FIRMWARE_HEADER_LOCATION + |
4036 | SISLANDS_SMC_FIRMWARE_HEADER_PAPMParameters, | 4041 | SISLANDS_SMC_FIRMWARE_HEADER_PAPMParameters, |
4037 | &tmp, si_pi->sram_end); | 4042 | &tmp, si_pi->sram_end); |
4038 | if (ret) | 4043 | if (ret) |
4039 | return ret; | 4044 | return ret; |
4040 | 4045 | ||
@@ -4112,7 +4117,7 @@ static int si_notify_smc_display_change(struct amdgpu_device *adev, | |||
4112 | PPSMC_Msg msg = has_display ? | 4117 | PPSMC_Msg msg = has_display ? |
4113 | PPSMC_MSG_HasDisplay : PPSMC_MSG_NoDisplay; | 4118 | PPSMC_MSG_HasDisplay : PPSMC_MSG_NoDisplay; |
4114 | 4119 | ||
4115 | return (si_send_msg_to_smc(adev, msg) == PPSMC_Result_OK) ? | 4120 | return (amdgpu_si_send_msg_to_smc(adev, msg) == PPSMC_Result_OK) ? |
4116 | 0 : -EINVAL; | 4121 | 0 : -EINVAL; |
4117 | } | 4122 | } |
4118 | 4123 | ||
@@ -4365,10 +4370,10 @@ static int si_upload_firmware(struct amdgpu_device *adev) | |||
4365 | { | 4370 | { |
4366 | struct si_power_info *si_pi = si_get_pi(adev); | 4371 | struct si_power_info *si_pi = si_get_pi(adev); |
4367 | 4372 | ||
4368 | si_reset_smc(adev); | 4373 | amdgpu_si_reset_smc(adev); |
4369 | si_smc_clock(adev, false); | 4374 | amdgpu_si_smc_clock(adev, false); |
4370 | 4375 | ||
4371 | return si_load_smc_ucode(adev, si_pi->sram_end); | 4376 | return amdgpu_si_load_smc_ucode(adev, si_pi->sram_end); |
4372 | } | 4377 | } |
4373 | 4378 | ||
4374 | static bool si_validate_phase_shedding_tables(struct amdgpu_device *adev, | 4379 | static bool si_validate_phase_shedding_tables(struct amdgpu_device *adev, |
@@ -4712,14 +4717,16 @@ static int si_init_arb_table_index(struct amdgpu_device *adev) | |||
4712 | u32 tmp; | 4717 | u32 tmp; |
4713 | int ret; | 4718 | int ret; |
4714 | 4719 | ||
4715 | ret = si_read_smc_sram_dword(adev, si_pi->arb_table_start, &tmp, si_pi->sram_end); | 4720 | ret = amdgpu_si_read_smc_sram_dword(adev, si_pi->arb_table_start, |
4721 | &tmp, si_pi->sram_end); | ||
4716 | if (ret) | 4722 | if (ret) |
4717 | return ret; | 4723 | return ret; |
4718 | 4724 | ||
4719 | tmp &= 0x00FFFFFF; | 4725 | tmp &= 0x00FFFFFF; |
4720 | tmp |= MC_CG_ARB_FREQ_F1 << 24; | 4726 | tmp |= MC_CG_ARB_FREQ_F1 << 24; |
4721 | 4727 | ||
4722 | return si_write_smc_sram_dword(adev, si_pi->arb_table_start, tmp, si_pi->sram_end); | 4728 | return amdgpu_si_write_smc_sram_dword(adev, si_pi->arb_table_start, |
4729 | tmp, si_pi->sram_end); | ||
4723 | } | 4730 | } |
4724 | 4731 | ||
4725 | static int si_initial_switch_from_arb_f0_to_f1(struct amdgpu_device *adev) | 4732 | static int si_initial_switch_from_arb_f0_to_f1(struct amdgpu_device *adev) |
@@ -4729,7 +4736,7 @@ static int si_initial_switch_from_arb_f0_to_f1(struct amdgpu_device *adev) | |||
4729 | 4736 | ||
4730 | static int si_reset_to_default(struct amdgpu_device *adev) | 4737 | static int si_reset_to_default(struct amdgpu_device *adev) |
4731 | { | 4738 | { |
4732 | return (si_send_msg_to_smc(adev, PPSMC_MSG_ResetToDefaults) == PPSMC_Result_OK) ? | 4739 | return (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_ResetToDefaults) == PPSMC_Result_OK) ? |
4733 | 0 : -EINVAL; | 4740 | 0 : -EINVAL; |
4734 | } | 4741 | } |
4735 | 4742 | ||
@@ -4739,8 +4746,8 @@ static int si_force_switch_to_arb_f0(struct amdgpu_device *adev) | |||
4739 | u32 tmp; | 4746 | u32 tmp; |
4740 | int ret; | 4747 | int ret; |
4741 | 4748 | ||
4742 | ret = si_read_smc_sram_dword(adev, si_pi->arb_table_start, | 4749 | ret = amdgpu_si_read_smc_sram_dword(adev, si_pi->arb_table_start, |
4743 | &tmp, si_pi->sram_end); | 4750 | &tmp, si_pi->sram_end); |
4744 | if (ret) | 4751 | if (ret) |
4745 | return ret; | 4752 | return ret; |
4746 | 4753 | ||
@@ -4810,13 +4817,13 @@ static int si_do_program_memory_timing_parameters(struct amdgpu_device *adev, | |||
4810 | ret = si_populate_memory_timing_parameters(adev, &state->performance_levels[i], &arb_regs); | 4817 | ret = si_populate_memory_timing_parameters(adev, &state->performance_levels[i], &arb_regs); |
4811 | if (ret) | 4818 | if (ret) |
4812 | break; | 4819 | break; |
4813 | ret = si_copy_bytes_to_smc(adev, | 4820 | ret = amdgpu_si_copy_bytes_to_smc(adev, |
4814 | si_pi->arb_table_start + | 4821 | si_pi->arb_table_start + |
4815 | offsetof(SMC_SIslands_MCArbDramTimingRegisters, data) + | 4822 | offsetof(SMC_SIslands_MCArbDramTimingRegisters, data) + |
4816 | sizeof(SMC_SIslands_MCArbDramTimingRegisterSet) * (first_arb_set + i), | 4823 | sizeof(SMC_SIslands_MCArbDramTimingRegisterSet) * (first_arb_set + i), |
4817 | (u8 *)&arb_regs, | 4824 | (u8 *)&arb_regs, |
4818 | sizeof(SMC_SIslands_MCArbDramTimingRegisterSet), | 4825 | sizeof(SMC_SIslands_MCArbDramTimingRegisterSet), |
4819 | si_pi->sram_end); | 4826 | si_pi->sram_end); |
4820 | if (ret) | 4827 | if (ret) |
4821 | break; | 4828 | break; |
4822 | } | 4829 | } |
@@ -5152,13 +5159,13 @@ static int si_program_ulv_memory_timing_parameters(struct amdgpu_device *adev) | |||
5152 | si_write_smc_soft_register(adev, SI_SMC_SOFT_REGISTER_ulv_volt_change_delay, | 5159 | si_write_smc_soft_register(adev, SI_SMC_SOFT_REGISTER_ulv_volt_change_delay, |
5153 | ulv->volt_change_delay); | 5160 | ulv->volt_change_delay); |
5154 | 5161 | ||
5155 | ret = si_copy_bytes_to_smc(adev, | 5162 | ret = amdgpu_si_copy_bytes_to_smc(adev, |
5156 | si_pi->arb_table_start + | 5163 | si_pi->arb_table_start + |
5157 | offsetof(SMC_SIslands_MCArbDramTimingRegisters, data) + | 5164 | offsetof(SMC_SIslands_MCArbDramTimingRegisters, data) + |
5158 | sizeof(SMC_SIslands_MCArbDramTimingRegisterSet) * SISLANDS_ULV_STATE_ARB_INDEX, | 5165 | sizeof(SMC_SIslands_MCArbDramTimingRegisterSet) * SISLANDS_ULV_STATE_ARB_INDEX, |
5159 | (u8 *)&arb_regs, | 5166 | (u8 *)&arb_regs, |
5160 | sizeof(SMC_SIslands_MCArbDramTimingRegisterSet), | 5167 | sizeof(SMC_SIslands_MCArbDramTimingRegisterSet), |
5161 | si_pi->sram_end); | 5168 | si_pi->sram_end); |
5162 | 5169 | ||
5163 | return ret; | 5170 | return ret; |
5164 | } | 5171 | } |
@@ -5252,9 +5259,9 @@ static int si_init_smc_table(struct amdgpu_device *adev) | |||
5252 | table->ULVState = table->initialState; | 5259 | table->ULVState = table->initialState; |
5253 | } | 5260 | } |
5254 | 5261 | ||
5255 | return si_copy_bytes_to_smc(adev, si_pi->state_table_start, | 5262 | return amdgpu_si_copy_bytes_to_smc(adev, si_pi->state_table_start, |
5256 | (u8 *)table, sizeof(SISLANDS_SMC_STATETABLE), | 5263 | (u8 *)table, sizeof(SISLANDS_SMC_STATETABLE), |
5257 | si_pi->sram_end); | 5264 | si_pi->sram_end); |
5258 | } | 5265 | } |
5259 | 5266 | ||
5260 | static int si_calculate_sclk_params(struct amdgpu_device *adev, | 5267 | static int si_calculate_sclk_params(struct amdgpu_device *adev, |
@@ -5616,7 +5623,7 @@ static int si_disable_ulv(struct amdgpu_device *adev) | |||
5616 | struct si_ulv_param *ulv = &si_pi->ulv; | 5623 | struct si_ulv_param *ulv = &si_pi->ulv; |
5617 | 5624 | ||
5618 | if (ulv->supported) | 5625 | if (ulv->supported) |
5619 | return (si_send_msg_to_smc(adev, PPSMC_MSG_DisableULV) == PPSMC_Result_OK) ? | 5626 | return (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_DisableULV) == PPSMC_Result_OK) ? |
5620 | 0 : -EINVAL; | 5627 | 0 : -EINVAL; |
5621 | 5628 | ||
5622 | return 0; | 5629 | return 0; |
@@ -5658,7 +5665,7 @@ static int si_set_power_state_conditionally_enable_ulv(struct amdgpu_device *ade | |||
5658 | 5665 | ||
5659 | if (ulv->supported) { | 5666 | if (ulv->supported) { |
5660 | if (si_is_state_ulv_compatible(adev, amdgpu_new_state)) | 5667 | if (si_is_state_ulv_compatible(adev, amdgpu_new_state)) |
5661 | return (si_send_msg_to_smc(adev, PPSMC_MSG_EnableULV) == PPSMC_Result_OK) ? | 5668 | return (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_EnableULV) == PPSMC_Result_OK) ? |
5662 | 0 : -EINVAL; | 5669 | 0 : -EINVAL; |
5663 | } | 5670 | } |
5664 | return 0; | 5671 | return 0; |
@@ -5763,8 +5770,8 @@ static int si_upload_sw_state(struct amdgpu_device *adev, | |||
5763 | if (ret) | 5770 | if (ret) |
5764 | return ret; | 5771 | return ret; |
5765 | 5772 | ||
5766 | return si_copy_bytes_to_smc(adev, address, (u8 *)smc_state, | 5773 | return amdgpu_si_copy_bytes_to_smc(adev, address, (u8 *)smc_state, |
5767 | state_size, si_pi->sram_end); | 5774 | state_size, si_pi->sram_end); |
5768 | } | 5775 | } |
5769 | 5776 | ||
5770 | static int si_upload_ulv_state(struct amdgpu_device *adev) | 5777 | static int si_upload_ulv_state(struct amdgpu_device *adev) |
@@ -5783,8 +5790,8 @@ static int si_upload_ulv_state(struct amdgpu_device *adev) | |||
5783 | 5790 | ||
5784 | ret = si_populate_ulv_state(adev, smc_state); | 5791 | ret = si_populate_ulv_state(adev, smc_state); |
5785 | if (!ret) | 5792 | if (!ret) |
5786 | ret = si_copy_bytes_to_smc(adev, address, (u8 *)smc_state, | 5793 | ret = amdgpu_si_copy_bytes_to_smc(adev, address, (u8 *)smc_state, |
5787 | state_size, si_pi->sram_end); | 5794 | state_size, si_pi->sram_end); |
5788 | } | 5795 | } |
5789 | 5796 | ||
5790 | return ret; | 5797 | return ret; |
@@ -6155,9 +6162,9 @@ static int si_populate_mc_reg_table(struct amdgpu_device *adev, | |||
6155 | 6162 | ||
6156 | si_convert_mc_reg_table_to_smc(adev, amdgpu_boot_state, smc_mc_reg_table); | 6163 | si_convert_mc_reg_table_to_smc(adev, amdgpu_boot_state, smc_mc_reg_table); |
6157 | 6164 | ||
6158 | return si_copy_bytes_to_smc(adev, si_pi->mc_reg_table_start, | 6165 | return amdgpu_si_copy_bytes_to_smc(adev, si_pi->mc_reg_table_start, |
6159 | (u8 *)smc_mc_reg_table, | 6166 | (u8 *)smc_mc_reg_table, |
6160 | sizeof(SMC_SIslands_MCRegisters), si_pi->sram_end); | 6167 | sizeof(SMC_SIslands_MCRegisters), si_pi->sram_end); |
6161 | } | 6168 | } |
6162 | 6169 | ||
6163 | static int si_upload_mc_reg_table(struct amdgpu_device *adev, | 6170 | static int si_upload_mc_reg_table(struct amdgpu_device *adev, |
@@ -6174,10 +6181,10 @@ static int si_upload_mc_reg_table(struct amdgpu_device *adev, | |||
6174 | 6181 | ||
6175 | si_convert_mc_reg_table_to_smc(adev, amdgpu_new_state, smc_mc_reg_table); | 6182 | si_convert_mc_reg_table_to_smc(adev, amdgpu_new_state, smc_mc_reg_table); |
6176 | 6183 | ||
6177 | return si_copy_bytes_to_smc(adev, address, | 6184 | return amdgpu_si_copy_bytes_to_smc(adev, address, |
6178 | (u8 *)&smc_mc_reg_table->data[SISLANDS_MCREGISTERTABLE_FIRST_DRIVERSTATE_SLOT], | 6185 | (u8 *)&smc_mc_reg_table->data[SISLANDS_MCREGISTERTABLE_FIRST_DRIVERSTATE_SLOT], |
6179 | sizeof(SMC_SIslands_MCRegisterSet) * new_state->performance_level_count, | 6186 | sizeof(SMC_SIslands_MCRegisterSet) * new_state->performance_level_count, |
6180 | si_pi->sram_end); | 6187 | si_pi->sram_end); |
6181 | } | 6188 | } |
6182 | 6189 | ||
6183 | static void si_enable_voltage_control(struct amdgpu_device *adev, bool enable) | 6190 | static void si_enable_voltage_control(struct amdgpu_device *adev, bool enable) |
@@ -6285,11 +6292,11 @@ static int si_ds_request(struct amdgpu_device *adev, | |||
6285 | 6292 | ||
6286 | if (eg_pi->sclk_deep_sleep) { | 6293 | if (eg_pi->sclk_deep_sleep) { |
6287 | if (ds_status_on) | 6294 | if (ds_status_on) |
6288 | return (si_send_msg_to_smc(adev, PPSMC_MSG_CancelThrottleOVRDSCLKDS) == | 6295 | return (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_CancelThrottleOVRDSCLKDS) == |
6289 | PPSMC_Result_OK) ? | 6296 | PPSMC_Result_OK) ? |
6290 | 0 : -EINVAL; | 6297 | 0 : -EINVAL; |
6291 | else | 6298 | else |
6292 | return (si_send_msg_to_smc(adev, PPSMC_MSG_ThrottleOVRDSCLKDS) == | 6299 | return (amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_ThrottleOVRDSCLKDS) == |
6293 | PPSMC_Result_OK) ? 0 : -EINVAL; | 6300 | PPSMC_Result_OK) ? 0 : -EINVAL; |
6294 | } | 6301 | } |
6295 | return 0; | 6302 | return 0; |
@@ -6420,7 +6427,7 @@ static int si_thermal_enable_alert(struct amdgpu_device *adev, | |||
6420 | 6427 | ||
6421 | thermal_int &= ~(THERM_INT_MASK_HIGH | THERM_INT_MASK_LOW); | 6428 | thermal_int &= ~(THERM_INT_MASK_HIGH | THERM_INT_MASK_LOW); |
6422 | WREG32(CG_THERMAL_INT, thermal_int); | 6429 | WREG32(CG_THERMAL_INT, thermal_int); |
6423 | result = si_send_msg_to_smc(adev, PPSMC_MSG_EnableThermalInterrupt); | 6430 | result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_EnableThermalInterrupt); |
6424 | if (result != PPSMC_Result_OK) { | 6431 | if (result != PPSMC_Result_OK) { |
6425 | DRM_DEBUG_KMS("Could not enable thermal interrupts.\n"); | 6432 | DRM_DEBUG_KMS("Could not enable thermal interrupts.\n"); |
6426 | return -EINVAL; | 6433 | return -EINVAL; |
@@ -6535,11 +6542,11 @@ static int si_thermal_setup_fan_table(struct amdgpu_device *adev) | |||
6535 | tmp = (RREG32(CG_MULT_THERMAL_CTRL) & TEMP_SEL_MASK) >> TEMP_SEL_SHIFT; | 6542 | tmp = (RREG32(CG_MULT_THERMAL_CTRL) & TEMP_SEL_MASK) >> TEMP_SEL_SHIFT; |
6536 | fan_table.temp_src = (uint8_t)tmp; | 6543 | fan_table.temp_src = (uint8_t)tmp; |
6537 | 6544 | ||
6538 | ret = si_copy_bytes_to_smc(adev, | 6545 | ret = amdgpu_si_copy_bytes_to_smc(adev, |
6539 | si_pi->fan_table_start, | 6546 | si_pi->fan_table_start, |
6540 | (u8 *)(&fan_table), | 6547 | (u8 *)(&fan_table), |
6541 | sizeof(fan_table), | 6548 | sizeof(fan_table), |
6542 | si_pi->sram_end); | 6549 | si_pi->sram_end); |
6543 | 6550 | ||
6544 | if (ret) { | 6551 | if (ret) { |
6545 | DRM_ERROR("Failed to load fan table to the SMC."); | 6552 | DRM_ERROR("Failed to load fan table to the SMC."); |
@@ -6554,7 +6561,7 @@ static int si_fan_ctrl_start_smc_fan_control(struct amdgpu_device *adev) | |||
6554 | struct si_power_info *si_pi = si_get_pi(adev); | 6561 | struct si_power_info *si_pi = si_get_pi(adev); |
6555 | PPSMC_Result ret; | 6562 | PPSMC_Result ret; |
6556 | 6563 | ||
6557 | ret = si_send_msg_to_smc(adev, PPSMC_StartFanControl); | 6564 | ret = amdgpu_si_send_msg_to_smc(adev, PPSMC_StartFanControl); |
6558 | if (ret == PPSMC_Result_OK) { | 6565 | if (ret == PPSMC_Result_OK) { |
6559 | si_pi->fan_is_controlled_by_smc = true; | 6566 | si_pi->fan_is_controlled_by_smc = true; |
6560 | return 0; | 6567 | return 0; |
@@ -6568,7 +6575,7 @@ static int si_fan_ctrl_stop_smc_fan_control(struct amdgpu_device *adev) | |||
6568 | struct si_power_info *si_pi = si_get_pi(adev); | 6575 | struct si_power_info *si_pi = si_get_pi(adev); |
6569 | PPSMC_Result ret; | 6576 | PPSMC_Result ret; |
6570 | 6577 | ||
6571 | ret = si_send_msg_to_smc(adev, PPSMC_StopFanControl); | 6578 | ret = amdgpu_si_send_msg_to_smc(adev, PPSMC_StopFanControl); |
6572 | 6579 | ||
6573 | if (ret == PPSMC_Result_OK) { | 6580 | if (ret == PPSMC_Result_OK) { |
6574 | si_pi->fan_is_controlled_by_smc = false; | 6581 | si_pi->fan_is_controlled_by_smc = false; |
@@ -6799,7 +6806,7 @@ static int si_dpm_enable(struct amdgpu_device *adev) | |||
6799 | struct amdgpu_ps *boot_ps = adev->pm.dpm.boot_ps; | 6806 | struct amdgpu_ps *boot_ps = adev->pm.dpm.boot_ps; |
6800 | int ret; | 6807 | int ret; |
6801 | 6808 | ||
6802 | if (si_is_smc_running(adev)) | 6809 | if (amdgpu_si_is_smc_running(adev)) |
6803 | return -EINVAL; | 6810 | return -EINVAL; |
6804 | if (pi->voltage_control || si_pi->voltage_control_svi2) | 6811 | if (pi->voltage_control || si_pi->voltage_control_svi2) |
6805 | si_enable_voltage_control(adev, true); | 6812 | si_enable_voltage_control(adev, true); |
@@ -6930,7 +6937,7 @@ static void si_dpm_disable(struct amdgpu_device *adev) | |||
6930 | struct rv7xx_power_info *pi = rv770_get_pi(adev); | 6937 | struct rv7xx_power_info *pi = rv770_get_pi(adev); |
6931 | struct amdgpu_ps *boot_ps = adev->pm.dpm.boot_ps; | 6938 | struct amdgpu_ps *boot_ps = adev->pm.dpm.boot_ps; |
6932 | 6939 | ||
6933 | if (!si_is_smc_running(adev)) | 6940 | if (!amdgpu_si_is_smc_running(adev)) |
6934 | return; | 6941 | return; |
6935 | si_thermal_stop_thermal_controller(adev); | 6942 | si_thermal_stop_thermal_controller(adev); |
6936 | si_disable_ulv(adev); | 6943 | si_disable_ulv(adev); |
diff --git a/drivers/gpu/drm/amd/amdgpu/si_smc.c b/drivers/gpu/drm/amd/amdgpu/si_smc.c index 47bbb40e7014..668ba99d6c05 100644 --- a/drivers/gpu/drm/amd/amdgpu/si_smc.c +++ b/drivers/gpu/drm/amd/amdgpu/si_smc.c | |||
@@ -44,9 +44,9 @@ static int si_set_smc_sram_address(struct amdgpu_device *adev, | |||
44 | return 0; | 44 | return 0; |
45 | } | 45 | } |
46 | 46 | ||
47 | int si_copy_bytes_to_smc(struct amdgpu_device *adev, | 47 | int amdgpu_si_copy_bytes_to_smc(struct amdgpu_device *adev, |
48 | u32 smc_start_address, | 48 | u32 smc_start_address, |
49 | const u8 *src, u32 byte_count, u32 limit) | 49 | const u8 *src, u32 byte_count, u32 limit) |
50 | { | 50 | { |
51 | unsigned long flags; | 51 | unsigned long flags; |
52 | int ret = 0; | 52 | int ret = 0; |
@@ -108,7 +108,7 @@ done: | |||
108 | return ret; | 108 | return ret; |
109 | } | 109 | } |
110 | 110 | ||
111 | void si_start_smc(struct amdgpu_device *adev) | 111 | void amdgpu_si_start_smc(struct amdgpu_device *adev) |
112 | { | 112 | { |
113 | u32 tmp = RREG32_SMC(SMC_SYSCON_RESET_CNTL); | 113 | u32 tmp = RREG32_SMC(SMC_SYSCON_RESET_CNTL); |
114 | 114 | ||
@@ -117,7 +117,7 @@ void si_start_smc(struct amdgpu_device *adev) | |||
117 | WREG32_SMC(SMC_SYSCON_RESET_CNTL, tmp); | 117 | WREG32_SMC(SMC_SYSCON_RESET_CNTL, tmp); |
118 | } | 118 | } |
119 | 119 | ||
120 | void si_reset_smc(struct amdgpu_device *adev) | 120 | void amdgpu_si_reset_smc(struct amdgpu_device *adev) |
121 | { | 121 | { |
122 | u32 tmp; | 122 | u32 tmp; |
123 | 123 | ||
@@ -131,14 +131,14 @@ void si_reset_smc(struct amdgpu_device *adev) | |||
131 | WREG32_SMC(SMC_SYSCON_RESET_CNTL, tmp); | 131 | WREG32_SMC(SMC_SYSCON_RESET_CNTL, tmp); |
132 | } | 132 | } |
133 | 133 | ||
134 | int si_program_jump_on_start(struct amdgpu_device *adev) | 134 | int amdgpu_si_program_jump_on_start(struct amdgpu_device *adev) |
135 | { | 135 | { |
136 | static const u8 data[] = { 0x0E, 0x00, 0x40, 0x40 }; | 136 | static const u8 data[] = { 0x0E, 0x00, 0x40, 0x40 }; |
137 | 137 | ||
138 | return si_copy_bytes_to_smc(adev, 0x0, data, 4, sizeof(data)+1); | 138 | return amdgpu_si_copy_bytes_to_smc(adev, 0x0, data, 4, sizeof(data)+1); |
139 | } | 139 | } |
140 | 140 | ||
141 | void si_smc_clock(struct amdgpu_device *adev, bool enable) | 141 | void amdgpu_si_smc_clock(struct amdgpu_device *adev, bool enable) |
142 | { | 142 | { |
143 | u32 tmp = RREG32_SMC(SMC_SYSCON_CLOCK_CNTL_0); | 143 | u32 tmp = RREG32_SMC(SMC_SYSCON_CLOCK_CNTL_0); |
144 | 144 | ||
@@ -150,7 +150,7 @@ void si_smc_clock(struct amdgpu_device *adev, bool enable) | |||
150 | WREG32_SMC(SMC_SYSCON_CLOCK_CNTL_0, tmp); | 150 | WREG32_SMC(SMC_SYSCON_CLOCK_CNTL_0, tmp); |
151 | } | 151 | } |
152 | 152 | ||
153 | bool si_is_smc_running(struct amdgpu_device *adev) | 153 | bool amdgpu_si_is_smc_running(struct amdgpu_device *adev) |
154 | { | 154 | { |
155 | u32 rst = RREG32_SMC(SMC_SYSCON_RESET_CNTL); | 155 | u32 rst = RREG32_SMC(SMC_SYSCON_RESET_CNTL); |
156 | u32 clk = RREG32_SMC(SMC_SYSCON_CLOCK_CNTL_0); | 156 | u32 clk = RREG32_SMC(SMC_SYSCON_CLOCK_CNTL_0); |
@@ -161,12 +161,13 @@ bool si_is_smc_running(struct amdgpu_device *adev) | |||
161 | return false; | 161 | return false; |
162 | } | 162 | } |
163 | 163 | ||
164 | PPSMC_Result si_send_msg_to_smc(struct amdgpu_device *adev, PPSMC_Msg msg) | 164 | PPSMC_Result amdgpu_si_send_msg_to_smc(struct amdgpu_device *adev, |
165 | PPSMC_Msg msg) | ||
165 | { | 166 | { |
166 | u32 tmp; | 167 | u32 tmp; |
167 | int i; | 168 | int i; |
168 | 169 | ||
169 | if (!si_is_smc_running(adev)) | 170 | if (!amdgpu_si_is_smc_running(adev)) |
170 | return PPSMC_Result_Failed; | 171 | return PPSMC_Result_Failed; |
171 | 172 | ||
172 | WREG32(SMC_MESSAGE_0, msg); | 173 | WREG32(SMC_MESSAGE_0, msg); |
@@ -181,12 +182,12 @@ PPSMC_Result si_send_msg_to_smc(struct amdgpu_device *adev, PPSMC_Msg msg) | |||
181 | return (PPSMC_Result)RREG32(SMC_RESP_0); | 182 | return (PPSMC_Result)RREG32(SMC_RESP_0); |
182 | } | 183 | } |
183 | 184 | ||
184 | PPSMC_Result si_wait_for_smc_inactive(struct amdgpu_device *adev) | 185 | PPSMC_Result amdgpu_si_wait_for_smc_inactive(struct amdgpu_device *adev) |
185 | { | 186 | { |
186 | u32 tmp; | 187 | u32 tmp; |
187 | int i; | 188 | int i; |
188 | 189 | ||
189 | if (!si_is_smc_running(adev)) | 190 | if (!amdgpu_si_is_smc_running(adev)) |
190 | return PPSMC_Result_OK; | 191 | return PPSMC_Result_OK; |
191 | 192 | ||
192 | for (i = 0; i < adev->usec_timeout; i++) { | 193 | for (i = 0; i < adev->usec_timeout; i++) { |
@@ -199,7 +200,7 @@ PPSMC_Result si_wait_for_smc_inactive(struct amdgpu_device *adev) | |||
199 | return PPSMC_Result_OK; | 200 | return PPSMC_Result_OK; |
200 | } | 201 | } |
201 | 202 | ||
202 | int si_load_smc_ucode(struct amdgpu_device *adev, u32 limit) | 203 | int amdgpu_si_load_smc_ucode(struct amdgpu_device *adev, u32 limit) |
203 | { | 204 | { |
204 | const struct smc_firmware_header_v1_0 *hdr; | 205 | const struct smc_firmware_header_v1_0 *hdr; |
205 | unsigned long flags; | 206 | unsigned long flags; |
@@ -241,8 +242,8 @@ int si_load_smc_ucode(struct amdgpu_device *adev, u32 limit) | |||
241 | return 0; | 242 | return 0; |
242 | } | 243 | } |
243 | 244 | ||
244 | int si_read_smc_sram_dword(struct amdgpu_device *adev, u32 smc_address, | 245 | int amdgpu_si_read_smc_sram_dword(struct amdgpu_device *adev, u32 smc_address, |
245 | u32 *value, u32 limit) | 246 | u32 *value, u32 limit) |
246 | { | 247 | { |
247 | unsigned long flags; | 248 | unsigned long flags; |
248 | int ret; | 249 | int ret; |
@@ -256,8 +257,8 @@ int si_read_smc_sram_dword(struct amdgpu_device *adev, u32 smc_address, | |||
256 | return ret; | 257 | return ret; |
257 | } | 258 | } |
258 | 259 | ||
259 | int si_write_smc_sram_dword(struct amdgpu_device *adev, u32 smc_address, | 260 | int amdgpu_si_write_smc_sram_dword(struct amdgpu_device *adev, u32 smc_address, |
260 | u32 value, u32 limit) | 261 | u32 value, u32 limit) |
261 | { | 262 | { |
262 | unsigned long flags; | 263 | unsigned long flags; |
263 | int ret; | 264 | int ret; |
diff --git a/drivers/gpu/drm/amd/amdgpu/sislands_smc.h b/drivers/gpu/drm/amd/amdgpu/sislands_smc.h index c5b3377df2da..ee4b846e58fa 100644 --- a/drivers/gpu/drm/amd/amdgpu/sislands_smc.h +++ b/drivers/gpu/drm/amd/amdgpu/sislands_smc.h | |||
@@ -402,21 +402,21 @@ typedef struct Smc_SIslands_DTE_Configuration Smc_SIslands_DTE_Configuration; | |||
402 | 402 | ||
403 | #pragma pack(pop) | 403 | #pragma pack(pop) |
404 | 404 | ||
405 | int si_copy_bytes_to_smc(struct amdgpu_device *adev, | 405 | int amdgpu_si_copy_bytes_to_smc(struct amdgpu_device *adev, |
406 | u32 smc_start_address, | 406 | u32 smc_start_address, |
407 | const u8 *src, u32 byte_count, u32 limit); | 407 | const u8 *src, u32 byte_count, u32 limit); |
408 | void si_start_smc(struct amdgpu_device *adev); | 408 | void amdgpu_si_start_smc(struct amdgpu_device *adev); |
409 | void si_reset_smc(struct amdgpu_device *adev); | 409 | void amdgpu_si_reset_smc(struct amdgpu_device *adev); |
410 | int si_program_jump_on_start(struct amdgpu_device *adev); | 410 | int amdgpu_si_program_jump_on_start(struct amdgpu_device *adev); |
411 | void si_smc_clock(struct amdgpu_device *adev, bool enable); | 411 | void amdgpu_si_smc_clock(struct amdgpu_device *adev, bool enable); |
412 | bool si_is_smc_running(struct amdgpu_device *adev); | 412 | bool amdgpu_si_is_smc_running(struct amdgpu_device *adev); |
413 | PPSMC_Result si_send_msg_to_smc(struct amdgpu_device *adev, PPSMC_Msg msg); | 413 | PPSMC_Result amdgpu_si_send_msg_to_smc(struct amdgpu_device *adev, PPSMC_Msg msg); |
414 | PPSMC_Result si_wait_for_smc_inactive(struct amdgpu_device *adev); | 414 | PPSMC_Result amdgpu_si_wait_for_smc_inactive(struct amdgpu_device *adev); |
415 | int si_load_smc_ucode(struct amdgpu_device *adev, u32 limit); | 415 | int amdgpu_si_load_smc_ucode(struct amdgpu_device *adev, u32 limit); |
416 | int si_read_smc_sram_dword(struct amdgpu_device *adev, u32 smc_address, | 416 | int amdgpu_si_read_smc_sram_dword(struct amdgpu_device *adev, u32 smc_address, |
417 | u32 *value, u32 limit); | 417 | u32 *value, u32 limit); |
418 | int si_write_smc_sram_dword(struct amdgpu_device *adev, u32 smc_address, | 418 | int amdgpu_si_write_smc_sram_dword(struct amdgpu_device *adev, u32 smc_address, |
419 | u32 value, u32 limit); | 419 | u32 value, u32 limit); |
420 | 420 | ||
421 | #endif | 421 | #endif |
422 | 422 | ||