@@ -1261,33 +1261,26 @@ static int smu_sw_init(struct amdgpu_ip_block *ip_block)
12611261 smu -> watermarks_bitmap = 0 ;
12621262 smu -> power_profile_mode = PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ;
12631263 smu -> default_power_profile_mode = PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ;
1264- smu -> user_dpm_profile .user_workload_mask = 0 ;
12651264
12661265 atomic_set (& smu -> smu_power .power_gate .vcn_gated , 1 );
12671266 atomic_set (& smu -> smu_power .power_gate .jpeg_gated , 1 );
12681267 atomic_set (& smu -> smu_power .power_gate .vpe_gated , 1 );
12691268 atomic_set (& smu -> smu_power .power_gate .umsch_mm_gated , 1 );
12701269
1271- smu -> workload_priority [PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ] = 0 ;
1272- smu -> workload_priority [PP_SMC_POWER_PROFILE_FULLSCREEN3D ] = 1 ;
1273- smu -> workload_priority [PP_SMC_POWER_PROFILE_POWERSAVING ] = 2 ;
1274- smu -> workload_priority [PP_SMC_POWER_PROFILE_VIDEO ] = 3 ;
1275- smu -> workload_priority [PP_SMC_POWER_PROFILE_VR ] = 4 ;
1276- smu -> workload_priority [PP_SMC_POWER_PROFILE_COMPUTE ] = 5 ;
1277- smu -> workload_priority [PP_SMC_POWER_PROFILE_CUSTOM ] = 6 ;
1270+ smu -> workload_prority [PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ] = 0 ;
1271+ smu -> workload_prority [PP_SMC_POWER_PROFILE_FULLSCREEN3D ] = 1 ;
1272+ smu -> workload_prority [PP_SMC_POWER_PROFILE_POWERSAVING ] = 2 ;
1273+ smu -> workload_prority [PP_SMC_POWER_PROFILE_VIDEO ] = 3 ;
1274+ smu -> workload_prority [PP_SMC_POWER_PROFILE_VR ] = 4 ;
1275+ smu -> workload_prority [PP_SMC_POWER_PROFILE_COMPUTE ] = 5 ;
1276+ smu -> workload_prority [PP_SMC_POWER_PROFILE_CUSTOM ] = 6 ;
12781277
12791278 if (smu -> is_apu ||
1280- !smu_is_workload_profile_available (smu , PP_SMC_POWER_PROFILE_FULLSCREEN3D )) {
1281- smu -> driver_workload_mask =
1282- 1 << smu -> workload_priority [PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ];
1283- } else {
1284- smu -> driver_workload_mask =
1285- 1 << smu -> workload_priority [PP_SMC_POWER_PROFILE_FULLSCREEN3D ];
1286- smu -> default_power_profile_mode = PP_SMC_POWER_PROFILE_FULLSCREEN3D ;
1287- }
1279+ !smu_is_workload_profile_available (smu , PP_SMC_POWER_PROFILE_FULLSCREEN3D ))
1280+ smu -> workload_mask = 1 << smu -> workload_prority [PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ];
1281+ else
1282+ smu -> workload_mask = 1 << smu -> workload_prority [PP_SMC_POWER_PROFILE_FULLSCREEN3D ];
12881283
1289- smu -> workload_mask = smu -> driver_workload_mask |
1290- smu -> user_dpm_profile .user_workload_mask ;
12911284 smu -> workload_setting [0 ] = PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ;
12921285 smu -> workload_setting [1 ] = PP_SMC_POWER_PROFILE_FULLSCREEN3D ;
12931286 smu -> workload_setting [2 ] = PP_SMC_POWER_PROFILE_POWERSAVING ;
@@ -2366,20 +2359,17 @@ static int smu_switch_power_profile(void *handle,
23662359 return - EINVAL ;
23672360
23682361 if (!en ) {
2369- smu -> driver_workload_mask &= ~(1 << smu -> workload_priority [type ]);
2362+ smu -> workload_mask &= ~(1 << smu -> workload_prority [type ]);
23702363 index = fls (smu -> workload_mask );
23712364 index = index > 0 && index <= WORKLOAD_POLICY_MAX ? index - 1 : 0 ;
23722365 workload [0 ] = smu -> workload_setting [index ];
23732366 } else {
2374- smu -> driver_workload_mask |= (1 << smu -> workload_priority [type ]);
2367+ smu -> workload_mask |= (1 << smu -> workload_prority [type ]);
23752368 index = fls (smu -> workload_mask );
23762369 index = index <= WORKLOAD_POLICY_MAX ? index - 1 : 0 ;
23772370 workload [0 ] = smu -> workload_setting [index ];
23782371 }
23792372
2380- smu -> workload_mask = smu -> driver_workload_mask |
2381- smu -> user_dpm_profile .user_workload_mask ;
2382-
23832373 if (smu_dpm_ctx -> dpm_level != AMD_DPM_FORCED_LEVEL_MANUAL &&
23842374 smu_dpm_ctx -> dpm_level != AMD_DPM_FORCED_LEVEL_PERF_DETERMINISM )
23852375 smu_bump_power_profile_mode (smu , workload , 0 );
@@ -3074,23 +3064,12 @@ static int smu_set_power_profile_mode(void *handle,
30743064 uint32_t param_size )
30753065{
30763066 struct smu_context * smu = handle ;
3077- int ret ;
30783067
30793068 if (!smu -> pm_enabled || !smu -> adev -> pm .dpm_enabled ||
30803069 !smu -> ppt_funcs -> set_power_profile_mode )
30813070 return - EOPNOTSUPP ;
30823071
3083- if (smu -> user_dpm_profile .user_workload_mask &
3084- (1 << smu -> workload_priority [param [param_size ]]))
3085- return 0 ;
3086-
3087- smu -> user_dpm_profile .user_workload_mask =
3088- (1 << smu -> workload_priority [param [param_size ]]);
3089- smu -> workload_mask = smu -> user_dpm_profile .user_workload_mask |
3090- smu -> driver_workload_mask ;
3091- ret = smu_bump_power_profile_mode (smu , param , param_size );
3092-
3093- return ret ;
3072+ return smu_bump_power_profile_mode (smu , param , param_size );
30943073}
30953074
30963075static int smu_get_fan_control_mode (void * handle , u32 * fan_mode )
0 commit comments