n810bm: Set minimum voltage threshold to 3200
authorMichael Büsch <mb@bu3sch.de>
Wed, 9 Feb 2011 20:09:49 +0000 (20:09 +0000)
committerMichael Büsch <mb@bu3sch.de>
Wed, 9 Feb 2011 20:09:49 +0000 (20:09 +0000)
SVN-Revision: 25433

target/linux/omap24xx/patches-2.6.37/900-n810-battery-management.patch

index 31eeeb857ac78c787e617305d7d022d9812490e5..e460d3c088841273650c5f147fad4b681a160114 100644 (file)
@@ -41,8 +41,8 @@ Index: linux-2.6.37/drivers/cbus/Makefile
 Index: linux-2.6.37/drivers/cbus/n810bm_main.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.37/drivers/cbus/n810bm_main.c    2011-02-09 13:47:23.831144291 +0100
-@@ -0,0 +1,1169 @@
++++ linux-2.6.37/drivers/cbus/n810bm_main.c    2011-02-09 19:05:18.435536304 +0100
+@@ -0,0 +1,1168 @@
 +/*
 + *   Nokia n810 battery management
 + *
@@ -86,7 +86,7 @@ Index: linux-2.6.37/drivers/cbus/n810bm_main.c
 +#define N810BM_PMM_BLOCK_SIZE         0x600
 +
 +#define N810BM_CHECK_INTERVAL         (HZ * 2)
-+#define N810BM_MIN_VOLTAGE_THRES      3300 /* Absolute minimum voltage threshold */
++#define N810BM_MIN_VOLTAGE_THRES      3200 /* Absolute minimum voltage threshold */
 +
 +
 +/* RETU_ADC_BSI
@@ -612,7 +612,6 @@ Index: linux-2.6.37/drivers/cbus/n810bm_main.c
 +                                       struct n810bm, periodic_check_work);
 +      u16 status;
 +      bool battery_was_present, charger_was_present;
-+      bool force_charge = 0;
 +      int mv;
 +
 +      mutex_lock(&bm->mutex);
@@ -646,23 +645,23 @@ Index: linux-2.6.37/drivers/cbus/n810bm_main.c
 +                       bm->charger_present ? "plugged in" : "removed");
 +      }
 +
-+      if (bm->battery_present && !lipocharge_is_charging(&bm->charger)) {
++      if ((bm->battery_present && !bm->charger_present) ||
++          !n810bm_known_battery_present(bm)){
 +              /* We're draining the battery */
 +              mv = n810bm_measure_batt_voltage(bm);
-+              if (mv < 0)
-+                      n810bm_emergency(bm, "check timer: Failed to measure");
-+              if (!bm->charger_present) {
-+                      if (mv < N810BM_MIN_VOLTAGE_THRES) {
-+                              n810bm_emergency(bm, "check timer: "
-+                                      "Minimum voltage threshold reached");
-+                      }
-+                      force_charge = 1;
++              if (mv < 0) {
++                      n810bm_emergency(bm,
++                              "check: Failed to measure voltage");
++              }
++              if (mv < N810BM_MIN_VOLTAGE_THRES) {
++                      n810bm_emergency(bm,
++                              "check: Minimum voltage threshold reached");
 +              }
 +      }
 +
 +      if (bm->charger_present && n810bm_known_battery_present(bm)) {
 +              /* Known battery and charger are connected */
-+              if (bm->charger_enabled || force_charge) {
++              if (bm->charger_enabled) {
 +                      /* Charger is enabled */
 +                      if (!lipocharge_is_charging(&bm->charger)) {
 +                              //TODO start charging, if battery is below some threshold