{
int err, ret;
struct link_device *ld = get_current_link(mc->bootd);
+ int cnt = 100;
unsigned long int flags;
mif_err("+++\n");
cal_cp_reset_release();
}
+ while (mbox_extract_value(MCU_CP, mc->mbx_cp_status,
+ mc->sbi_cp_status_mask, mc->sbi_cp_status_pos) == 0) {
+ if (--cnt > 0)
+ usleep_range(10000, 20000);
+ else {
+ mif_err("mbx_cp_status == 0, return -EACCES !!!!!!\n");
+ return -EFAULT;
+ }
+ }
+
spin_lock_irqsave(&mc->ap_status_lock, flags);
mbox_update_value(MCU_CP, mc->mbx_ap_status, 1,
mc->sbi_ap_status_mask, mc->sbi_ap_status_pos);