<font size=2 face="sans-serif">Hello Neil,</font>
<br>
<br><font size=2 face="sans-serif">thank you, this already sounds very
good! In order to make it perfect - and perhaps to make it easier to use
by Radek and others, would it be possible and make sense to introduce a
new health state like POWER_SUPPLY_HEALTH_UNCALIBRATED and using this?
Then distros like QtMoko could savely rely on this state for example for
displaying the battery indicator within another color as usual.</font>
<br>
<br><font size=2 face="sans-serif">Best regards</font>
<br><font size=2 face="sans-serif">   Sven</font>
<br><font size=2 face="sans-serif">   </font>
<br>
<br>
<br>
<br>
<br><font size=1 color=#5f5f5f face="sans-serif">Von:      
 </font><font size=1 face="sans-serif">NeilBrown <neilb@suse.de></font>
<br><font size=1 color=#5f5f5f face="sans-serif">An:      
 </font><font size=1 face="sans-serif">List for communicating
with real GTA04 owners <gta04-owner@goldelico.com></font>
<br><font size=1 color=#5f5f5f face="sans-serif">Kopie:      
 </font><font size=1 face="sans-serif">S.Dyroff@phytec.de</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Datum:      
 </font><font size=1 face="sans-serif">16.02.2013 21:49</font>
<br><font size=1 color=#5f5f5f face="sans-serif">Betreff:    
   </font><font size=1 face="sans-serif">Re: [Gta04-owner]
New "3.7-gta04" branch in my kernel tree.</font>
<br>
<hr noshade>
<br>
<br><tt><font size=3>On Fri, 15 Feb 2013 09:52:17 +0100 Sven Dyroff <S.Dyroff@phytec.de>
wrote:<br>
</font></tt>
<br><tt><font size=3>> Hello Neil,<br>
><br>
> > I've just created a new "3.7-gta04" branch in<br>
> git://neil.brown.name/gta04<br>
> ><br>
> > It contains the 3.7-based kernel that was in my 'mainline' branch<br>
> recently,<br>
> > but with a little bit of tidying up and some minor enhancements:<br>
> ><br>
> > - If no bq27000 battery charge monitor can be found, it is now
correctly<br>
> >   reported as "not present" rather than "not
calibrated".<br>
><br>
> please also make the driver stop ignoring values when battery is not<br>
> calibrated. Discussions within this list should have revealed that
most<br>
> people prefer to have inaccurate values instead of having none - including<br>
> me.<br>
</font></tt>
<br><tt><font size=3>I'd like to still make it possible to tell if the
battery thinks those values<br>
are reliable or not.  Maybe I can just set health to "unknown"
if the battery<br>
is present but not calibrated.<br>
</font></tt>
<br><tt><font size=3>Maybe something like this.<br>
</font></tt>
<br><tt><font size=3>NeilBrown<br>
</font></tt>
<br>
<br>
<br><tt><font size=3>diff --git a/drivers/power/bq27x00_battery.c b/drivers/power/bq27x00_battery.c<br>
index 96d64c66e..f3bde0e 100644<br>
--- a/drivers/power/bq27x00_battery.c<br>
+++ b/drivers/power/bq27x00_battery.c<br>
@@ -426,33 +426,26 @@ static void bq27x00_update(struct bq27x00_device_info
*di)</font></tt>
<br><tt><font size=3>/* read error */<br>
cache.flags = -1;</font></tt>
<br><tt><font size=3>if (cache.flags >= 0) {<br>
-                if
(!is_bq27500 && !is_bq27425<br>
-                
               &&
(cache.flags & BQ27000_FLAG_CI)) {<br>
-                
       dev_dbg(di->dev, "battery is
not calibrated! ignoring capacity values\n");<br>
-                
       cache.capacity = -ENODATA;<br>
-                
       cache.energy = -ENODATA;<br>
-                
       cache.time_to_empty = -ENODATA;<br>
-                
       cache.time_to_empty_avg = -ENODATA;<br>
-                
       cache.time_to_full = -ENODATA;<br>
-                
       cache.charge_full = -ENODATA;<br>
-                
       cache.health = -ENODATA;<br>
-                }
else {<br>
-                
       cache.capacity = bq27x00_battery_read_rsoc(di);<br>
-                
       if (!is_bq27425) {<br>
-                
               cache.energy
= bq27x00_battery_read_energy(di);<br>
-                
               cache.time_to_empty
=<br>
-                
               
       bq27x00_battery_read_time(di,<br>
-                
               
               
       BQ27x00_REG_TTE);<br>
-                
               cache.time_to_empty_avg
=<br>
-                
               
       bq27x00_battery_read_time(di,<br>
-                
               
               
       BQ27x00_REG_TTECP);<br>
-                
               cache.time_to_full
=<br>
-                
               
       bq27x00_battery_read_time(di,<br>
-                
               
               
       BQ27x00_REG_TTF);<br>
-                
       }<br>
-                
       cache.charge_full = bq27x00_battery_read_lmd(di);<br>
-                
       cache.health = bq27x00_battery_read_health(di);<br>
+                cache.capacity
= bq27x00_battery_read_rsoc(di);<br>
+                if
(!is_bq27425) {<br>
+                
       cache.energy = bq27x00_battery_read_energy(di);<br>
+                
       cache.time_to_empty =<br>
+                
               bq27x00_battery_read_time(di,<br>
+                
               
               
         BQ27x00_REG_TTE);<br>
+                
       cache.time_to_empty_avg =<br>
+                
               bq27x00_battery_read_time(di,<br>
+                
               
               
         BQ27x00_REG_TTECP);<br>
+                
       cache.time_to_full =<br>
+                
               bq27x00_battery_read_time(di,<br>
+                
               
               
         BQ27x00_REG_TTF);</font></tt>
<br><tt><font size=3>}<br>
+                cache.charge_full
= bq27x00_battery_read_lmd(di);<br>
+                cache.health
= bq27x00_battery_read_health(di);<br>
+                if
(!is_bq27500 && !is_bq27425<br>
+                
   && cache.heath == POWER_SUPPLY_HEALTH_GOOD<br>
+                
   && (cache.flags & BQ27000_FLAG_CI))<br>
+                
       cache.health = POWER_SUPPLY_HEALTH_UNKNOWN;<br>
+</font></tt>
<br><tt><font size=3>cache.temperature = bq27x00_battery_read_temperature(di);<br>
if (!is_bq27425)</font></tt>
<br><tt><font size=3>cache.cycle_count = bq27x00_battery_read_cyct(di);</font></tt>
<br><tt><font size=3>[Anhang "signature.asc" gelöscht von Sven
Dyroff/Mainz/Phytec] </font></tt>
<br>