/* interface to reset Riva by sending the reset interrupt */ void wcnss_reset_intr(void) { wcnss_riva_log_debug_regs(); wcnss_riva_dump_pmic_regs(); wmb(); __raw_writel(1 << 24, MSM_APCS_GCC_BASE + 0x8); }
/* interface to reset wcnss by sending the reset interrupt */ void wcnss_reset_intr(void) { if (wcnss_hardware_type() == WCNSS_PRONTO_HW) { wcnss_pronto_log_debug_regs(); wmb(); __raw_writel(1 << 16, penv->fiq_reg); } else { wcnss_riva_log_debug_regs(); wmb(); __raw_writel(1 << 24, MSM_APCS_GCC_BASE + 0x8); } }
static irqreturn_t riva_wdog_bite_irq_hdlr(int irq, void *dev_id) { struct riva_data *drv = dev_id; drv->crash = true; if (drv->rst_in_progress) { pr_err("Ignoring riva bite irq, restart in progress\n"); return IRQ_HANDLED; } if (!enable_riva_ssr) panic("Watchdog bite received from Riva"); drv->rst_in_progress = 1; wcnss_riva_log_debug_regs(); subsystem_restart_dev(drv->subsys); return IRQ_HANDLED; }
static irqreturn_t riva_wdog_bite_irq_hdlr(int irq, void *dev_id) { riva_crash = true; if (ss_restart_inprogress) { pr_err("%s: Ignoring riva bite irq, restart in progress\n", MODULE_NAME); return IRQ_HANDLED; } if (!enable_riva_ssr) panic(MODULE_NAME ": Watchdog bite received from Riva"); ss_restart_inprogress = true; wcnss_riva_log_debug_regs(); subsystem_restart_dev(riva_8960_dev); return IRQ_HANDLED; }