pm8150b_charger, Kernel OVP Conflict & Ghost Charging on Snapdragon 855, v2023.10.16
Technical Bug Report: Kernel OVP Conflict & Ghost Charging on Snapdragon 855/865
Environment:
ACC Version: v2023.10.16
Kernel Charging Driver: pm8150b_charger
Device Status: Confirmed on multiple charging cycles and levels.
Issue Description:
On devices utilizing the pm8150b driver, several charging switches force a fixed Float Voltage (fv) of 3600\text{mV} (3.6\text{V}). This creates a massive discrepancy when the actual battery voltage (vbat\_fg) is higher, causing the kernel to trigger an "over-voltage" protection state and ignore ACC's suspension commands.
Specific Observations:
Ghost Charging Case 1: Suspension was set to 55%, but the battery level continued to climb to 58% despite ACC reporting the switch as "off".
Ghost Charging Case 2: Suspension set at higher levels saw the battery climb from 89% to 90% while reporting STATUS=Discharging.
Kernel Error Log: pm8150b_charger: battery over-voltage vbat_fg = 4393000uV, fv = 3600000uV.
Technical Analysis:
The kernel enters a safety override mode because vbat\_fg (>4.0\text{V}) exceeds the forced fv (3.6\text{V}). This renders most switches (like charge_control_limit) unstable. While input_suspend successfully cuts the current, it often fails to trigger a true Bypass/Idle Mode (battIdleMode=false), leading to battery drain instead of external power usage.
Requested Improvement:
Please consider making the Float Voltage (fv) dynamic or allowing it to be set to a value closer to the actual battery voltage (e.g., 4350\text{mV}-4400\text{mV}) instead of hardcoding it to 3600\text{mV}. This would prevent the kernel from overriding ACC’s control and allow for stable suspension and true idle mode on these drivers.
0 条评论