Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 44 additions & 0 deletions func.d/35-tlp-func-batt
Original file line number Diff line number Diff line change
Expand Up @@ -313,3 +313,47 @@ soc_gt_stop_recommendation () {

return 0
}

set_batteries_charge_mode() {
# apply charge mode from configuration to all batteries
# - called from bg tasks tlp init [re]start/auto and tlp start

local bat
new_mode="${CHARGE_MODE:-}"

if [ -z "$new_mode" ]; then
echo_debug "bat" "set_batteries_charge_mode.not_configured"
return 0
fi

for bat in /sys/class/power_supply/*[Bb][Aa][Tt]*/ ; do
if [ ! -d "$bat" ]; then
echo_debug "bat" "set_batteries_charge_mode.battery_not_present"
return 0
elif supported_modes=$(read_sysf "$bat/charge_types"); then
case $supported_modes in
*"$new_mode"*)
old_chtype="$(echo "$supported_modes" | sed -r 's/.*\[([A-Z][a-z]+)\].*/\1/')"
if [ "$new_mode" != "$old_chtype" ]; then
if write_sysf "$new_mode" "$bat/charge_types"; then
echo_debug "bat" "set_batteries_charge_mode: $new_mode"
else
echo_debug "bat" "set_batteries_charge_mode.write_error"
return 0
fi
fi
;;
*)
echo_message "Charge mode $new_mode not supported on system"
echo_debug "bat" "set_batteries_charge_mode.charge_mode_not_supported"
return 0
;;
esac
else
echo_debug "bat" "set_batteries_charge_mode.read_error"
return 0
fi
done

return 0
}
7 changes: 5 additions & 2 deletions tlp.in
Original file line number Diff line number Diff line change
Expand Up @@ -279,8 +279,9 @@ case "$_cmd" in
echo "done."

# apply battery settings
printf "Setting battery charge thresholds..."
printf "Applying battery settings..."
init_batteries_thresholds
set_batteries_charge_mode
echo "done."

# apply radio states
Expand All @@ -298,8 +299,9 @@ case "$_cmd" in
echo "done."

# apply battery settings
printf "Setting battery charge thresholds..."
printf "Applying battery settings..."
init_batteries_thresholds
set_batteries_charge_mode
echo "done."
;;

Expand Down Expand Up @@ -364,6 +366,7 @@ case "$_cmd" in
poweroff_drivebay "$_pp_next" 0
set_usb_suspend 0 auto
init_batteries_thresholds
set_batteries_charge_mode
set_radio_device_states "$_pp_next"
save_runconf
unlock_tlp
Expand Down