Look at the nonsense that I have had to implement on my AMD F-13 in order to workaround this bug.
I have a Bash script that at boot sets brightness according to power status. The script now contains this:
local stateToSet='battery'
[. . .]
case ${pwr_pc} in
"${pwr_pc_name[F13]}")
case ${F13_workaroundPowerBug} in
true)
local -i count=0
local -ir limit=3
while [[ $(/usr/bin/acpi) == *'Discharging'* ]]; do
${pwr_dbg} && dbg_log "F13 detected as discharging: #${count}."
sleep 5
((count++))
[[ ${count} -ge ${limit} ]] && break
done
[[ ${count} -lt ${limit} ]] && stateToSet='ac'
;;
*)
[[ $(/usr/bin/acpi) == *'Battery 1: Discharging'* ]] || stateToSet='ac'
;;
esac
;;
*)
[[ $(/usr/bin/acpi -a) == *'on-line' ]] && stateToSet='ac'
;;
esac
It is a blessing and something of a surprise that the program tlp is not affected: at boot it seems to detect the power status correctly somehow (though the bug makes it somewhat unclear even what it is for the status to be correct here!)
EDIT: unlike some others who have commented within this thread, I have not tried the ostensible fix that is the âSmokeless_UMAFâ thingy.
EDIT: I fixed an errors within the script. One of those errors was not coping with the fact that my Framework laptop gives data for two batteries, even though only one is installed and, to my knowledge, installable. What is going on there?