@@ -1259,33 +1259,26 @@ static int smu_sw_init(void *handle)
12591259 smu -> watermarks_bitmap = 0 ;
12601260 smu -> power_profile_mode = PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ;
12611261 smu -> default_power_profile_mode = PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ;
1262- smu -> user_dpm_profile .user_workload_mask = 0 ;
12631262
12641263 atomic_set (& smu -> smu_power .power_gate .vcn_gated , 1 );
12651264 atomic_set (& smu -> smu_power .power_gate .jpeg_gated , 1 );
12661265 atomic_set (& smu -> smu_power .power_gate .vpe_gated , 1 );
12671266 atomic_set (& smu -> smu_power .power_gate .umsch_mm_gated , 1 );
12681267
1269- smu -> workload_priority [PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ] = 0 ;
1270- smu -> workload_priority [PP_SMC_POWER_PROFILE_FULLSCREEN3D ] = 1 ;
1271- smu -> workload_priority [PP_SMC_POWER_PROFILE_POWERSAVING ] = 2 ;
1272- smu -> workload_priority [PP_SMC_POWER_PROFILE_VIDEO ] = 3 ;
1273- smu -> workload_priority [PP_SMC_POWER_PROFILE_VR ] = 4 ;
1274- smu -> workload_priority [PP_SMC_POWER_PROFILE_COMPUTE ] = 5 ;
1275- smu -> workload_priority [PP_SMC_POWER_PROFILE_CUSTOM ] = 6 ;
1268+ smu -> workload_prority [PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ] = 0 ;
1269+ smu -> workload_prority [PP_SMC_POWER_PROFILE_FULLSCREEN3D ] = 1 ;
1270+ smu -> workload_prority [PP_SMC_POWER_PROFILE_POWERSAVING ] = 2 ;
1271+ smu -> workload_prority [PP_SMC_POWER_PROFILE_VIDEO ] = 3 ;
1272+ smu -> workload_prority [PP_SMC_POWER_PROFILE_VR ] = 4 ;
1273+ smu -> workload_prority [PP_SMC_POWER_PROFILE_COMPUTE ] = 5 ;
1274+ smu -> workload_prority [PP_SMC_POWER_PROFILE_CUSTOM ] = 6 ;
12761275
12771276 if (smu -> is_apu ||
1278- !smu_is_workload_profile_available (smu , PP_SMC_POWER_PROFILE_FULLSCREEN3D )) {
1279- smu -> driver_workload_mask =
1280- 1 << smu -> workload_priority [PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ];
1281- } else {
1282- smu -> driver_workload_mask =
1283- 1 << smu -> workload_priority [PP_SMC_POWER_PROFILE_FULLSCREEN3D ];
1284- smu -> default_power_profile_mode = PP_SMC_POWER_PROFILE_FULLSCREEN3D ;
1285- }
1277+ !smu_is_workload_profile_available (smu , PP_SMC_POWER_PROFILE_FULLSCREEN3D ))
1278+ smu -> workload_mask = 1 << smu -> workload_prority [PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ];
1279+ else
1280+ smu -> workload_mask = 1 << smu -> workload_prority [PP_SMC_POWER_PROFILE_FULLSCREEN3D ];
12861281
1287- smu -> workload_mask = smu -> driver_workload_mask |
1288- smu -> user_dpm_profile .user_workload_mask ;
12891282 smu -> workload_setting [0 ] = PP_SMC_POWER_PROFILE_BOOTUP_DEFAULT ;
12901283 smu -> workload_setting [1 ] = PP_SMC_POWER_PROFILE_FULLSCREEN3D ;
12911284 smu -> workload_setting [2 ] = PP_SMC_POWER_PROFILE_POWERSAVING ;
@@ -2355,20 +2348,17 @@ static int smu_switch_power_profile(void *handle,
23552348 return - EINVAL ;
23562349
23572350 if (!en ) {
2358- smu -> driver_workload_mask &= ~(1 << smu -> workload_priority [type ]);
2351+ smu -> workload_mask &= ~(1 << smu -> workload_prority [type ]);
23592352 index = fls (smu -> workload_mask );
23602353 index = index > 0 && index <= WORKLOAD_POLICY_MAX ? index - 1 : 0 ;
23612354 workload [0 ] = smu -> workload_setting [index ];
23622355 } else {
2363- smu -> driver_workload_mask |= (1 << smu -> workload_priority [type ]);
2356+ smu -> workload_mask |= (1 << smu -> workload_prority [type ]);
23642357 index = fls (smu -> workload_mask );
23652358 index = index <= WORKLOAD_POLICY_MAX ? index - 1 : 0 ;
23662359 workload [0 ] = smu -> workload_setting [index ];
23672360 }
23682361
2369- smu -> workload_mask = smu -> driver_workload_mask |
2370- smu -> user_dpm_profile .user_workload_mask ;
2371-
23722362 if (smu_dpm_ctx -> dpm_level != AMD_DPM_FORCED_LEVEL_MANUAL &&
23732363 smu_dpm_ctx -> dpm_level != AMD_DPM_FORCED_LEVEL_PERF_DETERMINISM )
23742364 smu_bump_power_profile_mode (smu , workload , 0 );
@@ -3059,23 +3049,12 @@ static int smu_set_power_profile_mode(void *handle,
30593049 uint32_t param_size )
30603050{
30613051 struct smu_context * smu = handle ;
3062- int ret ;
30633052
30643053 if (!smu -> pm_enabled || !smu -> adev -> pm .dpm_enabled ||
30653054 !smu -> ppt_funcs -> set_power_profile_mode )
30663055 return - EOPNOTSUPP ;
30673056
3068- if (smu -> user_dpm_profile .user_workload_mask &
3069- (1 << smu -> workload_priority [param [param_size ]]))
3070- return 0 ;
3071-
3072- smu -> user_dpm_profile .user_workload_mask =
3073- (1 << smu -> workload_priority [param [param_size ]]);
3074- smu -> workload_mask = smu -> user_dpm_profile .user_workload_mask |
3075- smu -> driver_workload_mask ;
3076- ret = smu_bump_power_profile_mode (smu , param , param_size );
3077-
3078- return ret ;
3057+ return smu_bump_power_profile_mode (smu , param , param_size );
30793058}
30803059
30813060static int smu_get_fan_control_mode (void * handle , u32 * fan_mode )
0 commit comments