Loading arch/arm/mach-msm/pil-pronto.c +14 −2 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ struct pronto_data { bool restart_inprogress; bool crash; struct ramdump_device *ramdump_dev; struct work_struct wcnss_wdog_bite_work; }; static int pil_pronto_make_proxy_vote(struct pil_desc *pil) Loading Loading @@ -313,6 +314,16 @@ static irqreturn_t wcnss_err_fatal_intr_handler(int irq, void *dev_id) return IRQ_HANDLED; } static void wcnss_wdog_bite_work_hdlr(struct work_struct *wcnss_work) { struct pronto_data *drv = container_of(wcnss_work, struct pronto_data, wcnss_wdog_bite_work); wcnss_log_debug_regs_on_bite(); restart_wcnss(drv); } static irqreturn_t wcnss_wdog_bite_irq_hdlr(int irq, void *dev_id) { struct pronto_data *drv = subsys_to_drv(dev_id); Loading @@ -322,10 +333,9 @@ static irqreturn_t wcnss_wdog_bite_irq_hdlr(int irq, void *dev_id) pr_err("Ignoring wcnss bite irq, restart in progress\n"); return IRQ_HANDLED; } wcnss_log_debug_regs_on_bite(); drv->restart_inprogress = true; restart_wcnss(drv); schedule_work(&drv->wcnss_wdog_bite_work); return IRQ_HANDLED; } Loading Loading @@ -454,6 +464,8 @@ static int pil_pronto_probe(struct platform_device *pdev) drv->subsys_desc.err_fatal_handler = wcnss_err_fatal_intr_handler; drv->subsys_desc.wdog_bite_handler = wcnss_wdog_bite_irq_hdlr; INIT_WORK(&drv->wcnss_wdog_bite_work, wcnss_wdog_bite_work_hdlr); drv->subsys = subsys_register(&drv->subsys_desc); if (IS_ERR(drv->subsys)) { ret = PTR_ERR(drv->subsys); Loading Loading
arch/arm/mach-msm/pil-pronto.c +14 −2 Original line number Diff line number Diff line Loading @@ -85,6 +85,7 @@ struct pronto_data { bool restart_inprogress; bool crash; struct ramdump_device *ramdump_dev; struct work_struct wcnss_wdog_bite_work; }; static int pil_pronto_make_proxy_vote(struct pil_desc *pil) Loading Loading @@ -313,6 +314,16 @@ static irqreturn_t wcnss_err_fatal_intr_handler(int irq, void *dev_id) return IRQ_HANDLED; } static void wcnss_wdog_bite_work_hdlr(struct work_struct *wcnss_work) { struct pronto_data *drv = container_of(wcnss_work, struct pronto_data, wcnss_wdog_bite_work); wcnss_log_debug_regs_on_bite(); restart_wcnss(drv); } static irqreturn_t wcnss_wdog_bite_irq_hdlr(int irq, void *dev_id) { struct pronto_data *drv = subsys_to_drv(dev_id); Loading @@ -322,10 +333,9 @@ static irqreturn_t wcnss_wdog_bite_irq_hdlr(int irq, void *dev_id) pr_err("Ignoring wcnss bite irq, restart in progress\n"); return IRQ_HANDLED; } wcnss_log_debug_regs_on_bite(); drv->restart_inprogress = true; restart_wcnss(drv); schedule_work(&drv->wcnss_wdog_bite_work); return IRQ_HANDLED; } Loading Loading @@ -454,6 +464,8 @@ static int pil_pronto_probe(struct platform_device *pdev) drv->subsys_desc.err_fatal_handler = wcnss_err_fatal_intr_handler; drv->subsys_desc.wdog_bite_handler = wcnss_wdog_bite_irq_hdlr; INIT_WORK(&drv->wcnss_wdog_bite_work, wcnss_wdog_bite_work_hdlr); drv->subsys = subsys_register(&drv->subsys_desc); if (IS_ERR(drv->subsys)) { ret = PTR_ERR(drv->subsys); Loading