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>
#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
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;