rtl8188eu: Remove dead code for CONFIG_USE_USB_BUFFER_ALLOC_RX and remove CONFIG_TX_MCAST2UNI lines

Signed-off-by: Larry Finger <Larry.Finger@lwfinger.net>
This commit is contained in:
Larry Finger 2013-07-12 21:22:50 -05:00
parent 6583d55cd1
commit 7df5fff724
13 changed files with 1 additions and 445 deletions

View file

@ -360,15 +360,12 @@ void expire_timeout_chk(_adapter *padapter)
if (chk_sta_is_alive(psta) || !psta->expire_to) { if (chk_sta_is_alive(psta) || !psta->expire_to) {
psta->expire_to = pstapriv->expire_to; psta->expire_to = pstapriv->expire_to;
psta->keep_alive_trycnt = 0; psta->keep_alive_trycnt = 0;
#ifdef CONFIG_TX_MCAST2UNI
psta->under_exist_checking = 0; psta->under_exist_checking = 0;
#endif /* CONFIG_TX_MCAST2UNI */
} else { } else {
psta->expire_to--; psta->expire_to--;
} }
#ifndef CONFIG_ACTIVE_KEEP_ALIVE_CHECK #ifndef CONFIG_ACTIVE_KEEP_ALIVE_CHECK
#ifdef CONFIG_TX_MCAST2UNI
#ifdef CONFIG_80211N_HT #ifdef CONFIG_80211N_HT
if ( (psta->flags & WLAN_STA_HT) && (psta->htpriv.agg_enable_bitmap || psta->under_exist_checking) ) { if ( (psta->flags & WLAN_STA_HT) && (psta->htpriv.agg_enable_bitmap || psta->under_exist_checking) ) {
/* check sta by delba(addba) for 11n STA */ /* check sta by delba(addba) for 11n STA */
@ -387,7 +384,6 @@ void expire_timeout_chk(_adapter *padapter)
} }
} }
#endif /* CONFIG_80211N_HT */ #endif /* CONFIG_80211N_HT */
#endif /* CONFIG_TX_MCAST2UNI */
#endif /* CONFIG_ACTIVE_KEEP_ALIVE_CHECK */ #endif /* CONFIG_ACTIVE_KEEP_ALIVE_CHECK */
if (psta->expire_to <= 0) { if (psta->expire_to <= 0) {

View file

@ -117,10 +117,8 @@ exit:
_func_exit_; _func_exit_;
return res; return res;
} }
void rtw_mfree_recv_priv_lock(struct recv_priv *precvpriv);
void rtw_mfree_recv_priv_lock(struct recv_priv *precvpriv) void rtw_mfree_recv_priv_lock(struct recv_priv *precvpriv)
{ {
_rtw_spinlock_free(&precvpriv->lock); _rtw_spinlock_free(&precvpriv->lock);
@ -133,10 +131,6 @@ void rtw_mfree_recv_priv_lock(struct recv_priv *precvpriv)
_rtw_spinlock_free(&precvpriv->recv_pending_queue.lock); _rtw_spinlock_free(&precvpriv->recv_pending_queue.lock);
_rtw_spinlock_free(&precvpriv->free_recv_buf_queue.lock); _rtw_spinlock_free(&precvpriv->free_recv_buf_queue.lock);
#ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX
_rtw_spinlock_free(&precvpriv->recv_buf_pending_queue.lock);
#endif /* CONFIG_USE_USB_BUFFER_ALLOC_RX */
} }
void _rtw_free_recv_priv (struct recv_priv *precvpriv) void _rtw_free_recv_priv (struct recv_priv *precvpriv)

View file

@ -67,9 +67,7 @@ _func_enter_;
psta->ht_20mhz_set = 0; psta->ht_20mhz_set = 0;
#endif #endif
#ifdef CONFIG_TX_MCAST2UNI
psta->under_exist_checking = 0; psta->under_exist_checking = 0;
#endif /* CONFIG_TX_MCAST2UNI */
psta->keep_alive_trycnt = 0; psta->keep_alive_trycnt = 0;
@ -563,9 +561,7 @@ _func_enter_;
#endif /* CONFIG_NATIVEAP_MLME */ #endif /* CONFIG_NATIVEAP_MLME */
#ifdef CONFIG_TX_MCAST2UNI
psta->under_exist_checking = 0; psta->under_exist_checking = 0;
#endif /* CONFIG_TX_MCAST2UNI */
#endif /* CONFIG_AP_MODE */ #endif /* CONFIG_AP_MODE */

View file

@ -84,10 +84,6 @@ int rtl8188eu_init_recv_priv(_adapter *padapter)
/* init recv_buf */ /* init recv_buf */
_rtw_init_queue(&precvpriv->free_recv_buf_queue); _rtw_init_queue(&precvpriv->free_recv_buf_queue);
#ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX
_rtw_init_queue(&precvpriv->recv_buf_pending_queue);
#endif /* CONFIG_USE_USB_BUFFER_ALLOC_RX */
precvpriv->pallocated_recv_buf = rtw_zmalloc(NR_RECVBUFF *sizeof(struct recv_buf) + 4); precvpriv->pallocated_recv_buf = rtw_zmalloc(NR_RECVBUFF *sizeof(struct recv_buf) + 4);
if (precvpriv->pallocated_recv_buf==NULL){ if (precvpriv->pallocated_recv_buf==NULL){
res= _FAIL; res= _FAIL;

View file

@ -1479,22 +1479,13 @@ HAL_INIT_PROFILE_TAG(HAL_INIT_STAGES_MISC02);
rtw_write8(Adapter, REG_EARLY_MODE_CONTROL, 0); rtw_write8(Adapter, REG_EARLY_MODE_CONTROL, 0);
} }
#if defined(CONFIG_TX_MCAST2UNI)
#ifdef CONFIG_CHECK_AC_LIFETIME #ifdef CONFIG_CHECK_AC_LIFETIME
/* Enable lifetime check for the four ACs */ /* Enable lifetime check for the four ACs */
rtw_write8(Adapter, REG_LIFETIME_EN, 0x0F); rtw_write8(Adapter, REG_LIFETIME_EN, 0x0F);
#endif /* CONFIG_CHECK_AC_LIFETIME */ #endif /* CONFIG_CHECK_AC_LIFETIME */
#ifdef CONFIG_TX_MCAST2UNI
rtw_write16(Adapter, REG_PKT_VO_VI_LIFE_TIME, 0x0400); /* unit: 256us. 256ms */ rtw_write16(Adapter, REG_PKT_VO_VI_LIFE_TIME, 0x0400); /* unit: 256us. 256ms */
rtw_write16(Adapter, REG_PKT_BE_BK_LIFE_TIME, 0x0400); /* unit: 256us. 256ms */ rtw_write16(Adapter, REG_PKT_BE_BK_LIFE_TIME, 0x0400); /* unit: 256us. 256ms */
#else /* CONFIG_TX_MCAST2UNI */
rtw_write16(Adapter, REG_PKT_VO_VI_LIFE_TIME, 0x3000); /* unit: 256us. 3s */
rtw_write16(Adapter, REG_PKT_BE_BK_LIFE_TIME, 0x3000); /* unit: 256us. 3s */
#endif /* CONFIG_TX_MCAST2UNI */
#endif /* CONFIG_TX_MCAST2UNI */
#ifdef CONFIG_LED #ifdef CONFIG_LED
_InitHWLed(Adapter); _InitHWLed(Adapter);

View file

@ -513,376 +513,6 @@ static s32 pre_recv_entry(union recv_frame *precvframe, struct recv_stat *prxsta
return _SUCCESS; return _SUCCESS;
} }
#ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX
static int recvbuf2recvframe(_adapter *padapter, struct recv_buf *precvbuf)
{
u8 *pbuf;
u8 shift_sz = 0;
u16 pkt_cnt, drvinfo_sz;
u32 pkt_offset, skb_len, alloc_sz;
s32 transfer_len;
struct recv_stat *prxstat;
struct phy_stat *pphy_status = NULL;
_pkt *pkt_copy = NULL;
union recv_frame *precvframe = NULL;
struct rx_pkt_attrib *pattrib = NULL;
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
struct recv_priv *precvpriv = &padapter->recvpriv;
_queue *pfree_recv_queue = &precvpriv->free_recv_queue;
transfer_len = (s32)precvbuf->transfer_len;
pbuf = precvbuf->pbuf;
prxstat = (struct recv_stat *)pbuf;
pkt_cnt = (le32_to_cpu(prxstat->rxdw2)>>16) & 0xff;
do{
RT_TRACE(_module_rtl871x_recv_c_, _drv_info_,
("recvbuf2recvframe: rxdesc=offsset 0:0x%08x, 4:0x%08x, 8:0x%08x, C:0x%08x\n",
prxstat->rxdw0, prxstat->rxdw1, prxstat->rxdw2, prxstat->rxdw4));
prxstat = (struct recv_stat *)pbuf;
precvframe = rtw_alloc_recvframe(pfree_recv_queue);
if (precvframe==NULL)
{
RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,("recvbuf2recvframe: precvframe==NULL\n"));
DBG_88E("%s()-%d: rtw_alloc_recvframe() failed! RX Drop!\n", __func__, __LINE__);
goto _exit_recvbuf2recvframe;
}
_rtw_init_listhead(&precvframe->u.hdr.list);
precvframe->u.hdr.precvbuf = NULL; /* can't access the precvbuf for new arch. */
precvframe->u.hdr.len=0;
update_recvframe_attrib_88e(precvframe, prxstat);
pattrib = &precvframe->u.hdr.attrib;
if ((pattrib->crc_err) || (pattrib->icv_err))
{
if (pattrib->pkt_len>2000){
DBG_88E("%s: RX Warning! crc_err=%d icv_err=%d, skip!\n", __func__, pattrib->crc_err, pattrib->icv_err);
#ifdef CONFIG_SPECIAL_SETTING_FOR_FUNAI_TV
printk("%s: RX Warning!pkt_len= %d, data rate=0x%02x\n", __func__,pattrib->pkt_len,pattrib->mcs_rate);
#endif
}
rtw_free_recvframe(precvframe, pfree_recv_queue);
goto _exit_recvbuf2recvframe;
}
if ( (pattrib->physt) && (pattrib->pkt_rpt_type == NORMAL_RX))
{
pphy_status = (struct phy_stat *)(pbuf + RXDESC_OFFSET);
}
pkt_offset = RXDESC_SIZE + pattrib->drvinfo_sz + pattrib->shift_sz + pattrib->pkt_len;
if ((pattrib->pkt_len<=0) || (pkt_offset>transfer_len))
{
RT_TRACE(_module_rtl871x_recv_c_,_drv_info_,("recvbuf2recvframe: pkt_len<=0\n"));
DBG_88E("%s()-%d: RX Warning!\n", __func__, __LINE__);
rtw_free_recvframe(precvframe, pfree_recv_queue);
goto _exit_recvbuf2recvframe;
}
/* Modified by Albert 20101213 */
/* For 8 bytes IP header alignment. */
if (pattrib->qos) /* Qos data, wireless lan header length is 26 */
{
shift_sz = 6;
}
else
{
shift_sz = 0;
}
skb_len = pattrib->pkt_len;
/* for first fragment packet, driver need allocate 1536+drvinfo_sz+RXDESC_SIZE to defrag packet. */
/* modify alloc_sz for recvive crc error packet by thomas 2011-06-02 */
if ((pattrib->mfrag == 1)&&(pattrib->frag_num == 0)){
if (skb_len <= 1650)
alloc_sz = 1664;
else
alloc_sz = skb_len + 14;
}
else {
alloc_sz = skb_len;
/* 6 is for IP header 8 bytes alignment in QoS packet case. */
/* 8 is for skb->data 4 bytes alignment. */
alloc_sz += 14;
}
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18)) /* www.mail-archive.com/netdev@vger.kernel.org/msg17214.html */
pkt_copy = dev_alloc_skb(alloc_sz);
#else
pkt_copy = netdev_alloc_skb(padapter->pnetdev, alloc_sz);
#endif
if (pkt_copy)
{
pkt_copy->dev = padapter->pnetdev;
precvframe->u.hdr.pkt = pkt_copy;
precvframe->u.hdr.rx_head = pkt_copy->data;
precvframe->u.hdr.rx_end = pkt_copy->data + alloc_sz;
skb_reserve( pkt_copy, 8 - ((SIZE_PTR)( pkt_copy->data ) & 7 ));/* force pkt_copy->data at 8-byte alignment address */
skb_reserve( pkt_copy, shift_sz );/* force ip_hdr at 8-byte alignment address according to shift_sz. */
_rtw_memcpy(pkt_copy->data, (pbuf + pattrib->drvinfo_sz + RXDESC_SIZE), skb_len);
precvframe->u.hdr.rx_data = precvframe->u.hdr.rx_tail = pkt_copy->data;
}
else
{
DBG_88E("recvbuf2recvframe:can not allocate memory for skb copy\n");
precvframe->u.hdr.pkt = NULL;
rtw_free_recvframe(precvframe, pfree_recv_queue);
goto _exit_recvbuf2recvframe;
}
recvframe_put(precvframe, skb_len);
#ifdef CONFIG_USB_RX_AGGREGATION
switch (pHalData->UsbRxAggMode)
{
case USB_RX_AGG_DMA:
case USB_RX_AGG_MIX:
pkt_offset = (u16)_RND128(pkt_offset);
break;
case USB_RX_AGG_USB:
pkt_offset = (u16)_RND4(pkt_offset);
break;
case USB_RX_AGG_DISABLE:
default:
break;
}
#endif
if (pattrib->pkt_rpt_type == NORMAL_RX)/* Normal rx packet */
{
if (pattrib->physt)
update_recvframe_phyinfo_88e(precvframe, (struct phy_stat*)pphy_status);
if (rtw_recv_entry(precvframe) != _SUCCESS) {
RT_TRACE(_module_rtl871x_recv_c_,_drv_err_,
("recvbuf2recvframe: rtw_recv_entry(precvframe) != _SUCCESS\n"));
}
}
else{ /* pkt_rpt_type == TX_REPORT1-CCX, TX_REPORT2-TX RTP,HIS_REPORT-USB HISR RTP */
/* enqueue recvframe to txrtp queue */
if (pattrib->pkt_rpt_type == TX_REPORT1){
/* CCX-TXRPT ack for xmit mgmt frames. */
handle_txrpt_ccx_88e(padapter, precvframe->u.hdr.rx_data);
}
else if (pattrib->pkt_rpt_type == TX_REPORT2){
ODM_RA_TxRPT2Handle_8188E(
&pHalData->odmpriv,
precvframe->u.hdr.rx_data,
pattrib->pkt_len,
pattrib->MacIDValidEntry[0],
pattrib->MacIDValidEntry[1]
);
}
else if (pattrib->pkt_rpt_type == HIS_REPORT)
{
#ifdef CONFIG_SUPPORT_USB_INT
interrupt_handler_8188eu(padapter,pattrib->pkt_len,precvframe->u.hdr.rx_data);
#endif
}
rtw_free_recvframe(precvframe, pfree_recv_queue);
}
pkt_cnt--;
transfer_len -= pkt_offset;
pbuf += pkt_offset;
precvframe = NULL;
pkt_copy = NULL;
if (transfer_len>0 && pkt_cnt==0)
pkt_cnt = (le32_to_cpu(prxstat->rxdw2)>>16) & 0xff;
}while ((transfer_len>0) && (pkt_cnt>0));
_exit_recvbuf2recvframe:
return _SUCCESS;
}
void rtl8188eu_recv_tasklet(void *priv)
{
struct recv_buf *precvbuf = NULL;
_adapter *padapter = (_adapter*)priv;
struct recv_priv *precvpriv = &padapter->recvpriv;
while (NULL != (precvbuf = rtw_dequeue_recvbuf(&precvpriv->recv_buf_pending_queue)))
{
if ((padapter->bDriverStopped == true)||(padapter->bSurpriseRemoved== true))
{
DBG_88E("recv_tasklet => bDriverStopped or bSurpriseRemoved\n");
break;
}
recvbuf2recvframe(padapter, precvbuf);
rtw_read_port(padapter, precvpriv->ff_hwaddr, 0, (unsigned char *)precvbuf);
}
}
static void usb_read_port_complete(struct urb *purb, struct pt_regs *regs)
{
struct recv_buf *precvbuf = (struct recv_buf *)purb->context;
_adapter *padapter =(_adapter *)precvbuf->adapter;
struct recv_priv *precvpriv = &padapter->recvpriv;
RT_TRACE(_module_hci_ops_os_c_,_drv_err_,("usb_read_port_complete!!!\n"));
precvpriv->rx_pending_cnt --;
if (padapter->bSurpriseRemoved || padapter->bDriverStopped||padapter->bReadPortCancel)
{
RT_TRACE(_module_hci_ops_os_c_,_drv_err_,("usb_read_port_complete:bDriverStopped(%d) OR bSurpriseRemoved(%d)\n", padapter->bDriverStopped, padapter->bSurpriseRemoved));
DBG_88E("%s() RX Warning! bDriverStopped(%d) OR bSurpriseRemoved(%d) bReadPortCancel(%d)\n",
__func__,padapter->bDriverStopped, padapter->bSurpriseRemoved,padapter->bReadPortCancel);
goto exit;
}
if (purb->status==0)/* SUCCESS */
{
if ((purb->actual_length > MAX_RECVBUF_SZ) || (purb->actual_length < RXDESC_SIZE))
{
RT_TRACE(_module_hci_ops_os_c_,_drv_err_,("usb_read_port_complete: (purb->actual_length > MAX_RECVBUF_SZ) || (purb->actual_length < RXDESC_SIZE)\n"));
rtw_read_port(padapter, precvpriv->ff_hwaddr, 0, (unsigned char *)precvbuf);
}
else
{
rtw_reset_continual_urb_error(adapter_to_dvobj(padapter));
precvbuf->transfer_len = purb->actual_length;
rtw_enqueue_recvbuf(precvbuf, &precvpriv->recv_buf_pending_queue);
tasklet_schedule(&precvpriv->recv_tasklet);
}
}
else
{
RT_TRACE(_module_hci_ops_os_c_,_drv_err_,("usb_read_port_complete : purb->status(%d) != 0\n", purb->status));
DBG_88E("###=> usb_read_port_complete => urb status(%d)\n", purb->status);
if (rtw_inc_and_chk_continual_urb_error(adapter_to_dvobj(padapter)) == true ){
padapter->bSurpriseRemoved = true;
}
switch (purb->status) {
case -EINVAL:
case -EPIPE:
case -ENODEV:
case -ESHUTDOWN:
RT_TRACE(_module_hci_ops_os_c_,_drv_err_,("usb_read_port_complete:bSurpriseRemoved=true\n"));
/* fall through here */
case -ENOENT:
padapter->bDriverStopped=true;
RT_TRACE(_module_hci_ops_os_c_,_drv_err_,("usb_read_port_complete:bDriverStopped=true\n"));
break;
case -EPROTO:
case -EOVERFLOW:
#ifdef DBG_CONFIG_ERROR_DETECT
{
HAL_DATA_TYPE *pHalData = GET_HAL_DATA(padapter);
pHalData->srestpriv.Wifi_Error_Status = USB_READ_PORT_FAIL;
}
#endif
rtw_read_port(padapter, precvpriv->ff_hwaddr, 0, (unsigned char *)precvbuf);
break;
case -EINPROGRESS:
DBG_88E("ERROR: URB IS IN PROGRESS!/n");
break;
default:
break;
}
}
exit:
_func_exit_;
}
static u32 usb_read_port(struct intf_hdl *pintfhdl, u32 addr, u32 cnt, u8 *rmem)
{
int err;
unsigned int pipe;
u32 ret = _SUCCESS;
PURB purb = NULL;
struct recv_buf *precvbuf = (struct recv_buf *)rmem;
_adapter *adapter = pintfhdl->padapter;
struct dvobj_priv *pdvobj = adapter_to_dvobj(adapter);
struct recv_priv *precvpriv = &adapter->recvpriv;
struct usb_device *pusbd = pdvobj->pusbdev;
_func_enter_;
if (adapter->bDriverStopped || adapter->bSurpriseRemoved ||adapter->pwrctrlpriv.pnp_bstop_trx)
{
RT_TRACE(_module_hci_ops_os_c_,_drv_err_,("usb_read_port:( padapter->bDriverStopped ||padapter->bSurpriseRemoved ||adapter->pwrctrlpriv.pnp_bstop_trx)!!!\n"));
return _FAIL;
}
if (precvbuf !=NULL)
{
rtl8188eu_init_recvbuf(adapter, precvbuf);
if (precvbuf->pbuf)
{
precvpriv->rx_pending_cnt++;
purb = precvbuf->purb;
/* translate DMA FIFO addr to pipehandle */
pipe = ffaddr2pipehdl(pdvobj, addr);
usb_fill_bulk_urb(purb, pusbd, pipe,
precvbuf->pbuf,
MAX_RECVBUF_SZ,
usb_read_port_complete,
precvbuf);/* context is precvbuf */
purb->transfer_dma = precvbuf->dma_transfer_addr;
purb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
err = usb_submit_urb(purb, GFP_ATOMIC);
if ((err) && (err != (-EPERM)))
{
RT_TRACE(_module_hci_ops_os_c_,_drv_err_,("cannot submit rx in-token(err=0x%.8x), URB_STATUS =0x%.8x", err, purb->status));
DBG_88E("cannot submit rx in-token(err = 0x%08x),urb_status = %d\n",err,purb->status);
ret = _FAIL;
}
}
}
else
{
RT_TRACE(_module_hci_ops_os_c_,_drv_err_,("usb_read_port:precvbuf ==NULL\n"));
ret = _FAIL;
}
_func_exit_;
return ret;
}
#else /* CONFIG_USE_USB_BUFFER_ALLOC_RX */
static int recvbuf2recvframe(_adapter *padapter, _pkt *pskb) static int recvbuf2recvframe(_adapter *padapter, _pkt *pskb)
{ {
u8 *pbuf; u8 *pbuf;
@ -1332,7 +962,6 @@ _func_exit_;
return ret; return ret;
} }
#endif /* CONFIG_USE_USB_BUFFER_ALLOC_RX */
void rtl8188eu_xmit_tasklet(void *priv) void rtl8188eu_xmit_tasklet(void *priv)
{ {

View file

@ -166,10 +166,6 @@
#define CONFIG_BR_EXT_BRNAME "br0" #define CONFIG_BR_EXT_BRNAME "br0"
#endif // CONFIG_BR_EXT #endif // CONFIG_BR_EXT
#define CONFIG_TX_MCAST2UNI // Support IP multicast->unicast
//#define CONFIG_CHECK_AC_LIFETIME // Check packet lifetime of 4 ACs.
/* /*
* Interface Related Config * Interface Related Config
*/ */
@ -185,7 +181,6 @@
* USB VENDOR REQ BUFFER ALLOCATION METHOD * USB VENDOR REQ BUFFER ALLOCATION METHOD
* if not set we'll use function local variable (stack memory) * if not set we'll use function local variable (stack memory)
*/ */
//#define CONFIG_USB_VENDOR_REQ_BUFFER_DYNAMIC_ALLOCATE
#define CONFIG_USB_VENDOR_REQ_BUFFER_PREALLOC #define CONFIG_USB_VENDOR_REQ_BUFFER_PREALLOC
#define CONFIG_USB_VENDOR_REQ_MUTEX #define CONFIG_USB_VENDOR_REQ_MUTEX

View file

@ -248,10 +248,6 @@ struct recv_priv
struct ifqueue rx_indicate_queue; struct ifqueue rx_indicate_queue;
#endif // CONFIG_RX_INDICATE_QUEUE #endif // CONFIG_RX_INDICATE_QUEUE
#ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX
_queue recv_buf_pending_queue;
#endif // CONFIG_USE_USB_BUFFER_ALLOC_RX
u8 *pallocated_recv_buf; u8 *pallocated_recv_buf;
u8 *precv_buf; // 4 alignment u8 *precv_buf; // 4 alignment
_queue free_recv_buf_queue; _queue free_recv_buf_queue;

View file

@ -215,10 +215,7 @@ struct sta_info {
u8 dev_name[32]; u8 dev_name[32];
#endif //CONFIG_P2P #endif //CONFIG_P2P
#ifdef CONFIG_TX_MCAST2UNI
u8 under_exist_checking; u8 under_exist_checking;
#endif // CONFIG_TX_MCAST2UNI
u8 keep_alive_trycnt; u8 keep_alive_trycnt;
#endif // CONFIG_AP_MODE #endif // CONFIG_AP_MODE

View file

@ -1138,9 +1138,7 @@ enum P2P_PS_MODE
#define WFD_DEVINFO_PC_TDLS 0x0080 #define WFD_DEVINFO_PC_TDLS 0x0080
#define WFD_DEVINFO_HDCP_SUPPORT 0x0100 #define WFD_DEVINFO_HDCP_SUPPORT 0x0100
#ifdef CONFIG_TX_MCAST2UNI
#define IP_MCAST_MAC(mac) ((mac[0]==0x01)&&(mac[1]==0x00)&&(mac[2]==0x5e)) #define IP_MCAST_MAC(mac) ((mac[0]==0x01)&&(mac[1]==0x00)&&(mac[2]==0x5e))
#define ICMPV6_MCAST_MAC(mac) ((mac[0]==0x33)&&(mac[1]==0x33)&&(mac[2]!=0xff)) #define ICMPV6_MCAST_MAC(mac) ((mac[0]==0x33)&&(mac[1]==0x33)&&(mac[2]!=0xff))
#endif // CONFIG_TX_MCAST2UNI
#endif // _WIFI_H_ #endif // _WIFI_H_

View file

@ -152,9 +152,7 @@ static int rtw_hwpwrp_detect = 0; //HW power ping detect 0:disable , 1:enable
static int rtw_hw_wps_pbc = 1; static int rtw_hw_wps_pbc = 1;
#ifdef CONFIG_TX_MCAST2UNI
int rtw_mc2u_disable = 0; int rtw_mc2u_disable = 0;
#endif // CONFIG_TX_MCAST2UNI
#ifdef CONFIG_80211D #ifdef CONFIG_80211D
static int rtw_80211d = 0; static int rtw_80211d = 0;
@ -236,9 +234,7 @@ module_param(rtw_fw_file_path, charp, 0644);
MODULE_PARM_DESC(rtw_fw_file_path, "The path of fw image"); MODULE_PARM_DESC(rtw_fw_file_path, "The path of fw image");
#endif //CONFIG_FILE_FWIMG #endif //CONFIG_FILE_FWIMG
#ifdef CONFIG_TX_MCAST2UNI
module_param(rtw_mc2u_disable, int, 0644); module_param(rtw_mc2u_disable, int, 0644);
#endif // CONFIG_TX_MCAST2UNI
#ifdef CONFIG_80211D #ifdef CONFIG_80211D
module_param(rtw_80211d, int, 0644); module_param(rtw_80211d, int, 0644);

View file

@ -81,38 +81,19 @@ int rtw_os_recvbuf_resource_alloc(_adapter *padapter, struct recv_buf *precvbuf)
precvbuf->len = 0; precvbuf->len = 0;
#ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX
precvbuf->pallocated_buf = rtw_usb_buffer_alloc(pusbd, (size_t)precvbuf->alloc_sz, &precvbuf->dma_transfer_addr);
precvbuf->pbuf = precvbuf->pallocated_buf;
if (precvbuf->pallocated_buf == NULL)
return _FAIL;
#endif //CONFIG_USE_USB_BUFFER_ALLOC_RX
return res; return res;
} }
//free os related resource in struct recv_buf //free os related resource in struct recv_buf
int rtw_os_recvbuf_resource_free(_adapter *padapter, struct recv_buf *precvbuf) int rtw_os_recvbuf_resource_free(_adapter *padapter, struct recv_buf *precvbuf)
{ {
int ret = _SUCCESS;
#ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX
struct dvobj_priv *pdvobjpriv = adapter_to_dvobj(padapter);
struct usb_device *pusbd = pdvobjpriv->pusbdev;
rtw_usb_buffer_free(pusbd, (size_t)precvbuf->alloc_sz, precvbuf->pallocated_buf, precvbuf->dma_transfer_addr);
precvbuf->pallocated_buf = NULL;
precvbuf->dma_transfer_addr = 0;
#endif //CONFIG_USE_USB_BUFFER_ALLOC_RX
if (precvbuf->purb) if (precvbuf->purb)
usb_free_urb(precvbuf->purb); usb_free_urb(precvbuf->purb);
if (precvbuf->pskb) if (precvbuf->pskb)
dev_kfree_skb_any(precvbuf->pskb); dev_kfree_skb_any(precvbuf->pskb);
return ret; return _SUCCESS;
} }
void rtw_handle_tkip_mic_err(_adapter *padapter,u8 bgroup) void rtw_handle_tkip_mic_err(_adapter *padapter,u8 bgroup)

View file

@ -275,7 +275,6 @@ static void rtw_check_xmit_resource(_adapter *padapter, _pkt *pkt)
#endif #endif
} }
#ifdef CONFIG_TX_MCAST2UNI
static int rtw_mlcst2unicst(_adapter *padapter, struct sk_buff *skb) static int rtw_mlcst2unicst(_adapter *padapter, struct sk_buff *skb)
{ {
struct sta_priv *pstapriv = &padapter->stapriv; struct sta_priv *pstapriv = &padapter->stapriv;
@ -326,16 +325,13 @@ static int rtw_mlcst2unicst(_adapter *padapter, struct sk_buff *skb)
dev_kfree_skb_any(skb); dev_kfree_skb_any(skb);
return true; return true;
} }
#endif // CONFIG_TX_MCAST2UNI
int rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev) int rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev)
{ {
_adapter *padapter = (_adapter *)rtw_netdev_priv(pnetdev); _adapter *padapter = (_adapter *)rtw_netdev_priv(pnetdev);
struct xmit_priv *pxmitpriv = &padapter->xmitpriv; struct xmit_priv *pxmitpriv = &padapter->xmitpriv;
#ifdef CONFIG_TX_MCAST2UNI
struct mlme_priv *pmlmepriv = &padapter->mlmepriv; struct mlme_priv *pmlmepriv = &padapter->mlmepriv;
#endif // CONFIG_TX_MCAST2UNI
s32 res = 0; s32 res = 0;
#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35)) #if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35))
u16 queue; u16 queue;
@ -355,7 +351,6 @@ _func_enter_;
rtw_check_xmit_resource(padapter, pkt); rtw_check_xmit_resource(padapter, pkt);
#ifdef CONFIG_TX_MCAST2UNI
if ( !rtw_mc2u_disable if ( !rtw_mc2u_disable
&& check_fwstate(pmlmepriv, WIFI_AP_STATE) == true && check_fwstate(pmlmepriv, WIFI_AP_STATE) == true
&& ( IP_MCAST_MAC(pkt->data) && ( IP_MCAST_MAC(pkt->data)
@ -368,12 +363,8 @@ _func_enter_;
if (res == true) { if (res == true) {
goto exit; goto exit;
} }
} else {
//DBG_88E("Stop M2U(%d, %d)! ", pxmitpriv->free_xmitframe_cnt, pxmitpriv->free_xmitbuf_cnt);
//DBG_88E("!m2u );
} }
} }
#endif // CONFIG_TX_MCAST2UNI
res = rtw_xmit(padapter, &pkt); res = rtw_xmit(padapter, &pkt);
if (res < 0) { if (res < 0) {