@@ -103,14 +103,14 @@ static void update_os_power_slider(int mode, bool with_dc, int active_mpower)
103
103
break ;
104
104
case EC_AC_BALANCED :
105
105
power_limit [FUNCTION_SLIDER ].mwatt [TYPE_SPL ] =
106
- (gpu_present () ? 95000 : 40000 );
106
+ (gpu_present () ? 120000 : 40000 );
107
107
power_limit [FUNCTION_SLIDER ].mwatt [TYPE_SPPT ] =
108
- (gpu_present () ? 95000 : 48000 );
108
+ (gpu_present () ? 120000 : 48000 );
109
109
power_limit [FUNCTION_SLIDER ].mwatt [TYPE_FPPT ] =
110
- (gpu_present () ? 95000 : 58000 );
110
+ (gpu_present () ? 120000 : 58000 );
111
111
power_limit [FUNCTION_SLIDER ].mwatt [TYPE_APU_ONLY_SPPT ] =
112
112
(gpu_present () ? 50000 : 0 );
113
- slider_stt_table = (gpu_present () ? 2 : 9 );
113
+ slider_stt_table = (gpu_present () ? 32 : 9 );
114
114
CPRINTS ("AC BALANCED" );
115
115
break ;
116
116
case EC_AC_BEST_EFFICIENCY :
@@ -136,13 +136,7 @@ static void update_thermal_power_limit(int battery_percent, int active_mpower,
136
136
bool with_dc , int mode )
137
137
{
138
138
if (gpu_present ()) {
139
- if ((active_mpower >= 240000 ) && with_dc && (mode == EC_AC_BALANCED )) {
140
- power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_SPL ] = 120000 ;
141
- power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_SPPT ] = 120000 ;
142
- power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_FPPT ] = 120000 ;
143
- power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_APU_ONLY_SPPT ] = 50000 ;
144
- thermal_stt_table = 32 ;
145
- } else if ((active_mpower >= 180000 ) && with_dc ) {
139
+ if ((active_mpower >= 240000 ) && with_dc ) {
146
140
/* limited by update_os_power_slider */
147
141
power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_SPL ] =
148
142
power_limit [FUNCTION_SLIDER ].mwatt [TYPE_SPL ];
@@ -153,6 +147,27 @@ static void update_thermal_power_limit(int battery_percent, int active_mpower,
153
147
power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_APU_ONLY_SPPT ] =
154
148
power_limit [FUNCTION_SLIDER ].mwatt [TYPE_APU_ONLY_SPPT ];
155
149
thermal_stt_table = slider_stt_table ;
150
+ } else if (active_mpower >= 180000 ) {
151
+ if (mode == EC_AC_BALANCED ) {
152
+ /* limited by update_os_power_slider */
153
+ power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_SPL ] = 950000 ;
154
+ power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_SPPT ] = 950000 ;
155
+ power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_FPPT ] = 950000 ;
156
+ power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_APU_ONLY_SPPT ]
157
+ = 50000 ;
158
+ thermal_stt_table = 2 ;
159
+ } else {
160
+ /* limited by update_os_power_slider */
161
+ power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_SPL ] =
162
+ power_limit [FUNCTION_SLIDER ].mwatt [TYPE_SPL ];
163
+ power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_SPPT ] =
164
+ power_limit [FUNCTION_SLIDER ].mwatt [TYPE_SPPT ];
165
+ power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_FPPT ] =
166
+ power_limit [FUNCTION_SLIDER ].mwatt [TYPE_FPPT ];
167
+ power_limit [FUNCTION_THERMAL_PMF ].mwatt [TYPE_APU_ONLY_SPPT ] =
168
+ power_limit [FUNCTION_SLIDER ].mwatt [TYPE_APU_ONLY_SPPT ];
169
+ thermal_stt_table = slider_stt_table ;
170
+ }
156
171
} else if (active_mpower >= 140000 ) {
157
172
if (with_dc ) {
158
173
if (mode == EC_AC_BEST_PERFORMANCE ) {
@@ -1074,13 +1089,15 @@ void update_soc_power_limit(bool force_update, bool force_no_adapter)
1074
1089
power_limit [FUNCTION_THERMAL ].mwatt [TYPE_APU_ONLY_SPPT ] = 0 ;
1075
1090
}
1076
1091
1077
- /* choose the lowest one */
1078
1092
for (int item = TYPE_SPL ; item < TYPE_COUNT ; item ++ ) {
1079
1093
/* use slider as default */
1080
1094
target_func [item ] = FUNCTION_SLIDER ;
1081
1095
for (int func = FUNCTION_DEFAULT ; func < FUNCTION_COUNT ; func ++ ) {
1096
+ /* Ignored the zero value */
1082
1097
if (power_limit [func ].mwatt [item ] < 1 )
1083
1098
continue ;
1099
+
1100
+ /* choose the lowest one */
1084
1101
if (power_limit [target_func [item ]].mwatt [item ]
1085
1102
> power_limit [func ].mwatt [item ])
1086
1103
target_func [item ] = func ;
0 commit comments