Beispiel #1
0
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;
}
Beispiel #4
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");
}