static void lpass_q6_crash_shutdown(const struct subsys_desc *subsys) { struct q6v3_data *drv; drv = container_of(subsys, struct q6v3_data, subsys_desc); send_q6_nmi(drv); }
static int lpass_q6_shutdown(const struct subsys_desc *subsys) { struct q6v3_data *drv; drv = container_of(subsys, struct q6v3_data, subsys_desc); send_q6_nmi(drv); writel_relaxed(0x0, drv->wd_base + 0x24); mb(); pil_shutdown(&drv->pil_desc); disable_irq_nosync(drv->irq); return 0; }
int subsys_q6_shutdown(const struct subsys_data *crashed_subsys) { void __iomem *q6_wdog_addr = ioremap_nocache(Q6SS_WDOG_ENABLE, 8); send_q6_nmi(); writel_relaxed(0x0, q6_wdog_addr); mb(); iounmap(q6_wdog_addr); pil_force_shutdown("q6"); disable_irq_nosync(LPASS_Q6SS_WDOG_EXPIRED); return 0; }
int subsys_q6_shutdown(const char * const crashed_subsys) { void __iomem *q6_wdog_addr = ioremap_nocache(Q6SS_WDOG_ENABLE, 8); send_q6_nmi(); writel_relaxed(0x0, q6_wdog_addr); /* The write needs to go through before the q6 is shutdown. */ mb(); iounmap(q6_wdog_addr); pil_force_shutdown("q6"); disable_irq_nosync(LPASS_Q6SS_WDOG_EXPIRED); if (get_restart_level() == RESET_SUBSYS_MIXED) smsm_reset_modem(SMSM_RESET); return 0; }
void subsys_q6_crash_shutdown(const struct subsys_data *crashed_subsys) { send_q6_nmi(); }
void subsys_q6_crash_shutdown(const char * const crashed_subsys) { send_q6_nmi(); }