Repository navigation
Conversation
Authentic batteries in Surface devices are verified and paired with the motherboard during manufacturing or repair for quality assurance. Read the authentication status from the SAM and report it.
Newer Surface devices limit the battery charge to 80% based on usage patterns. Report the charge limit status and disengage it if requested. The charge limit is always controlled by the SAM and will be re-enabled after a few days depending on use.
|
so about "re-enabling the limit manually doesn't seem to be possible", you actually can set it, it's just a different pair of battery commands ("user charge mode"). i dug them out of the windows drivers and tested both on my Surface Pro for Business 11th Edition with Intel (SAM 10.3.139) through commandsall TC
modes (
so 80% is where it's from
what it actually does (on mine)
|
|
fun fact, it rejects anything above 80% or below 50% ( ¬⩊¬) |
|
@Cloveian Thanks for your findings! I reversed the same commands from The Surface app only shows a button to disable adaptive charging temporarily, with no manual control over charge limits. It checks some kind of condition to see what charge limit modes the EC supports, but I don't have the exact details in my notes. I think it had something to do with the return value of battery command 0x3a called The command |
|
ahhh, i am on a SP11 (intel) so its probably a little different |
Added support for battery features reverse-engineered from the Windows drivers.
Authentic batteries in Surface devices are verified and paired with the motherboard during manufacturing or repair for quality assurance. Windows reads the authentication status and shows a warning message if the battery isn't genuine. This status can now be read from Linux.
Newer Surface devices limit the battery charge to 80% based on usage patterns. The Surface app on Windows has a button that disables the limit temporarily and charges the battery to 100%, but Linux previously had no way to control it. The battery driver now reports the smart charging status as a charge limit and lets users disable it by setting it to 100%. The charge limit is controlled by the SAM and gets re-enabled automatically after a few days, and re-enabling the limit manually doesn't seem to be possible.
Fixes linux-surface/linux-surface#1781, linux-surface/linux-surface#2070.