summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPaul Gortmaker <paul.gortmaker@windriver.com>2017-11-06 23:17:55 -0500
committerPaul Gortmaker <paul.gortmaker@windriver.com>2017-11-06 23:17:55 -0500
commite49b783084b79f397fb63dd2e2d7ff4e035f593f (patch)
treeea81d6062d7837308802d48c5bed39862235f139
parent04510290917425721e30c11ad9b72a3843768d06 (diff)
downloadlongterm-queue-4.8-e49b783084b79f397fb63dd2e2d7ff4e035f593f.tar.gz
power: remove patch #6 for driver not present in 4.8.x
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
-rw-r--r--queue/power-supply-bq24190_charger-Don-t-read-fault-regist.patch211
-rw-r--r--queue/series2
2 files changed, 0 insertions, 213 deletions
diff --git a/queue/power-supply-bq24190_charger-Don-t-read-fault-regist.patch b/queue/power-supply-bq24190_charger-Don-t-read-fault-regist.patch
deleted file mode 100644
index de087fb..0000000
--- a/queue/power-supply-bq24190_charger-Don-t-read-fault-regist.patch
+++ /dev/null
@@ -1,211 +0,0 @@
-From 68abfb8015832ddf728b911769659468efaf8bd9 Mon Sep 17 00:00:00 2001
-From: Liam Breck <liam@networkimprov.net>
-Date: Wed, 18 Jan 2017 09:26:53 -0800
-Subject: [PATCH] power: supply: bq24190_charger: Don't read fault register
- outside irq_handle_thread()
-
-commit 68abfb8015832ddf728b911769659468efaf8bd9 upstream.
-
-Caching the fault register after a single I2C read may not keep an accurate
-value.
-
-Fix by doing two reads in irq_handle_thread() and using the cached value
-elsewhere. If a safety timer fault later clears itself, we apparently don't get
-an interrupt (INT), however other interrupts would refresh the register cache.
-
-From the data sheet: "When a fault occurs, the charger device sends out INT
- and keeps the fault state in REG09 until the host reads the fault register.
- Before the host reads REG09 and all the faults are cleared, the charger
- device would not send any INT upon new faults. In order to read the
- current fault status, the host has to read REG09 two times consecutively.
- The 1st reads fault register status from the last read [1] and the 2nd reads
- the current fault register status."
-
-[1] presumably a typo; should be "last fault"
-
-Fixes: d7bf353fd0aa3 ("bq24190_charger: Add support for TI BQ24190 Battery Charger")
-Signed-off-by: Liam Breck <kernel@networkimprov.net>
-Acked-by: Mark Greer <mgreer@animalcreek.com>
-Acked-by: Tony Lindgren <tony@atomide.com>
-Signed-off-by: Sebastian Reichel <sre@kernel.org>
-
-diff --git a/drivers/power/supply/bq24190_charger.c b/drivers/power/supply/bq24190_charger.c
-index bf7c30a4acfb..c70ce192ec1e 100644
---- a/drivers/power/supply/bq24190_charger.c
-+++ b/drivers/power/supply/bq24190_charger.c
-@@ -144,10 +144,7 @@
- * so the first read after a fault returns the latched value and subsequent
- * reads return the current value. In order to return the fault status
- * to the user, have the interrupt handler save the reg's value and retrieve
-- * it in the appropriate health/status routine. Each routine has its own
-- * flag indicating whether it should use the value stored by the last run
-- * of the interrupt handler or do an actual reg read. That way each routine
-- * can report back whatever fault may have occured.
-+ * it in the appropriate health/status routine.
- */
- struct bq24190_dev_info {
- struct i2c_client *client;
-@@ -159,9 +156,6 @@ struct bq24190_dev_info {
- unsigned int gpio_int;
- unsigned int irq;
- struct mutex f_reg_lock;
-- bool charger_health_valid;
-- bool battery_health_valid;
-- bool battery_status_valid;
- u8 f_reg;
- u8 ss_reg;
- u8 watchdog;
-@@ -635,21 +629,11 @@ static int bq24190_charger_get_health(struct bq24190_dev_info *bdi,
- union power_supply_propval *val)
- {
- u8 v;
-- int health, ret;
-+ int health;
-
- mutex_lock(&bdi->f_reg_lock);
--
-- if (bdi->charger_health_valid) {
-- v = bdi->f_reg;
-- bdi->charger_health_valid = false;
-- mutex_unlock(&bdi->f_reg_lock);
-- } else {
-- mutex_unlock(&bdi->f_reg_lock);
--
-- ret = bq24190_read(bdi, BQ24190_REG_F, &v);
-- if (ret < 0)
-- return ret;
-- }
-+ v = bdi->f_reg;
-+ mutex_unlock(&bdi->f_reg_lock);
-
- if (v & BQ24190_REG_F_BOOST_FAULT_MASK) {
- /*
-@@ -936,18 +920,8 @@ static int bq24190_battery_get_status(struct bq24190_dev_info *bdi,
- int status, ret;
-
- mutex_lock(&bdi->f_reg_lock);
--
-- if (bdi->battery_status_valid) {
-- chrg_fault = bdi->f_reg;
-- bdi->battery_status_valid = false;
-- mutex_unlock(&bdi->f_reg_lock);
-- } else {
-- mutex_unlock(&bdi->f_reg_lock);
--
-- ret = bq24190_read(bdi, BQ24190_REG_F, &chrg_fault);
-- if (ret < 0)
-- return ret;
-- }
-+ chrg_fault = bdi->f_reg;
-+ mutex_unlock(&bdi->f_reg_lock);
-
- chrg_fault &= BQ24190_REG_F_CHRG_FAULT_MASK;
- chrg_fault >>= BQ24190_REG_F_CHRG_FAULT_SHIFT;
-@@ -995,21 +969,11 @@ static int bq24190_battery_get_health(struct bq24190_dev_info *bdi,
- union power_supply_propval *val)
- {
- u8 v;
-- int health, ret;
-+ int health;
-
- mutex_lock(&bdi->f_reg_lock);
--
-- if (bdi->battery_health_valid) {
-- v = bdi->f_reg;
-- bdi->battery_health_valid = false;
-- mutex_unlock(&bdi->f_reg_lock);
-- } else {
-- mutex_unlock(&bdi->f_reg_lock);
--
-- ret = bq24190_read(bdi, BQ24190_REG_F, &v);
-- if (ret < 0)
-- return ret;
-- }
-+ v = bdi->f_reg;
-+ mutex_unlock(&bdi->f_reg_lock);
-
- if (v & BQ24190_REG_F_BAT_FAULT_MASK) {
- health = POWER_SUPPLY_HEALTH_OVERVOLTAGE;
-@@ -1201,7 +1165,7 @@ static irqreturn_t bq24190_irq_handler_thread(int irq, void *data)
- | BQ24190_REG_F_NTC_FAULT_MASK;
- bool alert_charger = false, alert_battery = false;
- u8 ss_reg = 0, f_reg = 0;
-- int ret;
-+ int i, ret;
-
- pm_runtime_get_sync(bdi->dev);
-
-@@ -1231,33 +1195,35 @@ static irqreturn_t bq24190_irq_handler_thread(int irq, void *data)
- alert_battery = true;
- if ((bdi->ss_reg & ~battery_mask_ss) != (ss_reg & ~battery_mask_ss))
- alert_charger = true;
--
- bdi->ss_reg = ss_reg;
- }
-
-- mutex_lock(&bdi->f_reg_lock);
--
-- ret = bq24190_read(bdi, BQ24190_REG_F, &f_reg);
-- if (ret < 0) {
-- mutex_unlock(&bdi->f_reg_lock);
-- dev_err(bdi->dev, "Can't read F reg: %d\n", ret);
-- goto out;
-- }
-+ i = 0;
-+ do {
-+ ret = bq24190_read(bdi, BQ24190_REG_F, &f_reg);
-+ if (ret < 0) {
-+ dev_err(bdi->dev, "Can't read F reg: %d\n", ret);
-+ goto out;
-+ }
-+ } while (f_reg && ++i < 2);
-
- if (f_reg != bdi->f_reg) {
-+ dev_info(bdi->dev,
-+ "Fault: boost %d, charge %d, battery %d, ntc %d\n",
-+ !!(f_reg & BQ24190_REG_F_BOOST_FAULT_MASK),
-+ !!(f_reg & BQ24190_REG_F_CHRG_FAULT_MASK),
-+ !!(f_reg & BQ24190_REG_F_BAT_FAULT_MASK),
-+ !!(f_reg & BQ24190_REG_F_NTC_FAULT_MASK));
-+
-+ mutex_lock(&bdi->f_reg_lock);
- if ((bdi->f_reg & battery_mask_f) != (f_reg & battery_mask_f))
- alert_battery = true;
- if ((bdi->f_reg & ~battery_mask_f) != (f_reg & ~battery_mask_f))
- alert_charger = true;
--
- bdi->f_reg = f_reg;
-- bdi->charger_health_valid = true;
-- bdi->battery_health_valid = true;
-- bdi->battery_status_valid = true;
-+ mutex_unlock(&bdi->f_reg_lock);
- }
-
-- mutex_unlock(&bdi->f_reg_lock);
--
- if (alert_charger)
- power_supply_changed(bdi->charger);
- if (alert_battery)
-@@ -1377,9 +1343,6 @@ static int bq24190_probe(struct i2c_client *client,
- mutex_init(&bdi->f_reg_lock);
- bdi->f_reg = 0;
- bdi->ss_reg = BQ24190_REG_SS_VBUS_STAT_MASK; /* impossible state */
-- bdi->charger_health_valid = false;
-- bdi->battery_health_valid = false;
-- bdi->battery_status_valid = false;
-
- i2c_set_clientdata(client, bdi);
-
-@@ -1492,9 +1455,6 @@ static int bq24190_pm_resume(struct device *dev)
-
- bdi->f_reg = 0;
- bdi->ss_reg = BQ24190_REG_SS_VBUS_STAT_MASK; /* impossible state */
-- bdi->charger_health_valid = false;
-- bdi->battery_health_valid = false;
-- bdi->battery_status_valid = false;
-
- pm_runtime_get_sync(bdi->dev);
- bq24190_register_reset(bdi);
---
-2.12.0
-
diff --git a/queue/series b/queue/series
index 4d4f770..ae6f3f9 100644
--- a/queue/series
+++ b/queue/series
@@ -73,8 +73,6 @@ cpupower-Fix-turbo-frequency-reporting-for-pre-Sandy.patch
powerpc-mm-Fixup-wrong-LPCR_VRMASD-value.patch
powerpc-powernv-Fix-opal_exit-tracepoint-opcode.patch
powerpc-ftrace-Fix-confusing-help-text-for-DISABLE_M.patch
-power-supply-bq24190_charger-Call-power_supply_chang.patch
-power-supply-bq24190_charger-Don-t-read-fault-regist.patch
power-supply-bq24190_charger-Handle-fault-before-sta.patch
arm64-dts-r8a7795-Mark-EthernetAVB-device-node-disab.patch
arm-dts-qcom-Fix-ipq-board-clock-rates.patch