]> rtime.felk.cvut.cz Git - sojka/nv-tegra/linux-3.10.git/commitdiff
bq2419x: dump stack backtrace when WDT expired.
authorRobert Shih <rshih@nvidia.com>
Sat, 5 Jul 2014 05:34:59 +0000 (13:34 +0800)
committerTodd Poynter <tpoynter@nvidia.com>
Tue, 8 Jul 2014 15:31:50 +0000 (08:31 -0700)
If hitting WDT expired case, means CPU is too much
busy somewhere and not able to schedule the workqueue
for 10 second.

Dump stack backtrace to check what is hogging CPU time.

bug 200017893

Change-Id: Ie15da50df1138ed3d4ac8f240b20b94f2797ea67
Signed-off-by: Robert Shih <rshih@nvidia.com>
Reviewed-on: http://git-master/r/435472
Reviewed-by: Automatic_Commit_Validation_User
GVS: Gerrit_Virtual_Submit
Reviewed-by: Allen Yu <alleny@nvidia.com>
Reviewed-by: Todd Poynter <tpoynter@nvidia.com>
drivers/power/bq2419x-charger.c

index dee44055136f6f07f7c11190f9ea392026ca80a8..0f6b3af88c76c1eea05897a37709c0ef87c32471 100644 (file)
@@ -44,6 +44,7 @@
 #include <linux/alarmtimer.h>
 #include <linux/power/battery-charger-gauge-comm.h>
 #include <linux/workqueue.h>
+#include <linux/sysrq.h>
 
 #define MAX_STR_PRINT 50
 
@@ -821,6 +822,7 @@ static irqreturn_t bq2419x_irq(int irq, void *data)
        if (val & BQ2419x_FAULT_WATCHDOG_FAULT) {
                bq_chg_err(bq2419x, "WatchDog Expired\n");
                ret = bq2419x_reconfigure_charger_param(bq2419x, "WDT-EXP-ISR");
+               __handle_sysrq('l', false);
                if (ret < 0) {
                        dev_err(bq2419x->dev, "BQ reconfig failed %d\n", ret);
                        return ret;