static void handle_no_cp_crash_ack(unsigned long arg) { struct mem_link_device *mld = (struct mem_link_device *)arg; struct link_device *ld = &mld->link_dev; struct modem_ctl *mc = ld->mc; if (cp_crashed(mc)) { mif_debug("%s: STATE_CRASH_EXIT without CRASH_ACK\n", ld->name); } else { mif_err("%s: ERR! No CRASH_ACK from CP\n", ld->name); mem_handle_cp_crash(mld, STATE_CRASH_EXIT); } }
static void handle_no_response_cp_crash(unsigned long arg) { struct modem_ctl *mc = (struct modem_ctl *)arg; unsigned long flags; if (cp_crashed(mc)) { mif_info("%s: STATE_CRASH_EXIT without response from CP\n", mc->name); return; } mif_err("%s: ERR! No response from CP\n", mc->name); spin_lock_irqsave(&mc->lock, flags); /* Change the modem state for RIL */ if (mc->iod) mc->iod->modem_state_changed(mc->iod, STATE_CRASH_EXIT); /* Change the modem state for CBD */ if (mc->bootd) mc->bootd->modem_state_changed(mc->bootd, STATE_CRASH_EXIT); spin_unlock_irqrestore(&mc->lock, flags); }