From 970b4c6a72b4b0e0bfda0587abaee756f0be4afa Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Michael=20B=C3=BCsch?= <mb@bu3sch.de>
Date: Wed, 9 Feb 2011 20:09:49 +0000
Subject: [PATCH] n810bm: Set minimum voltage threshold to 3200

SVN-Revision: 25433
---
 .../900-n810-battery-management.patch         | 27 +++++++++----------
 1 file changed, 13 insertions(+), 14 deletions(-)

diff --git a/target/linux/omap24xx/patches-2.6.37/900-n810-battery-management.patch b/target/linux/omap24xx/patches-2.6.37/900-n810-battery-management.patch
index 31eeeb857a..e460d3c088 100644
--- a/target/linux/omap24xx/patches-2.6.37/900-n810-battery-management.patch
+++ b/target/linux/omap24xx/patches-2.6.37/900-n810-battery-management.patch
@@ -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
-- 
GitLab