power: qpnp-bms: do not change OCV to reach 0% at boot
power: qpnp-bms: do not change OCV to reach 0% at boot

Previously, the BMS driver changed OCV if SoC is negative at boot
time. The reasoning was that since SoC cannot be negative, the
OCV must be bad. However, this is incorrect. Sometimes it is possible
to boot below the cutoff voltage, and sometimes other factors such
as UUC can bring the SoC below 0%. For example, during temperature
testing, even with a good OCV, the UUC can bring the SoC down to below
0 by the time the high boot current pulls down the battery voltage.

Having an OCV that is erroneously high can cause many issues. For
example, if the battery charges after the erroneous OCV is set, the BMS
driver may see 100% way before charging actually stops. Also, if the
temperature changes, the BMS can easily UVLO because it thinks the
battery has more charge than it actually does.

However, still correct the OCV if SoC is only slightly negative because
that can result from a bad OCV. Otherwise, change the BMS algorithm to
just report 0 if the SoC is very negative but do not do anything permanent
to the state of charge parameters.

Change-Id: I78d4f5965d4b895c2d00c0060737359fabd4d84d
Signed-off-by: Xiaozhe Shi <4c58d9c21c42c2a4cf34b559441bd01b9c143cf4@codeaurora.org>

TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas,TeamVee-Kanas/android_kernel_samsung_kanas