@@ -344,11 +344,15 @@ static void update_thermal_power_limit(int battery_percent, int active_mpower,
344
344
}
345
345
}
346
346
347
- static int get_adapter_power_limit_index (int old_index , int battery_percent )
347
+ static int get_adapter_power_limit_index (int old_index , int battery_percent , int mode )
348
348
{
349
- if (battery_percent > 60 )
350
- old_index = 0 ;
351
- else if (battery_percent < 30 )
349
+ /* at ERS only performance mode need to adjust limit */
350
+ if (mode == EC_AC_BEST_PERFORMANCE ) {
351
+ if (battery_percent > 60 )
352
+ old_index = 0 ;
353
+ else if (battery_percent < 30 )
354
+ old_index = 1 ;
355
+ } else
352
356
old_index = 1 ;
353
357
354
358
return old_index ;
@@ -363,7 +367,8 @@ static void update_adapter_power_limit(int battery_percent, int active_mpower,
363
367
if (with_dc ) {
364
368
if (active_mpower >= 240000 ) {
365
369
new_index =
366
- get_adapter_power_limit_index (new_index , battery_percent );
370
+ get_adapter_power_limit_index (new_index ,
371
+ battery_percent , mode );
367
372
switch (new_index ) {
368
373
case 0 :
369
374
power_limit [FUNCTION_POWER ].mwatt [TYPE_SPL ] = 145000 ;
@@ -389,7 +394,8 @@ static void update_adapter_power_limit(int battery_percent, int active_mpower,
389
394
}
390
395
} else if (active_mpower >= 180000 ) {
391
396
new_index =
392
- get_adapter_power_limit_index (new_index , battery_percent );
397
+ get_adapter_power_limit_index (new_index ,
398
+ battery_percent , mode );
393
399
switch (new_index ) {
394
400
case 0 :
395
401
power_limit [FUNCTION_POWER ].mwatt [TYPE_SPL ] = 120000 ;
@@ -415,7 +421,8 @@ static void update_adapter_power_limit(int battery_percent, int active_mpower,
415
421
}
416
422
} else if (active_mpower >= 140000 ) {
417
423
new_index =
418
- get_adapter_power_limit_index (new_index , battery_percent );
424
+ get_adapter_power_limit_index (new_index ,
425
+ battery_percent , mode );
419
426
switch (new_index ) {
420
427
case 0 :
421
428
power_limit [FUNCTION_POWER ].mwatt [TYPE_SPL ] = 95000 ;
@@ -441,7 +448,8 @@ static void update_adapter_power_limit(int battery_percent, int active_mpower,
441
448
}
442
449
} else if (active_mpower >= 100000 ) {
443
450
new_index =
444
- get_adapter_power_limit_index (new_index , battery_percent );
451
+ get_adapter_power_limit_index (new_index ,
452
+ battery_percent , mode );
445
453
switch (new_index ) {
446
454
case 0 :
447
455
power_limit [FUNCTION_POWER ].mwatt [TYPE_SPL ] = 60000 ;
@@ -468,7 +476,8 @@ static void update_adapter_power_limit(int battery_percent, int active_mpower,
468
476
} else if (active_mpower >= 5000 ) {
469
477
/* DC + AC under 100W */
470
478
new_index =
471
- get_adapter_power_limit_index (new_index , battery_percent );
479
+ get_adapter_power_limit_index (new_index ,
480
+ battery_percent , mode );
472
481
switch (new_index ) {
473
482
case 0 :
474
483
power_limit [FUNCTION_POWER ].mwatt [TYPE_SPL ] = 60000 ;
@@ -567,7 +576,8 @@ static void update_adapter_power_limit(int battery_percent, int active_mpower,
567
576
if (with_dc ) {
568
577
if (active_mpower >= 240000 ) {
569
578
new_index =
570
- get_adapter_power_limit_index (new_index , battery_percent );
579
+ get_adapter_power_limit_index (new_index ,
580
+ battery_percent , mode );
571
581
switch (new_index ) {
572
582
case 0 :
573
583
power_limit [FUNCTION_POWER ].mwatt [TYPE_SPL ] = 45000 ;
@@ -591,7 +601,8 @@ static void update_adapter_power_limit(int battery_percent, int active_mpower,
591
601
}
592
602
} else if (active_mpower >= 180000 ) {
593
603
new_index =
594
- get_adapter_power_limit_index (new_index , battery_percent );
604
+ get_adapter_power_limit_index (new_index ,
605
+ battery_percent , mode );
595
606
switch (new_index ) {
596
607
case 0 :
597
608
power_limit [FUNCTION_POWER ].mwatt [TYPE_SPL ] = 45000 ;
@@ -613,7 +624,8 @@ static void update_adapter_power_limit(int battery_percent, int active_mpower,
613
624
}
614
625
} else if (active_mpower >= 140000 ) {
615
626
new_index =
616
- get_adapter_power_limit_index (new_index , battery_percent );
627
+ get_adapter_power_limit_index (new_index ,
628
+ battery_percent , mode );
617
629
switch (new_index ) {
618
630
case 0 :
619
631
power_limit [FUNCTION_POWER ].mwatt [TYPE_SPL ] = 45000 ;
@@ -635,7 +647,8 @@ static void update_adapter_power_limit(int battery_percent, int active_mpower,
635
647
}
636
648
} else if (active_mpower >= 65000 ) {
637
649
new_index =
638
- get_adapter_power_limit_index (new_index , battery_percent );
650
+ get_adapter_power_limit_index (new_index ,
651
+ battery_percent , mode );
639
652
switch (new_index ) {
640
653
case 0 :
641
654
power_limit [FUNCTION_POWER ].mwatt [TYPE_SPL ] = 45000 ;
@@ -658,7 +671,8 @@ static void update_adapter_power_limit(int battery_percent, int active_mpower,
658
671
} else if (active_mpower >= 5000 ) {
659
672
/* DC + AC under 65W */
660
673
new_index =
661
- get_adapter_power_limit_index (new_index , battery_percent );
674
+ get_adapter_power_limit_index (new_index ,
675
+ battery_percent , mode );
662
676
switch (new_index ) {
663
677
case 0 :
664
678
power_limit [FUNCTION_POWER ].mwatt [TYPE_SPL ] = 45000 ;
0 commit comments