int __init ccci_md_init_mod_init(void) { int ret; CCCI_MSG("Ver. %s, @ %s %s\n",ccci_version, __DATE__, __TIME__); ret = ccci_alloc_smem(); if (ret) return ret; /* * IOREMAP the physical address where the modem firmware is stored. * We will need to dump this, when there's an exception. */ //md_img_vir = (int *)ioremap_nocache(MODEM_REGION_BASE, MD_IMG_DUMP_SIZE); // printk(KERN_ERR "----------->CCCI_MD: md_img_vir=%p.\n",md_img_vir); //if (!md_img_vir) //{ //printk(KERN_ERR "[CCCI]:CCCI_MD[Exception] Mem dump ioremap failed\n"); //return -ENOMEM; //} ret=platform_init(); if (ret) { CCCI_MSG_INF("ctl", "platform_init failed.\n"); //iounmap(md_img_vir); return ret; } ret=ccci_rpc_init(); if (ret) { CCCI_MSG_INF("ctl", "rpc_init failed.\n"); ccci_rpc_exit(); //iounmap(md_img_vir); return ret; } // MUST register callbacks after memory is allocated boot_register_md_func(boot_md_show, boot_md_store); //slp_set_ccci_callback(ccci_dormancy); ccci_md_wdt_notify_register(reset_md); ccci_aed_cb_register(ccci_aed); register_resume_notify(RSM_ID_MD_LOCK_DORMANT, lock_md_dormant); register_suspend_notify(SLP_ID_MD_UNLOCK_DORMANT, unlock_md_dormant); register_ccci_kern_func(ID_CCCI_DORMANCY, ccci_dormancy); register_ccci_kern_func(ID_LOCK_MD_SLEEP, lock_md_sleep); register_ccci_kern_func(ID_ACK_MD_SLEEP, ack_md_sleep); register_filter_func("-l", ccci_msg_filter_store, ccci_msg_filter_show); register_filter_func("-c", ccci_ch_filter_store, ccci_ch_filter_show); wake_lock_init(&trm_wake_lock, WAKE_LOCK_SUSPEND, "ccci_trm"); spin_lock_init(&md_slp_lock); return 0; }
static int ssw_probe(struct platform_device *dev) { ssw_init(default_mode); mutex_init(&ssw_mutex); register_ccci_kern_func(ID_SSW_SWITCH_MODE, ssw_switch_mode); return 0; }