@@ -81,6 +81,8 @@ static void hwmgr_init_workload_prority(struct pp_hwmgr *hwmgr)
81
81
82
82
int hwmgr_early_init (struct pp_hwmgr * hwmgr )
83
83
{
84
+ struct amdgpu_device * adev ;
85
+
84
86
if (!hwmgr )
85
87
return - EINVAL ;
86
88
@@ -94,8 +96,11 @@ int hwmgr_early_init(struct pp_hwmgr *hwmgr)
94
96
hwmgr_init_workload_prority (hwmgr );
95
97
hwmgr -> gfxoff_state_changed_by_workload = false;
96
98
99
+ adev = hwmgr -> adev ;
100
+
97
101
switch (hwmgr -> chip_family ) {
98
102
case AMDGPU_FAMILY_CI :
103
+ adev -> pm .pp_feature &= ~PP_GFXOFF_MASK ;
99
104
hwmgr -> smumgr_funcs = & ci_smu_funcs ;
100
105
ci_set_asic_special_caps (hwmgr );
101
106
hwmgr -> feature_mask &= ~(PP_VBI_TIME_SUPPORT_MASK |
@@ -106,12 +111,14 @@ int hwmgr_early_init(struct pp_hwmgr *hwmgr)
106
111
smu7_init_function_pointers (hwmgr );
107
112
break ;
108
113
case AMDGPU_FAMILY_CZ :
114
+ adev -> pm .pp_feature &= ~PP_GFXOFF_MASK ;
109
115
hwmgr -> od_enabled = false;
110
116
hwmgr -> smumgr_funcs = & smu8_smu_funcs ;
111
117
hwmgr -> feature_mask &= ~PP_GFXOFF_MASK ;
112
118
smu8_init_function_pointers (hwmgr );
113
119
break ;
114
120
case AMDGPU_FAMILY_VI :
121
+ adev -> pm .pp_feature &= ~PP_GFXOFF_MASK ;
115
122
hwmgr -> feature_mask &= ~PP_GFXOFF_MASK ;
116
123
switch (hwmgr -> chip_id ) {
117
124
case CHIP_TOPAZ :
@@ -153,6 +160,7 @@ int hwmgr_early_init(struct pp_hwmgr *hwmgr)
153
160
case AMDGPU_FAMILY_AI :
154
161
switch (hwmgr -> chip_id ) {
155
162
case CHIP_VEGA10 :
163
+ adev -> pm .pp_feature &= ~PP_GFXOFF_MASK ;
156
164
hwmgr -> feature_mask &= ~PP_GFXOFF_MASK ;
157
165
hwmgr -> smumgr_funcs = & vega10_smu_funcs ;
158
166
vega10_hwmgr_init (hwmgr );
@@ -162,6 +170,7 @@ int hwmgr_early_init(struct pp_hwmgr *hwmgr)
162
170
vega12_hwmgr_init (hwmgr );
163
171
break ;
164
172
case CHIP_VEGA20 :
173
+ adev -> pm .pp_feature &= ~PP_GFXOFF_MASK ;
165
174
hwmgr -> feature_mask &= ~PP_GFXOFF_MASK ;
166
175
hwmgr -> smumgr_funcs = & vega20_smu_funcs ;
167
176
vega20_hwmgr_init (hwmgr );
0 commit comments