drivers: nanohub: disable dump resume reason for nanohub.
Other changes:
1. change default fuel gauge capacity to 50%.
2. use timed out wake up request in function firmware query.
3. enlarge wake up timeout.
Change-Id: I51809c7ff285fad69b193ec4897aa7eba9e824ea
Signed-off-by: Fanming Kong <fmkong@mobvoi.com>
diff --git a/drivers/staging/nanohub/bq27xxx_fuelgauge.c b/drivers/staging/nanohub/bq27xxx_fuelgauge.c
index 58b3ed9..19d84e7 100644
--- a/drivers/staging/nanohub/bq27xxx_fuelgauge.c
+++ b/drivers/staging/nanohub/bq27xxx_fuelgauge.c
@@ -29,7 +29,7 @@
int device_is_charging = 0;
#define DBG_ENABLE 1
-#define WAKEUP_TIMEOUT_MS 1000
+#define WAKEUP_TIMEOUT_MS 2000
#define BQ27XXX_FLAG_DSC BIT(0)
#define BQ27XXX_FLAG_SOCF BIT(1) /*State-of-Charge threshold final*/
@@ -617,7 +617,7 @@
struct Nanohub_FuelGauge_Info *fg_info;
struct bq27x00_reg_cache default_cache_data = {
2, 1, 8330, 365, 3710, 136, 380, 300, 402, 0,
- 263, 291, 292, 77, 29100, 75, 0, 1, 415, 26800};
+ 263, 291, 292, 77, 29100, 50, 0, 1, 415, 26800};
struct power_supply *usb_psy;
usb_psy = power_supply_get_by_name("usb");
diff --git a/drivers/staging/nanohub/main.c b/drivers/staging/nanohub/main.c
index 1f917f8..c799ecb 100644
--- a/drivers/staging/nanohub/main.c
+++ b/drivers/staging/nanohub/main.c
@@ -59,8 +59,8 @@
#define OS_LOG_EVENTID 0x3B474F4C
#define WAKEUP_INTERRUPT 1
-#define WAKEUP_TIMEOUT_MS 1000
-#define SUSPEND_TIMEOUT_MS 100
+#define WAKEUP_TIMEOUT_MS 2000
+#define SUSPEND_TIMEOUT_MS 200
#define KTHREAD_ERR_TIME_NS (60LL * NSEC_PER_SEC)
#define KTHREAD_ERR_CNT 70
#define KTHREAD_WARN_CNT 10
@@ -589,7 +589,7 @@
struct nanohub_data *data = dev_get_nanohub_data(dev);
uint16_t buffer[6];
- if (request_wakeup(data))
+ if (request_wakeup_timeout(data, WAKEUP_TIMEOUT_MS))
return -ERESTARTSYS;
if (nanohub_comms_tx_rx_retrans
@@ -874,8 +874,14 @@
uint8_t status = CMD_ACK;
ret = nanohub_wakeup_lock(data, LOCK_MODE_IO);
- if (ret < 0)
+ if (ret < 0) {
+ atomic_set(&data->download_bl_status,
+ DOWNLOAD_BL_TIMEOUT);
return ret;
+ }
+
+ atomic_set(&data->download_bl_status,
+ DOWNLOAD_BL_RUNNING);
__nanohub_hw_reset(data, 1);
@@ -906,6 +912,7 @@
{
struct nanohub_data *data = dev_get_nanohub_data(dev);
char status[][10] = {"Not Start",
+ "Running",
"Success",
"Failed",
"Time Out"};
@@ -1666,8 +1673,8 @@
"%s: failed to reset nanohub: ret=%d\n",
__func__, ret);
}
- } else {
- atomic_set(&data->download_bl_status,
+ if (DOWNLOAD_BL_SUCCESS == atomic_read(&data->download_bl_status))
+ atomic_set(&data->download_bl_status,
DOWNLOAD_BL_FAILED);
}
msleep_interruptible(WAKEUP_TIMEOUT_MS);
diff --git a/drivers/staging/nanohub/main.h b/drivers/staging/nanohub/main.h
index 8f8a38c..1903285 100644
--- a/drivers/staging/nanohub/main.h
+++ b/drivers/staging/nanohub/main.h
@@ -28,7 +28,7 @@
#define NANOHUB_NAME "nanohub"
-#define NANOHUB_WAKEUP_TRACE_ENABLE (1)
+#define NANOHUB_WAKEUP_TRACE_ENABLE (0)
struct nanohub_buf {
struct list_head list;
@@ -179,6 +179,7 @@
enum DOWNLOAD_BL_STATUS {
DOWNLOAD_BL_NOT_START = 0,
+ DOWNLOAD_BL_RUNNING,
DOWNLOAD_BL_SUCCESS,
DOWNLOAD_BL_FAILED,
DOWNLOAD_BL_TIMEOUT,