static void mdm_power_on_common(struct mdm_modem_drv *mdm_drv) { power_on_count++; /* this gpio will be used to indicate apq readiness, * de-assert it now so that it can be asserted later. * May not be used. */ if (GPIO_IS_VALID(mdm_drv->ap2mdm_wakeup_gpio)) gpio_direction_output(mdm_drv->ap2mdm_wakeup_gpio, 0); if (power_on_count == 1) { if (mdm_is_charge_only) pr_info("%s: Skip first power on in charge-only mode.\n", __func__); else mdm_do_first_power_on(mdm_drv); } else if (power_on_count == 2) { if (mdm_is_charge_only) mdm_do_first_power_on(mdm_drv); else if (!mdm_drv->pdata->early_power_on) mdm_do_soft_power_on(mdm_drv); } else { mdm_do_soft_power_on(mdm_drv); } }
static void mdm_power_on_common(struct mdm_modem_drv *mdm_drv) { mdm_drv->power_on_count++; /* this gpio will be used to indicate apq readiness, * de-assert it now so that it can be asserted later. * May not be used. */ pr_err("%s \n", __func__); if (GPIO_IS_VALID(MDM_GPIO(AP2MDM_CHNLRDY))) gpio_direction_output(MDM_GPIO(AP2MDM_CHNLRDY), 0); /* * If we did an "early power on" then ignore the very next * power-on request because it would the be first request from * user space but we're already powered on. Ignore it. */ if (mdm_drv->pdata->early_power_on && (mdm_drv->power_on_count == 2)) return; if(poweroff_charging){ pr_debug("%s: do not power on in lpm\n", __func__); return; } if (mdm_drv->power_on_count == 1) mdm_do_first_power_on(mdm_drv); else mdm_do_soft_power_on(mdm_drv); }
static void mdm_power_on_common(struct mdm_modem_drv *mdm_drv) { power_on_count++; /* this gpio will be used to indicate apq readiness, * de-assert it now so that it can be asserted later. * May not be used. */ if (mdm_drv->ap2mdm_wakeup_gpio > 0) gpio_direction_output(mdm_drv->ap2mdm_wakeup_gpio, 0); /* * If we did an "early power on" then ignore the very next * power-on request because it would the be first request from * user space but we're already powered on. Ignore it. */ if (mdm_drv->pdata->early_power_on && (power_on_count == 2)) return; if (power_on_count == 1) mdm_do_first_power_on(mdm_drv); else mdm_do_soft_power_on(mdm_drv); }
static void mdm_power_on_common(struct mdm_modem_drv *mdm_drv) { power_on_count++; /* this gpio will be used to indicate apq readiness, * de-assert it now so that it can be asserted later. * May not be used. */ if (GPIO_IS_VALID(mdm_drv->ap2mdm_wakeup_gpio)) gpio_direction_output(mdm_drv->ap2mdm_wakeup_gpio, 0); /* * If we did an "early power on" then ignore the very next * power-on request because it would the be first request from * user space but we're already powered on. Ignore it. */ if (mdm_drv->pdata->early_power_on && (power_on_count == 2)) return; #ifdef CONFIG_SONY_QSCFLASHING_UART4 /* * If we want to enter into edl mode, we should hard reboot the QSC, * so we use the mdm_do_first_power_on */ if (mdm_drv->mdm_edload_status == 1) { mdm_do_first_power_on(mdm_drv); power_on_count--; return; } #endif if (power_on_count == 1) mdm_do_first_power_on(mdm_drv); else mdm_do_soft_power_on(mdm_drv); }