示例#1
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);

	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__);
}