static inline INT32 _stp_btm_do_fw_assert_via_emi(MTKSTP_BTM_T *stp_btm) { #if 0 P_OSAL_OP pOp; INT32 bRet; INT32 retval; if (stp_btm == NULL) { return STP_BTM_OPERATION_FAIL; } else { pOp = _stp_btm_get_free_op(stp_btm); if (!pOp) { STP_BTM_WARN_FUNC("get_free_lxop fail\n"); return -1; /* break; */ } pOp->op.opId = STP_OPID_BTM_FORCE_FW_ASSERT; pOp->signal.timeoutValue = 0; bRet = _stp_btm_put_act_op(stp_btm, pOp); STP_BTM_DBG_FUNC("OPID(%d) type(%d) bRet(%d)\n\n", pOp->op.opId, pOp->op.au4OpData[0], bRet); retval = (0 == bRet) ? STP_BTM_OPERATION_FAIL : STP_BTM_OPERATION_SUCCESS; } return retval; #endif INT32 ret = -1; ret = _stp_trigger_firmware_assert_via_emi(); return ret; }
static inline INT32 _stp_btm_notify_wmt_dmp_wq(MTKSTP_BTM_T *stp_btm){ P_OSAL_OP pOp; INT32 bRet; INT32 retval; if(stp_btm == NULL) { return STP_BTM_OPERATION_FAIL; } else { pOp = _stp_btm_get_free_op(stp_btm); if (!pOp) { //STP_BTM_WARN_FUNC("get_free_lxop fail \n"); return -1;//break; } pOp->op.opId = STP_OPID_BTM_DBG_DUMP; pOp->signal.timeoutValue= 0; bRet = _stp_btm_put_act_op(stp_btm, pOp); STP_BTM_DBG_FUNC("OPID(%d) type(%d) bRet(%d) \n\n", pOp->op.opId, pOp->op.au4OpData[0], bRet); retval = (0 == bRet) ? STP_BTM_OPERATION_FAIL : STP_BTM_OPERATION_SUCCESS; } return retval; }
static inline INT32 _stp_notify_btm_poll_cpupcr(MTKSTP_BTM_T *stp_btm, UINT32 times, UINT32 sleep) { P_OSAL_OP pOp; INT32 bRet; INT32 retval; if (stp_btm == NULL) { return STP_BTM_OPERATION_FAIL; } else { pOp = _stp_btm_get_free_op(stp_btm); if (!pOp) { /* STP_BTM_WARN_FUNC("get_free_lxop fail\n"); */ return -1; /* break; */ } pOp->op.opId = STP_OPID_BTM_POLL_CPUPCR; pOp->signal.timeoutValue = 0; pOp->op.au4OpData[0] = times; pOp->op.au4OpData[1] = sleep; bRet = _stp_btm_put_act_op(stp_btm, pOp); STP_BTM_DBG_FUNC("OPID(%d) type(%zd) bRet(%d)\n\n", pOp->op.opId, pOp->op.au4OpData[0], bRet); retval = (0 == bRet) ? STP_BTM_OPERATION_FAIL : STP_BTM_OPERATION_SUCCESS; } return retval; }
static inline INT32 _stp_btm_notify_coredump_timeout_wq(MTKSTP_BTM_T *stp_btm) { P_OSAL_OP pOp; INT32 bRet; INT32 retval; stp_btm_reset_btm_wq(stp_btm); if (!stp_btm) { return STP_BTM_OPERATION_FAIL; } else { pOp = _stp_btm_get_free_op(stp_btm); if (!pOp) { STP_BTM_DBG_FUNC("get_free_lxop fail\n"); return -1; /* break; */ } pOp->op.opId = STP_OPID_BTM_DUMP_TIMEOUT; pOp->signal.timeoutValue = 0; bRet = _stp_btm_put_act_op(stp_btm, pOp); STP_BTM_DBG_FUNC("OPID(%d) type(%d) bRet(%d)\n\n", pOp->op.opId, pOp->op.au4OpData[0], bRet); retval = (0 == bRet) ? STP_BTM_OPERATION_FAIL : STP_BTM_OPERATION_SUCCESS; } return retval; }
static inline INT32 _stp_btm_do_fw_assert_via_emi(MTKSTP_BTM_T *stp_btm){ #if 0 P_OSAL_OP pOp; INT32 bRet; INT32 retval; if(stp_btm == NULL) { return STP_BTM_OPERATION_FAIL; } else { pOp = _stp_btm_get_free_op(stp_btm); if (!pOp) { STP_BTM_WARN_FUNC("get_free_lxop fail \n"); return -1;//break; } pOp->op.opId = STP_OPID_BTM_FORCE_FW_ASSERT; pOp->signal.timeoutValue= 0; bRet = _stp_btm_put_act_op(stp_btm, pOp); STP_BTM_DBG_FUNC("OPID(%d) type(%d) bRet(%d) \n\n", pOp->op.opId, pOp->op.au4OpData[0], bRet); retval = (0 == bRet) ? STP_BTM_OPERATION_FAIL : STP_BTM_OPERATION_SUCCESS; } return retval; #endif INT32 ret = -1; ret = _stp_trigger_firmware_assert_via_emi(); #if 0 if(0 != _stp_get_dump_info(EXP_APMEM_CTRL_HOST_OUTBAND_ASSERT_W1)) { STP_BTM_INFO_FUNC("EXP_APMEM_CTRL_HOST_OUTBAND_ASSERT_W1 has not clear,reset it\n"); _stp_set_dump_info(EXP_APMEM_CTRL_HOST_OUTBAND_ASSERT_W1, 0x0); } else { STP_BTM_INFO_FUNC("EXP_APMEM_CTRL_HOST_OUTBAND_ASSERT_W1 reset by fw side\n"); } #endif return ret; }
static inline INT32 _stp_btm_dump_type(MTKSTP_BTM_T *stp_btm, ENUM_STP_BTM_OPID_T opid) { P_OSAL_OP pOp; INT32 bRet; INT32 retval; pOp = _stp_btm_get_free_op(stp_btm); if (!pOp) { STP_BTM_WARN_FUNC("get_free_lxop fail\n"); return -1; /* break; */ } pOp->op.opId = opid; pOp->signal.timeoutValue = 0; bRet = _stp_btm_put_act_op(stp_btm, pOp); STP_BTM_DBG_FUNC("OPID(%d) type(%zd) bRet(%d)\n\n", pOp->op.opId, pOp->op.au4OpData[0], bRet); retval = (0 == bRet) ? STP_BTM_OPERATION_FAIL : STP_BTM_OPERATION_SUCCESS; return retval; }
static inline INT32 _stp_notify_btm_handle_wmt_lte_coex(MTKSTP_BTM_T *stp_btm) { P_OSAL_OP pOp; INT32 bRet; INT32 retval; if (stp_btm == NULL) { return STP_BTM_OPERATION_FAIL; } else { pOp = _stp_btm_get_free_op(stp_btm); if (!pOp) { STP_BTM_DBG_FUNC("get_free_lxop fail\n"); return -1; /* break; */ } pOp->op.opId = STP_OPID_BTM_WMT_LTE_COEX; pOp->signal.timeoutValue = 0; bRet = _stp_btm_put_act_op(stp_btm, pOp); STP_BTM_DBG_FUNC("OPID(%d) type(%zd) bRet(%d)\n", pOp->op.opId, pOp->op.au4OpData[0], bRet); retval = (0 == bRet) ? STP_BTM_OPERATION_FAIL : STP_BTM_OPERATION_SUCCESS; } return retval; }