static void idpram_resume_retry(struct work_struct *work) { struct idpram_link_pm_data *pm_data = container_of(work, struct idpram_link_pm_data, \ resume_work.work); mif_debug("MIF: %s\n", __func__); if (!idpram_resume_check(pm_data)) { mif_info("MIF: idpram resume ok\n"); idpram_write_lock(pm_data, 0); wake_lock_timeout(&pm_data->hold_wlock, msecs_to_jiffies(20)); return; } if (pm_data->resume_retry--) { schedule_delayed_work(&pm_data->resume_work, \ msecs_to_jiffies(200)); wake_lock_timeout(&pm_data->hold_wlock, msecs_to_jiffies(260)); } else { mif_info("MIF: idpram resume T-I-M-E-O-UT\n"); idpram_timeout_handler(pm_data); /* hold wakelock until uevnet sent to rild */ wake_lock_timeout(&pm_data->hold_wlock, HZ*7); idpram_write_lock(pm_data, 0); } }
static void idpram_resume_retry(struct work_struct *work) { struct idpram_link_pm_data *pm_data = container_of(work, struct idpram_link_pm_data, \ resume_work.work); pr_info("MIF: <%s+>\n", __func__); if (!idpram_resume_check(pm_data)) { pr_info("MIF: idpram resumed\n"); idpram_write_lock(pm_data, 0); wake_unlock(&pm_data->hold_wlock); schedule_delayed_work(&pm_data->dpld->ld.tx_delayed_work, msecs_to_jiffies(10)); pr_info("MIF: <%s->\n", __func__); return; } if (pm_data->resume_retry_cnt--) { pr_info("MIF: idpram not resumed yet\n"); schedule_delayed_work(&pm_data->resume_work, \ msecs_to_jiffies(200)); } else { pr_info("MIF: idpram resume T-I-M-E-O-UT\n"); idpram_timeout_handler(pm_data); wake_unlock(&pm_data->hold_wlock); /* hold wakelock until uevnet sent to rild */ wake_lock_timeout(&pm_data->hold_wlock, HZ*7); idpram_write_lock(pm_data, 0); } pr_info("MIF: <%s->\n", __func__); }