void _dbg_dump_tx_info(struct adapter *padapter, int frame_tag, struct tx_desc *ptxdesc) { u8 dmp_txpkt; bool dump_txdesc = false; rtw_hal_get_def_var(padapter, HAL_DEF_DBG_DUMP_TXPKT, &(dmp_txpkt)); if (dmp_txpkt == 1) {/* dump txdesc for data frame */ DBG_88E("dump tx_desc for data frame\n"); if ((frame_tag & 0x0f) == DATA_FRAMETAG) dump_txdesc = true; } else if (dmp_txpkt == 2) {/* dump txdesc for mgnt frame */ DBG_88E("dump tx_desc for mgnt frame\n"); if ((frame_tag & 0x0f) == MGNT_FRAMETAG) dump_txdesc = true; } if (dump_txdesc) { DBG_88E("=====================================\n"); DBG_88E("txdw0(0x%08x)\n", ptxdesc->txdw0); DBG_88E("txdw1(0x%08x)\n", ptxdesc->txdw1); DBG_88E("txdw2(0x%08x)\n", ptxdesc->txdw2); DBG_88E("txdw3(0x%08x)\n", ptxdesc->txdw3); DBG_88E("txdw4(0x%08x)\n", ptxdesc->txdw4); DBG_88E("txdw5(0x%08x)\n", ptxdesc->txdw5); DBG_88E("txdw6(0x%08x)\n", ptxdesc->txdw6); DBG_88E("txdw7(0x%08x)\n", ptxdesc->txdw7); DBG_88E("=====================================\n"); } }
void rtl8723b_sreset_xmit_status_check(_adapter *padapter) { HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter); struct sreset_priv *psrtpriv = &pHalData->srestpriv; unsigned long current_time; struct xmit_priv *pxmitpriv = &padapter->xmitpriv; unsigned int diff_time; u32 txdma_status; if( (txdma_status=rtw_read32(padapter, REG_TXDMA_STATUS)) !=0x00){ DBG_871X("%s REG_TXDMA_STATUS:0x%08x\n", __FUNCTION__, txdma_status); rtw_hal_sreset_reset(padapter); } #ifdef CONFIG_USB_HCI //total xmit irp = 4 //DBG_8192C("==>%s free_xmitbuf_cnt(%d),txirp_cnt(%d)\n",__FUNCTION__,pxmitpriv->free_xmitbuf_cnt,pxmitpriv->txirp_cnt); //if(pxmitpriv->txirp_cnt == NR_XMITBUFF+1) current_time = rtw_get_current_time(); if(0 == pxmitpriv->free_xmitbuf_cnt || 0 == pxmitpriv->free_xmit_extbuf_cnt) { diff_time = rtw_get_passing_time_ms(psrtpriv->last_tx_time); if (diff_time > 2000) { if (psrtpriv->last_tx_complete_time == 0) { psrtpriv->last_tx_complete_time = current_time; } else{ diff_time = rtw_get_passing_time_ms(psrtpriv->last_tx_complete_time); if (diff_time > 4000) { u32 ability; //padapter->Wifi_Error_Status = WIFI_TX_HANG; rtw_hal_get_def_var(padapter, HAL_DEF_DBG_DM_FUNC, &ability); DBG_871X("%s tx hang %s\n", __FUNCTION__, (ability & ODM_BB_ADAPTIVITY)? "ODM_BB_ADAPTIVITY" : ""); if (!(ability & ODM_BB_ADAPTIVITY)) rtw_hal_sreset_reset(padapter); } } } } #endif // #ifdef CONFIG_USB_HCI if (psrtpriv->dbg_trigger_point == SRESET_TGP_XMIT_STATUS) { psrtpriv->dbg_trigger_point = SRESET_TGP_NULL; rtw_hal_sreset_reset(padapter); return; } }
void rtw_odm_dbg_level_msg(void *sel, _adapter *adapter) { u32 dbg_level; int i; rtw_hal_get_def_var(adapter, HW_DEF_ODM_DBG_LEVEL, &dbg_level); DBG_871X_SEL_NL(sel, "odm.DebugLevel = %u\n", dbg_level); for (i=0;i<RTW_ODM_DBG_LEVEL_NUM;i++) { if (odm_dbg_level_str[i]) DBG_871X_SEL_NL(sel, "%u %s\n", i, odm_dbg_level_str[i]); } }
void rtw_odm_dbg_comp_msg(void *sel, _adapter *adapter) { u64 dbg_comp; int i; rtw_hal_get_def_var(adapter, HW_DEF_ODM_DBG_FLAG, &dbg_comp); DBG_871X_SEL_NL(sel, "odm.DebugComponents = 0x%016llx \n", dbg_comp); for (i=0;i<RTW_ODM_COMP_MAX;i++) { if (odm_comp_str[i]) DBG_871X_SEL_NL(sel, "%cBIT%-2d %s\n", (BIT0 << i) & dbg_comp ? '+' : ' ', i, odm_comp_str[i]); } }
s32 rtw_hal_macid_wakeup(PADAPTER padapter, u32 macid) { u8 support; support = _FALSE; rtw_hal_get_def_var(padapter, HAL_DEF_MACID_SLEEP, &support); if (_FALSE == support) return _FAIL; rtw_hal_set_hwreg(padapter, HW_VAR_MACID_WAKEUP, (u8*)&macid); return _SUCCESS; }
s32 rtw_hal_macid_wakeup(struct adapter *padapter, u32 macid) { u8 support; support = false; rtw_hal_get_def_var(padapter, HAL_DEF_MACID_SLEEP, &support); if (false == support) return _FAIL; rtw_hal_set_hwreg(padapter, HW_VAR_MACID_WAKEUP, (u8 *)&macid); return _SUCCESS; }
s32 rtw_hal_macid_sleep(PADAPTER padapter, u32 macid) { u8 support; support = false; rtw_hal_get_def_var(padapter, HAL_DEF_MACID_SLEEP, &support); if (false == support) return _FAIL; rtw_hal_set_hwreg(padapter, HW_VAR_MACID_SLEEP, (u8*)&macid); return _SUCCESS; }
void rtw_odm_dbg_level_msg(void *sel, _adapter *adapter) { HAL_DATA_TYPE *pHalData = GET_HAL_DATA(adapter); DM_ODM_T *odm = &pHalData->odmpriv; int cnt = 0; u32 dbg_level; int i; rtw_hal_get_def_var(adapter, HW_DEF_ODM_DBG_LEVEL, &dbg_level); DBG_871X_SEL_NL(sel, "odm.DebugLevel = %u\n", dbg_level); for (i=0;i<RTW_ODM_DBG_LEVEL_NUM;i++) { if (odm_dbg_level_str[i]) DBG_871X_SEL_NL(sel, "%u %s\n", i, odm_dbg_level_str[i]); } }
static int __init rtw_mem_init(void) { int i; u32 max_recvbuf_sz = 0; SIZE_PTR tmpaddr=0; SIZE_PTR alignment=0; struct sk_buff *pskb=NULL; printk("%s\n", __func__); #ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX for(i=0; i<NR_RECVBUFF; i++) { rtk_buf_mem[i] = usb_buffer_alloc(dev, size, (in_interrupt() ? GFP_ATOMIC : GFP_KERNEL), dma); } #endif //CONFIG_USE_USB_BUFFER_ALLOC_RX skb_queue_head_init(&rtk_skb_mem_q); rtw_hal_get_def_var(padapter, HAL_DEF_MAX_RECVBUF_SZ, &max_recvbuf_sz); if (max_recvbuf_sz == 0) max_recvbuf_sz = MAX_RECVBUF_SZ; DBG_871X("%s: max_recvbuf_sz: %d\n", __func__, max_recvbuf_sz); for(i=0; i<NR_PREALLOC_RECV_SKB; i++) { pskb = __dev_alloc_skb(max_recvbuf_sz + RECVBUFF_ALIGN_SZ, in_interrupt() ? GFP_ATOMIC : GFP_KERNEL); if(pskb) { tmpaddr = (SIZE_PTR)pskb->data; alignment = tmpaddr & (RECVBUFF_ALIGN_SZ-1); skb_reserve(pskb, (RECVBUFF_ALIGN_SZ - alignment)); skb_queue_tail(&rtk_skb_mem_q, pskb); } else { printk("%s, alloc skb memory fail!\n", __func__); } pskb=NULL; } printk("%s, rtk_skb_mem_q len : %d\n", __func__, skb_queue_len(&rtk_skb_mem_q)); return 0; }
void rtw_odm_dbg_comp_msg(void *sel, _adapter *adapter) { HAL_DATA_TYPE *pHalData = GET_HAL_DATA(adapter); DM_ODM_T *odm = &pHalData->odmpriv; int cnt = 0; u64 dbg_comp; int i; rtw_hal_get_def_var(adapter, HW_DEF_ODM_DBG_FLAG, &dbg_comp); DBG_871X_SEL_NL(sel, "odm.DebugComponents = 0x%016llx \n", dbg_comp); for (i=0;i<RTW_ODM_COMP_MAX;i++) { if (odm_comp_str[i]) DBG_871X_SEL_NL(sel, "%cBIT%-2d %s\n", (BIT0 << i) & dbg_comp ? '+' : ' ', i, odm_comp_str[i]); } }
int _rtw_odm_dbg_level_msg(_adapter *adapter, char *buf, int len) { HAL_DATA_TYPE *pHalData = GET_HAL_DATA(adapter); DM_ODM_T *odm = &pHalData->odmpriv; int cnt = 0; u32 dbg_level; int i; rtw_hal_get_def_var(adapter, HW_DEF_ODM_DBG_LEVEL, &dbg_level); cnt += snprintf(buf+cnt, len-cnt, "odm.DebugDebugLevel = %u\n", dbg_level); for (i=0;i<RTW_ODM_DBG_LEVEL_NUM;i++) { if (odm_dbg_level_str[i]) cnt += snprintf(buf+cnt, len-cnt, "%u %s\n", i, odm_dbg_level_str[i]); } return cnt; }
int _rtw_odm_dbg_comp_msg(_adapter *adapter, char *buf, int len) { HAL_DATA_TYPE *pHalData = GET_HAL_DATA(adapter); DM_ODM_T *odm = &pHalData->odmpriv; int cnt = 0; u64 dbg_comp; int i; rtw_hal_get_def_var(adapter, HW_DEF_ODM_DBG_FLAG, &dbg_comp); cnt += snprintf(buf+cnt, len-cnt, "odm.DebugComponents = 0x%016llx \n", dbg_comp); for (i=0;i<RTW_ODM_COMP_MAX;i++) { if (odm_comp_str[i]) cnt += snprintf(buf+cnt, len-cnt, "%cBIT%-2d %s\n", (BIT0 << i) & dbg_comp ? '+' : ' ', i, odm_comp_str[i]); } return cnt; }
s32 rtw_hal_macid_wakeup(PADAPTER padapter, u8 macid) { struct dvobj_priv *dvobj = adapter_to_dvobj(padapter); struct macid_ctl_t *macid_ctl = dvobj_to_macidctl(dvobj); u8 support; support = _FALSE; rtw_hal_get_def_var(padapter, HAL_DEF_MACID_SLEEP, &support); if (_FALSE == support) return _FAIL; if (macid >= macid_ctl->num) { DBG_871X_LEVEL(_drv_err_, FUNC_ADPT_FMT": Invalid macid(%u)\n", FUNC_ADPT_ARG(padapter), macid); return _FAIL; } rtw_hal_set_hwreg(padapter, HW_VAR_MACID_WAKEUP, &macid); return _SUCCESS; }
u8 rtw_antenna_select_cmd(struct adapter *padapter, u8 antenna, u8 enqueue) { struct cmd_obj *ph2c; struct drvextra_cmd_parm *pdrvextra_cmd_parm; struct cmd_priv *pcmdpriv = &padapter->cmdpriv; u8 support_ant_div; u8 res = _SUCCESS; rtw_hal_get_def_var(padapter, HAL_DEF_IS_SUPPORT_ANT_DIV, &support_ant_div); if (!support_ant_div) return res; if (enqueue) { ph2c = kzalloc(sizeof(struct cmd_obj), GFP_KERNEL); if (ph2c == NULL) { res = _FAIL; goto exit; } pdrvextra_cmd_parm = kzalloc(sizeof(struct drvextra_cmd_parm), GFP_KERNEL); if (pdrvextra_cmd_parm == NULL) { kfree(ph2c); res = _FAIL; goto exit; } pdrvextra_cmd_parm->ec_id = ANT_SELECT_WK_CID; pdrvextra_cmd_parm->type_size = antenna; pdrvextra_cmd_parm->pbuf = NULL; init_h2fwcmd_w_parm_no_rsp(ph2c, pdrvextra_cmd_parm, GEN_CMD_CODE(_Set_Drv_Extra)); res = rtw_enqueue_cmd(pcmdpriv, ph2c); } else { antenna_select_wk_hdl(padapter, antenna); } exit: return res; }
void _dbg_dump_tx_info(_adapter *padapter,int frame_tag, u8 *ptxdesc) { u8 bDumpTxPkt; u8 bDumpTxDesc = _FALSE; rtw_hal_get_def_var(padapter, HAL_DEF_DBG_DUMP_TXPKT, &(bDumpTxPkt)); if(bDumpTxPkt ==1){//dump txdesc for data frame DBG_871X("dump tx_desc for data frame\n"); if((frame_tag&0x0f) == DATA_FRAMETAG){ bDumpTxDesc = _TRUE; } } else if(bDumpTxPkt ==2){//dump txdesc for mgnt frame DBG_871X("dump tx_desc for mgnt frame\n"); if((frame_tag&0x0f) == MGNT_FRAMETAG){ bDumpTxDesc = _TRUE; } } else if(bDumpTxPkt ==3){//dump early info } if(bDumpTxDesc){ // ptxdesc->txdw4 = cpu_to_le32(0x00001006);//RTS Rate=24M // ptxdesc->txdw6 = 0x6666f800; DBG_8192C("=====================================\n"); DBG_8192C("Offset00(0x%08x)\n",*((u32 *)(ptxdesc))); DBG_8192C("Offset04(0x%08x)\n",*((u32 *)(ptxdesc+4))); DBG_8192C("Offset08(0x%08x)\n",*((u32 *)(ptxdesc+8))); DBG_8192C("Offset12(0x%08x)\n",*((u32 *)(ptxdesc+12))); DBG_8192C("Offset16(0x%08x)\n",*((u32 *)(ptxdesc+16))); DBG_8192C("Offset20(0x%08x)\n",*((u32 *)(ptxdesc+20))); DBG_8192C("Offset24(0x%08x)\n",*((u32 *)(ptxdesc+24))); DBG_8192C("Offset28(0x%08x)\n",*((u32 *)(ptxdesc+28))); DBG_8192C("Offset32(0x%08x)\n",*((u32 *)(ptxdesc+32))); DBG_8192C("Offset36(0x%08x)\n",*((u32 *)(ptxdesc+36))); DBG_8192C("=====================================\n"); } }
void _dbg_dump_tx_info(_adapter *padapter,int frame_tag,struct tx_desc *ptxdesc) { u8 bDumpTxPkt; u8 bDumpTxDesc = _FALSE; rtw_hal_get_def_var(padapter, HAL_DEF_DBG_DUMP_TXPKT, &(bDumpTxPkt)); if(bDumpTxPkt ==1){//dump txdesc for data frame DBG_871X("dump tx_desc for data frame\n"); if((frame_tag&0x0f) == DATA_FRAMETAG){ bDumpTxDesc = _TRUE; } } else if(bDumpTxPkt ==2){//dump txdesc for mgnt frame DBG_871X("dump tx_desc for mgnt frame\n"); if((frame_tag&0x0f) == MGNT_FRAMETAG){ bDumpTxDesc = _TRUE; } } else if(bDumpTxPkt ==3){//dump early info } if(bDumpTxDesc){ // ptxdesc->txdw4 = cpu_to_le32(0x00001006);//RTS Rate=24M // ptxdesc->txdw6 = 0x6666f800; DBG_8192C("=====================================\n"); DBG_8192C("txdw0(0x%08x)\n",ptxdesc->txdw0); DBG_8192C("txdw1(0x%08x)\n",ptxdesc->txdw1); DBG_8192C("txdw2(0x%08x)\n",ptxdesc->txdw2); DBG_8192C("txdw3(0x%08x)\n",ptxdesc->txdw3); DBG_8192C("txdw4(0x%08x)\n",ptxdesc->txdw4); DBG_8192C("txdw5(0x%08x)\n",ptxdesc->txdw5); DBG_8192C("txdw6(0x%08x)\n",ptxdesc->txdw6); DBG_8192C("txdw7(0x%08x)\n",ptxdesc->txdw7); DBG_8192C("=====================================\n"); } }