VOID stp_dbg_cpupcr_deinit(P_STP_DBG_CPUPCR_T pCpupcr) { if (pCpupcr) { osal_sleepable_lock_deinit(&pCpupcr->lock); osal_free(pCpupcr); pCpupcr = NULL; } }
/* wcn_core_dump_init - create core dump sys * @ timeout - core dump time out value * * Return object pointer if success, else NULL */ P_WCN_CORE_DUMP_T wcn_core_dump_init(UINT32 timeout) { #define KBYTES (1024*sizeof(char)) #define L1_BUF_SIZE (32*KBYTES) #define L2_BUF_SIZE (512*KBYTES) P_WCN_CORE_DUMP_T core_dmp = NULL; core_dmp = (P_WCN_CORE_DUMP_T)osal_malloc(sizeof(WCN_CORE_DUMP_T)); if (!core_dmp) { STP_DBG_ERR_FUNC("alloc mem failed!\n"); goto fail; } osal_memset(core_dmp, 0, sizeof(WCN_CORE_DUMP_T)); core_dmp->compressor = wcn_compressor_init("core_dump_compressor", L1_BUF_SIZE, L2_BUF_SIZE); if (!core_dmp->compressor) { STP_DBG_ERR_FUNC("create compressor failed!\n"); goto fail; } wcn_compressor_reset(core_dmp->compressor, 1, GZIP); core_dmp->dmp_timer.timeoutHandler = core_dump_timeout_handler; core_dmp->dmp_timer.timeroutHandlerData = (ULONG)core_dmp; osal_timer_create(&core_dmp->dmp_timer); core_dmp->timeout = timeout; osal_sleepable_lock_init(&core_dmp->dmp_lock); core_dmp->sm = CORE_DUMP_INIT; STP_DBG_INFO_FUNC("create coredump object OK!\n"); return core_dmp; fail: if (core_dmp && core_dmp->compressor) { wcn_compressor_deinit(core_dmp->compressor); core_dmp->compressor = NULL; } if (core_dmp) { osal_free(core_dmp); } osal_sleepable_lock_deinit(&core_dmp->dmp_lock); return NULL; }
/* wcn_core_dump_deinit - destroy core dump object * @ dmp - pointer of object * * Retunr 0 if success, else error code */ INT32 wcn_core_dump_deinit(P_WCN_CORE_DUMP_T dmp) { if (dmp && dmp->compressor) { wcn_compressor_deinit(dmp->compressor); dmp->compressor = NULL; } if (dmp) { osal_sleepable_lock_deinit(&dmp->dmp_lock); osal_timer_stop(&dmp->dmp_timer); osal_free(dmp); } return 0; }
INT32 wmt_plat_deinit(VOID) { INT32 iret; /* 1. de-init cmb_hw */ iret = mtk_wcn_cmb_hw_deinit(); /* 2. unreg to cmb_stub */ iret += mtk_wcn_cmb_stub_unreg(); /*3. wmt wakelock deinit*/ #ifdef CFG_WMT_WAKELOCK_SUPPORT wake_lock_destroy(&wmtWakeLock); osal_sleepable_lock_deinit(&gOsSLock); WMT_DBG_FUNC("destroy wmtWakeLock\n"); #endif WMT_DBG_FUNC("WMT-PLAT: ALPS platform init (%d)\n", iret); return 0; }
static void WMT_exit(void) { dev_t dev = MKDEV(gWmtMajor, 0); #if CONSYS_EARLYSUSPEND_ENABLE unregister_early_suspend(&wmt_early_suspend_handler); osal_sleepable_lock_deinit(&g_es_lr_lock); WMT_INFO_FUNC("unregister_early_suspend finished\n"); #endif #if CONSYS_WMT_REG_SUSPEND_CB_ENABLE unregister_pm_notifier(&wmt_pm_notifier_block); #endif wmt_lib_deinit(); #if CFG_WMT_DBG_SUPPORT wmt_dev_dbg_remove(); #endif #if CFG_WMT_PROC_FOR_AEE wmt_dev_proc_for_aee_remove(); #endif cdev_del(&gWmtCdev); unregister_chrdev_region(dev, WMT_DEV_NUM); gWmtMajor = -1; #if REMOVE_MK_NODE device_destroy(wmt_class, MKDEV(gWmtMajor, 0)); class_destroy(wmt_class); wmt_class = NULL; #endif #ifdef MTK_WMT_WAKELOCK_SUPPORT WMT_WARN_FUNC("destroy func_on_off_wake_lock\n"); wake_lock_destroy(&func_on_off_wake_lock); #endif stp_drv_exit(); WMT_INFO_FUNC("done\n"); }