@@ -7639,7 +7639,7 @@ static void cmd_charge_control_help(const char *cmd, const char *msg)
76397639 " Usage: %s\n "
76407640 " Get current settings.\n "
76417641 " Usage: %s normal|idle|discharge\n "
7642- " Set charge mode (and disable battery sustainer) .\n "
7642+ " Set charge mode.\n "
76437643 " Usage: %s normal <lower> <upper> [<flags>]\n "
76447644 " Enable battery sustainer. <lower> and <upper> are battery SoC\n "
76457645 " between which EC tries to keep the battery level.\n "
@@ -7701,8 +7701,8 @@ int cmd_charge_control(int argc, char *argv[])
77017701 if (!strcasecmp (argv[1 ], " normal" )) {
77027702 p.mode = CHARGE_CONTROL_NORMAL ;
77037703 if (argc == 2 ) {
7704- p.sustain_soc .lower = - 1 ;
7705- p.sustain_soc .upper = - 1 ;
7704+ p.sustain_soc .lower = sustain_soc. lower ;
7705+ p.sustain_soc .upper = sustain_soc. upper ;
77067706 } else if (argc > 3 ) {
77077707 p.sustain_soc .lower = strtol (argv[2 ], &e, 0 );
77087708 if (e && *e) {
@@ -7734,12 +7734,16 @@ int cmd_charge_control(int argc, char *argv[])
77347734 cmd_charge_control_help (argv[0 ], " Bad arguments" );
77357735 return -1 ;
77367736 }
7737+ p.sustain_soc .lower = sustain_soc.lower ;
7738+ p.sustain_soc .upper = sustain_soc.upper ;
77377739 p.mode = CHARGE_CONTROL_IDLE ;
77387740 } else if (!strcasecmp (argv[1 ], " discharge" )) {
77397741 if (argc != 2 ) {
77407742 cmd_charge_control_help (argv[0 ], " Bad arguments" );
77417743 return -1 ;
77427744 }
7745+ p.sustain_soc .lower = sustain_soc.lower ;
7746+ p.sustain_soc .upper = sustain_soc.upper ;
77437747 p.mode = CHARGE_CONTROL_DISCHARGE ;
77447748 } else {
77457749 cmd_charge_control_help (argv[0 ], " Bad sub-command" );
0 commit comments