コード例 #1
0
static void delayed_subsystem_restart_work_fn(struct work_struct *work)
{
	if (!machine_is_m7_evm()) /* SSR is not supported on EVM board */
		subsystem_restart(EXTERNAL_MODEM);
	else
		pr_err("SSR is not supported on EVM board. Skip it.\n");
}
コード例 #2
0
static irqreturn_t qsc_errfatal(int irq, void *dev_id)
{
	int value = gpio_get_value(mdm_drv->mdm2ap_errfatal_gpio);

	if( qsc_bootup_state != QSC_BOOT_MDM_HELPER_BOOTING && qsc_bootup_state != QSC_BOOT_MDM_BOOTLOAER_IRQ_RECEIVED )
		pr_debug("%s: qsc got errfatal interrupt\n", __func__);

	if (mdm_drv->mdm_ready &&
		(gpio_get_value(mdm_drv->mdm2ap_status_gpio) == 1)) {
		pr_err("%s: QSC2AP_ERRFATAL <%d>, reseting the qsc.\n", __func__, value);

		mdm_drv->mdm_ready = 0;
		if (!machine_is_m7_evm()) /* SSR is not supported on EVM board */
			subsystem_restart(EXTERNAL_MODEM);
	}
	return IRQ_HANDLED;
}
コード例 #3
0
ファイル: qsc_ctrl.c プロジェクト: TeamWin/802Xtreem
static void qsc2ap_status_check(struct work_struct *work)
{
	int value = gpio_get_value(mdm_drv->mdm2ap_status_gpio);

	if (!mdm_drv->disable_status_check) {
		if (value == 0) {
			pr_err("%s: QSC2AP_STATUS gpio did not go high\n",
					__func__);
			pr_info("%s: QSC2AP_STATUS <%d>\n", __func__, value);
			mdm_drv->mdm_ready = 0;
			if (!machine_is_m7_evm()) 
				subsystem_restart(EXTERNAL_MODEM);
		}
		else
		{
			
			gpio_direction_output(mdm_drv->ap2mdm_vddmin_gpio, 1);
		}
	}
}
コード例 #4
0
static void qsc2ap_status_check(struct work_struct *work)
{
	/*
	 * If the mdm modem did not pull the MDM2AP_STATUS gpio
	 * high then call subsystem_restart.
	 */
	int value = gpio_get_value(mdm_drv->mdm2ap_status_gpio);

	if (!mdm_drv->disable_status_check) {
		if (value == 0) {
			pr_err("%s: QSC2AP_STATUS gpio did not go high\n",
					__func__);
			pr_info("%s: QSC2AP_STATUS <%d>\n", __func__, value);
			mdm_drv->mdm_ready = 0;
			if (!machine_is_m7_evm()) /* SSR is not supported on EVM board */
				subsystem_restart(EXTERNAL_MODEM);
		}
		else
		{
			/* SSD_RIL: To control QSC enter DLOAD mode if QSC HW reset happens. */
			gpio_direction_output(mdm_drv->ap2mdm_vddmin_gpio, 1);
		}
	}
}