您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ DBG_871X函数代码示例

51自学网 2021-06-01 20:18:01
  C++
这篇教程C++ DBG_871X函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中DBG_871X函数的典型用法代码示例。如果您正苦于以下问题:C++ DBG_871X函数的具体用法?C++ DBG_871X怎么用?C++ DBG_871X使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了DBG_871X函数的28个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: _rtw_mutex_init

static struct dvobj_priv *gspi_dvobj_init(struct spi_device *spi){	int status = _FAIL;	struct dvobj_priv *dvobj = NULL;	PGSPI_DATA pgspi;_func_enter_;	dvobj = (struct dvobj_priv*)rtw_zmalloc(sizeof(*dvobj));	if (NULL == dvobj) {		goto exit;	}	_rtw_mutex_init(&dvobj->hw_init_mutex);	_rtw_mutex_init(&dvobj->h2c_fwcmd_mutex);	_rtw_mutex_init(&dvobj->setch_mutex);	_rtw_mutex_init(&dvobj->setbw_mutex);	//spi init	/* This is the only SPI value that we need to set here, the rest	 * comes from the board-peripherals file */	spi->bits_per_word = 32;	spi->max_speed_hz = 48 * 1000 * 1000;	//here mode 0 and 3 all ok,	//3 can run under 48M clock when SPI_CTL4 bit14 IS_FST set to 1	//0 can run under 24M clock, but can run under 48M when SPI_CTL4 bit14 IS_FST set to 1 and Ctl0_reg[1:0] set to 3.	spi->mode = SPI_MODE_3;	spi_setup(spi);#if 1	//DBG_8192C("set spi ==========================%d /n", spi_setup(spi));	DBG_871X("%s, mode = %d /n", __func__, spi->mode);	DBG_871X("%s, bit_per_word = %d /n", __func__, spi->bits_per_word);	DBG_871X("%s, speed = %d /n", __func__, spi->max_speed_hz);	DBG_871X("%s, chip_select = %d /n", __func__, spi->chip_select);	DBG_871X("%s, controller_data = %d /n", __func__, *(int *)spi->controller_data);	DBG_871X("%s, irq= %d /n", __func__, oob_irq);#endif	spi_set_drvdata(spi, dvobj);	pgspi = &dvobj->intf_data;	pgspi->func = spi;	if (gspi_init(dvobj) != _SUCCESS) {		DBG_871X("%s: initialize GSPI Failed!/n", __FUNCTION__);		goto free_dvobj;	}	status = _SUCCESS;free_dvobj:	if (status != _SUCCESS && dvobj) {		spi_set_drvdata(spi, NULL);		_rtw_mutex_free(&dvobj->hw_init_mutex);		_rtw_mutex_free(&dvobj->h2c_fwcmd_mutex);		_rtw_mutex_free(&dvobj->setch_mutex);		_rtw_mutex_free(&dvobj->setbw_mutex);		rtw_mfree((u8*)dvobj, sizeof(*dvobj));		dvobj = NULL;	}exit:_func_exit_;	return dvobj;}
开发者ID:DanDanBu,项目名称:uclinux,代码行数:67,


示例2: rtw_ps_processor

void rtw_ps_processor(_adapter*padapter){#ifdef CONFIG_P2P	struct wifidirect_info	*pwdinfo = &( padapter->wdinfo );#endif //CONFIG_P2P	struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv;	struct mlme_priv *pmlmepriv = &(padapter->mlmepriv);#ifdef SUPPORT_HW_RFOFF_DETECTED	rt_rf_power_state rfpwrstate;#endif //SUPPORT_HW_RFOFF_DETECTED	pwrpriv->ps_processing = _TRUE;#ifdef SUPPORT_HW_RFOFF_DETECTED	if(pwrpriv->bips_processing == _TRUE)		goto exit;	//DBG_871X("==> fw report state(0x%x)/n",rtw_read8(padapter,0x1ca));	if(padapter->pwrctrlpriv.bHWPwrPindetect)	{	#ifdef CONFIG_AUTOSUSPEND		if(padapter->registrypriv.usbss_enable)		{			if(pwrpriv->rf_pwrstate == rf_on)			{				if(padapter->net_closed == _TRUE)					pwrpriv->ps_flag = _TRUE;				rfpwrstate = RfOnOffDetect(padapter);				DBG_871X("@@@@- #1  %s==> rfstate:%s /n",__FUNCTION__,(rfpwrstate==rf_on)?"rf_on":"rf_off");				if(rfpwrstate!= pwrpriv->rf_pwrstate)				{					if(rfpwrstate == rf_off)					{						pwrpriv->change_rfpwrstate = rf_off;						pwrpriv->bkeepfwalive = _TRUE;						pwrpriv->brfoffbyhw = _TRUE;						autosuspend_enter(padapter);					}				}			}		}		else	#endif //CONFIG_AUTOSUSPEND		{			rfpwrstate = RfOnOffDetect(padapter);			DBG_871X("@@@@- #2  %s==> rfstate:%s /n",__FUNCTION__,(rfpwrstate==rf_on)?"rf_on":"rf_off");			if(rfpwrstate!= pwrpriv->rf_pwrstate)			{				if(rfpwrstate == rf_off)				{					pwrpriv->change_rfpwrstate = rf_off;					pwrpriv->brfoffbyhw = _TRUE;					padapter->bCardDisableWOHSM = _TRUE;					rtw_hw_suspend(padapter );				}				else				{					pwrpriv->change_rfpwrstate = rf_on;					rtw_hw_resume(padapter );				}				DBG_871X("current rf_pwrstate(%s)/n",(pwrpriv->rf_pwrstate == rf_off)?"rf_off":"rf_on");			}		}		pwrpriv->pwr_state_check_cnts ++;	}#endif //SUPPORT_HW_RFOFF_DETECTED	if (pwrpriv->ips_mode_req == IPS_NONE		#ifdef CONFIG_CONCURRENT_MODE		|| padapter->pbuddy_adapter->pwrctrlpriv.ips_mode_req == IPS_NONE		#endif	)		goto exit;	if (rtw_pwr_unassociated_idle(padapter) == _FALSE)		goto exit;	if((pwrpriv->rf_pwrstate == rf_on) && ((pwrpriv->pwr_state_check_cnts%4)==0))	{		DBG_871X("==>%s .fw_state(%x)/n",__FUNCTION__,get_fwstate(pmlmepriv));		pwrpriv->change_rfpwrstate = rf_off;		#ifdef CONFIG_AUTOSUSPEND		if(padapter->registrypriv.usbss_enable)		{			if(pwrpriv->bHWPwrPindetect)				pwrpriv->bkeepfwalive = _TRUE;			if(padapter->net_closed == _TRUE)				pwrpriv->ps_flag = _TRUE;			padapter->bCardDisableWOHSM = _TRUE;			autosuspend_enter(padapter);		}		else if(pwrpriv->bHWPwrPindetect)		{//.........这里部分代码省略.........
开发者ID:lwfinger,项目名称:rtl8192cu,代码行数:101,


示例3: rtw_xmit_entry

int rtw_xmit_entry(_pkt *pkt, _nic_hdl pnetdev){	_adapter *padapter = (_adapter *)rtw_netdev_priv(pnetdev);	struct xmit_priv *pxmitpriv = &padapter->xmitpriv;#ifdef CONFIG_TX_MCAST2UNI	struct mlme_priv	*pmlmepriv = &padapter->mlmepriv;	extern int rtw_mc2u_disable;#endif	// CONFIG_TX_MCAST2UNI		s32 res = 0;#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35))	u16 queue;#endif_func_enter_;	RT_TRACE(_module_rtl871x_mlme_c_, _drv_info_, ("+xmit_enry/n"));	if (rtw_if_up(padapter) == _FALSE) {		RT_TRACE(_module_xmit_osdep_c_, _drv_err_, ("rtw_xmit_entry: rtw_if_up fail/n"));		#ifdef DBG_TX_DROP_FRAME		DBG_871X("DBG_TX_DROP_FRAME %s if_up fail/n", __FUNCTION__);		#endif		goto drop_packet;	}#if (LINUX_VERSION_CODE>=KERNEL_VERSION(2,6,35))	queue = skb_get_queue_mapping(pkt);	/* No free space for Tx, tx_worker is too slow */	if (pxmitpriv->hwxmits[queue].accnt > NR_XMITFRAME/2) {		//DBG_871X("%s(): stop netif_subqueue[%d]/n", __FUNCTION__, queue);		netif_stop_subqueue(padapter->pnetdev, queue);		return NETDEV_TX_BUSY;	}#endif#ifdef CONFIG_TX_MCAST2UNI	if ( !rtw_mc2u_disable		&& check_fwstate(pmlmepriv, WIFI_AP_STATE) == _TRUE		&& ( IP_MCAST_MAC(pkt->data)			|| ICMPV6_MCAST_MAC(pkt->data) )		)	{		if ( pxmitpriv->free_xmitframe_cnt > (NR_XMITFRAME/4) ) {			res = rtw_mlcst2unicst(padapter, pkt);			if (res == _TRUE) {				goto exit;			}		} else {			//DBG_871X("Stop M2U(%d, %d)! ", pxmitpriv->free_xmitframe_cnt, pxmitpriv->free_xmitbuf_cnt);			//DBG_871X("!m2u );		}	}	#endif	// CONFIG_TX_MCAST2UNI		res = rtw_xmit(padapter, &pkt);	if (res < 0) {		#ifdef DBG_TX_DROP_FRAME		DBG_871X("DBG_TX_DROP_FRAME %s rtw_xmit fail/n", __FUNCTION__);		#endif		goto drop_packet;	}	pxmitpriv->tx_pkts++;	RT_TRACE(_module_xmit_osdep_c_, _drv_info_, ("rtw_xmit_entry: tx_pkts=%d/n", (u32)pxmitpriv->tx_pkts));	goto exit;drop_packet:	pxmitpriv->tx_drop++;	dev_kfree_skb_any(pkt);	RT_TRACE(_module_xmit_osdep_c_, _drv_notice_, ("rtw_xmit_entry: drop, tx_drop=%d/n", (u32)pxmitpriv->tx_drop));exit:_func_exit_;	return 0;}
开发者ID:32743069,项目名称:amlogic_common_3050,代码行数:77,


示例4: rtw_init_drv_sw

u8 rtw_init_drv_sw(_adapter *padapter){	u8	ret8=_SUCCESS;_func_enter_;	RT_TRACE(_module_os_intfs_c_,_drv_info_,("+rtw_init_drv_sw/n"));	if ((rtw_init_cmd_priv(&padapter->cmdpriv)) == _FAIL)	{		RT_TRACE(_module_os_intfs_c_,_drv_err_,("/n Can't init cmd_priv/n"));		ret8=_FAIL;		goto exit;	}		padapter->cmdpriv.padapter=padapter;		if ((rtw_init_evt_priv(&padapter->evtpriv)) == _FAIL)	{		RT_TRACE(_module_os_intfs_c_,_drv_err_,("/n Can't init evt_priv/n"));		ret8=_FAIL;		goto exit;	}			if (rtw_init_mlme_priv(padapter) == _FAIL)	{		RT_TRACE(_module_os_intfs_c_,_drv_err_,("/n Can't init mlme_priv/n"));		ret8=_FAIL;		goto exit;	}	if(init_mlme_ext_priv(padapter) == _FAIL)	{		RT_TRACE(_module_os_intfs_c_,_drv_err_,("/n Can't init mlme_ext_priv/n"));		ret8=_FAIL;		goto exit;	}	if(_rtw_init_xmit_priv(&padapter->xmitpriv, padapter) == _FAIL)	{		DBG_871X("Can't _rtw_init_xmit_priv/n");		ret8=_FAIL;		goto exit;	}			if(_rtw_init_recv_priv(&padapter->recvpriv, padapter) == _FAIL)	{		DBG_871X("Can't _rtw_init_recv_priv/n");		ret8=_FAIL;		goto exit;	}	// We don't need to memset padapter->XXX to zero, because adapter is allocated by rtw_zvmalloc().	//_rtw_memset((unsigned char *)&padapter->securitypriv, 0, sizeof (struct security_priv));			//_init_timer(&(padapter->securitypriv.tkip_timer), padapter->pnetdev, rtw_use_tkipkey_handler, padapter);	if(_rtw_init_sta_priv(&padapter->stapriv) == _FAIL)	{		DBG_871X("Can't _rtw_init_sta_priv/n");		ret8=_FAIL;		goto exit;	}		padapter->stapriv.padapter = padapter;		rtw_init_bcmc_stainfo(padapter);	rtw_init_pwrctrl_priv(padapter);		//_rtw_memset((u8 *)&padapter->qospriv, 0, sizeof (struct qos_priv));//move to mlme_priv	#ifdef CONFIG_MP_INCLUDED	if (init_mp_priv(padapter) == _FAIL) {		ERR_8192C("%s: initialize MP private data Fail!/n", __func__);	}#endif	ret8 = rtw_init_default_value(padapter);	rtw_dm_init(padapter);	rtw_sw_led_init(padapter);#ifdef DBG_CONFIG_ERROR_DETECT	rtw_sreset_init(padapter);#endif#ifdef CONFIG_BR_EXT	_rtw_spinlock_init(&padapter->br_ext_lock);#endif	// CONFIG_BR_EXTexit:		RT_TRACE(_module_os_intfs_c_,_drv_info_,("-rtw_init_drv_sw/n"));	_func_exit_;		//.........这里部分代码省略.........
开发者ID:hillbeast,项目名称:android_kernel_ainol_novo8,代码行数:101,


示例5: rtw_set_rpwm

/* * * Parameters *	padapter *	pslv			power state level, only could be PS_STATE_S0 ~ PS_STATE_S4 * */void rtw_set_rpwm(PADAPTER padapter, u8 pslv){	u8	rpwm;	struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv;_func_enter_;	pslv = PS_STATE(pslv);	if (_TRUE == pwrpriv->btcoex_rfon)	{		if (pslv < PS_STATE_S4)			pslv = PS_STATE_S3;	}#ifdef CONFIG_LPS_RPWM_TIMER	if (pwrpriv->brpwmtimeout == _TRUE)	{		DBG_871X("%s: RPWM timeout, force to set RPWM(0x%02X) again!/n", __FUNCTION__, pslv);	}	else#endif // CONFIG_LPS_RPWM_TIMER	{	if ( (pwrpriv->rpwm == pslv)#ifdef CONFIG_LPS_LCLK#ifndef CONFIG_RTL8723A		|| ((pwrpriv->rpwm >= PS_STATE_S2)&&(pslv >= PS_STATE_S2))#endif#endif		)	{		RT_TRACE(_module_rtl871x_pwrctrl_c_,_drv_err_,			("%s: Already set rpwm[0x%02X], new=0x%02X!/n", __FUNCTION__, pwrpriv->rpwm, pslv));		return;	}	}	if ((padapter->bSurpriseRemoved == _TRUE) ||		(padapter->hw_init_completed == _FALSE))	{		RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_err_,				 ("%s: SurpriseRemoved(%d) hw_init_completed(%d)/n",				  __FUNCTION__, padapter->bSurpriseRemoved, padapter->hw_init_completed));		pwrpriv->cpwm = PS_STATE_S4;		return;	}	if (padapter->bDriverStopped == _TRUE)	{		RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_err_,				 ("%s: change power state(0x%02X) when DriverStopped/n", __FUNCTION__, pslv));		if (pslv < PS_STATE_S2) {			RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_err_,					 ("%s: Reject to enter PS_STATE(0x%02X) lower than S2 when DriverStopped!!/n", __FUNCTION__, pslv));			return;		}	}	rpwm = pslv | pwrpriv->tog;#ifdef CONFIG_LPS_LCLK	// only when from PS_STATE S0/S1 to S2 and higher needs ACK	if ((pwrpriv->cpwm < PS_STATE_S2) && (pslv >= PS_STATE_S2))		rpwm |= PS_ACK;#endif	RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,			 ("rtw_set_rpwm: rpwm=0x%02x cpwm=0x%02x/n", rpwm, pwrpriv->cpwm));	pwrpriv->rpwm = pslv;#ifdef CONFIG_LPS_RPWM_TIMER	if (rpwm & PS_ACK)		_set_timer(&pwrpriv->pwr_rpwm_timer, LPS_RPWM_WAIT_MS);#endif // CONFIG_LPS_RPWM_TIMER	rtw_hal_set_hwreg(padapter, HW_VAR_SET_RPWM, (u8 *)(&rpwm));	pwrpriv->tog += 0x80;#ifdef CONFIG_LPS_LCLK	// No LPS 32K, No Ack	if (!(rpwm & PS_ACK))#endif	{		pwrpriv->cpwm = pslv;	}_func_exit_;}
开发者ID:GREYFOXRGR,项目名称:kernel,代码行数:98,


示例6: _enter_critical_bh

//struct	sta_info *rtw_alloc_stainfo(_queue *pfree_sta_queue, unsigned char *hwaddr)struct	sta_info *rtw_alloc_stainfo(struct	sta_priv *pstapriv, u8 *hwaddr) {		_irqL irqL, irqL2;	uint tmp_aid;	s32	index;	_list	*phash_list;	struct sta_info	*psta;	_queue *pfree_sta_queue;	struct recv_reorder_ctrl *preorder_ctrl;	int i = 0;	u16  wRxSeqInitialValue = 0xffff;	_func_enter_;		pfree_sta_queue = &pstapriv->free_sta_queue;	//_enter_critical_bh(&(pfree_sta_queue->lock), &irqL);	_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);	if (_rtw_queue_empty(pfree_sta_queue) == _TRUE)	{		//_exit_critical_bh(&(pfree_sta_queue->lock), &irqL);		_exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);		psta = NULL;	}	else	{		psta = LIST_CONTAINOR(get_next(&pfree_sta_queue->queue), struct sta_info, list);				rtw_list_delete(&(psta->list));		//_exit_critical_bh(&(pfree_sta_queue->lock), &irqL);				tmp_aid = psta->aid;				_rtw_init_stainfo(psta);		psta->padapter = pstapriv->padapter;		memcpy(psta->hwaddr, hwaddr, ETH_ALEN);		index = wifi_mac_hash(hwaddr);		RT_TRACE(_module_rtl871x_sta_mgt_c_,_drv_info_,("rtw_alloc_stainfo: index  = %x", index));		if(index >= NUM_STA){			RT_TRACE(_module_rtl871x_sta_mgt_c_,_drv_err_,("ERROR=> rtw_alloc_stainfo: index >= NUM_STA"));			psta= NULL;				goto exit;		}		phash_list = &(pstapriv->sta_hash[index]);		//_enter_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);		rtw_list_insert_tail(&psta->hash_list, phash_list);		pstapriv->asoc_sta_count ++ ;		//_exit_critical_bh(&(pstapriv->sta_hash_lock), &irqL2);// Commented by Albert 2009/08/13// For the SMC router, the sequence number of first packet of WPS handshake will be 0.// In this case, this packet will be dropped by recv_decache function if we use the 0x00 as the default value for tid_rxseq variable.// So, we initialize the tid_rxseq variable as the 0xffff.		for( i = 0; i < 16; i++ )		{                     memcpy( &psta->sta_recvpriv.rxcache.tid_rxseq[ i ], &wRxSeqInitialValue, 2 );		}		RT_TRACE(_module_rtl871x_sta_mgt_c_,_drv_info_,("alloc number_%d stainfo  with hwaddr = %x %x %x %x %x %x  /n", 		pstapriv->asoc_sta_count , hwaddr[0], hwaddr[1], hwaddr[2],hwaddr[3],hwaddr[4],hwaddr[5]));		init_addba_retry_timer(pstapriv->padapter, psta);#ifdef CONFIG_TDLS		rtw_init_tdls_timer(pstapriv->padapter, psta);#endif //CONFIG_TDLS		//for A-MPDU Rx reordering buffer control		for(i=0; i < 16 ; i++)		{			preorder_ctrl = &psta->recvreorder_ctrl[i];			preorder_ctrl->padapter = pstapriv->padapter;					preorder_ctrl->enable = _FALSE;					preorder_ctrl->indicate_seq = 0xffff;			#ifdef DBG_RX_SEQ			DBG_871X("DBG_RX_SEQ %s:%d IndicateSeq: %d/n", __FUNCTION__, __LINE__,				preorder_ctrl->indicate_seq);			#endif			preorder_ctrl->wend_b= 0xffff;       			//preorder_ctrl->wsize_b = (NR_RECVBUFF-2);			preorder_ctrl->wsize_b = 64;//64;			_rtw_init_queue(&preorder_ctrl->pending_recvframe_queue);			rtw_init_recv_timer(preorder_ctrl);//.........这里部分代码省略.........
开发者ID:saiarcot895,项目名称:rtl8811AU_rtl8821A-linux,代码行数:101,


示例7: rtl8723_dequeue_writeport

//.........这里部分代码省略.........				PageIdx = MID_QUEUE_IDX;				break;		case WLAN_TX_LOQ_DEVICE_ID:				PageIdx = LOW_QUEUE_IDX;				break;	}	// check if hardware tx fifo page is enough	n = 0;//	_enter_critical_bh(&phal->SdioTxFIFOFreePageLock, &irql);	do {		if (requiredPage <= freePage[PageIdx]) {			freePage[PageIdx] -= requiredPage;			break;		}		// The number of page which public page included is available.		if ((freePage[PageIdx] + freePage[PUBLIC_QUEUE_IDX]) > (requiredPage + 1))		{			u8 requiredPublicPage;			requiredPublicPage = requiredPage - freePage[PageIdx];			freePage[PageIdx] = 0;			freePage[PUBLIC_QUEUE_IDX] -= requiredPublicPage;			break;		}//		_exit_critical_bh(&phal->SdioTxFIFOFreePageLock, &irql);		ret = (padapter->bDriverStopped == _TRUE) || (padapter->bSurpriseRemoved == _TRUE)#ifdef CONFIG_CONCURRENT_MODE		||((padapter->pbuddy_adapter) 		&& ((padapter->pbuddy_adapter->bSurpriseRemoved) ||(padapter->pbuddy_adapter->bDriverStopped)))#endif		;		if (ret) {			RT_TRACE(_module_hal_xmit_c_, _drv_notice_,				 ("%s: bSurpriseRemoved(update TX FIFO page)/n", __func__));			goto free_xmitbuf;		}		n++;		//if ((n & 0x3FF) == 0) 		if ((n % 100) == 0) 		{					if (n >= 5000) {				u8 reg_value_1 = 0;				u8 reg_value_2 = 0;				u8 reg_value_3 = 0;								DBG_8192C(KERN_NOTICE "%s: FIFO starvation!(%d) len=%d agg=%d page=(R)%d(A)%d/n",					__func__, n, pxmitbuf->len, pxmitbuf->agg_num, pxmitbuf->pg_num, freePage[PageIdx] + freePage[PUBLIC_QUEUE_IDX]);				//try to recover the transmission				reg_value_1 = rtw_read8(padapter, REG_SYS_FUNC_EN);				reg_value_2 = rtw_read8(padapter, REG_CR);				reg_value_3 = rtw_read8(padapter, REG_TXPAUSE);				DBG_871X("Before recovery: REG_SYS_FUNC_EN = 0x%X, REG_CR = 0x%X, REG_TXPAUSE = 0x%X/n", reg_value_1, reg_value_2, reg_value_3);				rtw_write8(padapter, REG_SYS_FUNC_EN, reg_value_1 | 0x01);				rtw_write8(padapter, REG_CR, reg_value_2 | 0xC0);				rtw_write8(padapter, REG_TXPAUSE, 0);				DBG_871X("After recovery: REG_SYS_FUNC_EN = 0x%X, REG_CR = 0x%X, REG_TXPAUSE = 0x%X/n", 					rtw_read8(padapter, REG_SYS_FUNC_EN), rtw_read8(padapter, REG_CR), rtw_read8(padapter, REG_TXPAUSE));			} else {				//RT_TRACE(_module_hal_xmit_c_, _drv_notice_,				//	("%s: FIFO starvation!(%d) len=%d agg=%d page=(R)%d(A)%d/n",				//	__FUNCTION__, n, pxmitbuf->len, pxmitbuf->agg_num, pxmitbuf->pg_num, freePage[PageIdx] + freePage[PUBLIC_QUEUE_IDX]));			}			//rtw_yield_os();			rtw_msleep_os(1);		}		// Total number of page is NOT available, so update current FIFO status#ifdef CONFIG_CONCURRENT_MODE		if (padapter->adapter_type > 0)			pri_padapter = padapter->pbuddy_adapter;#endif		HalQueryTxBufferStatus8723ASdio(pri_padapter);	} while (1);	if ((padapter->bSurpriseRemoved == _TRUE)#ifdef CONFIG_CONCURRENT_MODE		||((padapter->pbuddy_adapter)&& (padapter->pbuddy_adapter->bSurpriseRemoved))#endif	){		RT_TRACE(_module_hal_xmit_c_, _drv_notice_,			 ("%s: bSurpriseRemoved(wirte port)/n", __FUNCTION__));		goto free_xmitbuf;	}	rtw_write_port(padapter, deviceId, pxmitbuf->len, (u8 *)pxmitbuf);free_xmitbuf:	//rtw_free_xmitframe(pxmitpriv, pframe);	//pxmitbuf->priv_data = NULL;	rtw_free_xmitbuf(pxmitpriv, pxmitbuf);	return _FAIL;}
开发者ID:avila-devlogic,项目名称:D33_KK_Kernel,代码行数:101,


示例8: rtw_resume_process

int rtw_resume_process(_adapter *padapter){	struct net_device *pnetdev;	struct pwrctrl_priv *pwrpriv;	u8 is_pwrlock_hold_by_caller;	u8 is_directly_called_by_auto_resume;	int ret = 0;	u32 start_time = rtw_get_current_time();	_func_enter_;	DBG_871X("==> %s (%s:%d)/n",__FUNCTION__, current->comm, current->pid);	rtw_wifi_gpio_wlan_ctrl(WLAN_PWDN_ON);	rtw_mdelay_os(1);	{		u32 ret = 0;		DBG_8192C("read start:/n");		//spi_write8_endian(padapter, SPI_LOCAL_OFFSET | 0xF0, 0x01, 1);		rtw_write8(padapter, SPI_LOCAL_OFFSET | 0xF0, 0x03);		ret = rtw_read32(padapter, SPI_LOCAL_OFFSET | 0xF0);		DBG_8192C("read end 0xF0 read32:%x:/n", ret);		DBG_8192C("read end 0xF0 read8:%x:/n", rtw_read8(padapter, SPI_LOCAL_OFFSET | 0xF0));	}	if (padapter) {		pnetdev = padapter->pnetdev;		pwrpriv = &padapter->pwrctrlpriv;	} else {		ret = -1;		goto exit;	}	// interface init	if (gspi_init(adapter_to_dvobj(padapter)) != _SUCCESS)	{		ret = -1;		RT_TRACE(_module_hci_intfs_c_, _drv_err_, ("%s: initialize SDIO Failed!!/n", __FUNCTION__));		goto exit;	}	rtw_hal_disable_interrupt(padapter);	if (gspi_alloc_irq(adapter_to_dvobj(padapter)) != _SUCCESS)	{		ret = -1;		RT_TRACE(_module_hci_intfs_c_, _drv_err_, ("%s: gspi_alloc_irq Failed!!/n", __FUNCTION__));		goto exit;	}	rtw_reset_drv_sw(padapter);	pwrpriv->bkeepfwalive = _FALSE;	DBG_871X("bkeepfwalive(%x)/n",pwrpriv->bkeepfwalive);	if(pm_netdev_open(pnetdev,_TRUE) != 0) {		ret = -1;		goto exit;	}	netif_device_attach(pnetdev);	netif_carrier_on(pnetdev);	if( padapter->pid[1]!=0) {		DBG_871X("pid[1]:%d/n",padapter->pid[1]);		rtw_signal_process(padapter->pid[1], SIGUSR2);	}	#ifdef CONFIG_LAYER2_ROAMING_RESUME	rtw_roaming(padapter, NULL);	#endif	#ifdef CONFIG_RESUME_IN_WORKQUEUE	rtw_unlock_suspend();	#endif //CONFIG_RESUME_IN_WORKQUEUEexit:	pwrpriv->bInSuspend = _FALSE;	DBG_871X("<===  %s return %d.............. in %dms/n", __FUNCTION__		, ret, rtw_get_passing_time_ms(start_time));	_func_exit_;	return ret;}
开发者ID:DanDanBu,项目名称:uclinux,代码行数:84,


示例9: xmit_xmitframes

//.........这里部分代码省略.........						break;					}					k = 0;				}				// ok to send, remove frame from queue				//_enter_critical_bh(&pxmitpriv->lock, &irql);#ifdef CONFIG_AP_MODE				if (check_fwstate(&padapter->mlmepriv, WIFI_AP_STATE) == _TRUE)				{					if ((pxmitframe->attrib.psta->state & WIFI_SLEEP_STATE) &&						(pxmitframe->attrib.triggered == 0))					{						//_exit_critical_bh(&pxmitpriv->lock, &irql);												DBG_8192C("%s: one not triggered pkt in queue when STA sleep/n", __func__);						break;					}				}#endif				rtw_list_delete(&pxmitframe->list);				ptxservq->qcnt--;				hwxmits->accnt--;								if (k == 0) {					pxmitbuf->ff_hwaddr = rtw_get_ff_hwaddr(pxmitframe);					pxmitbuf->priv_data = (u8*)pxmitframe;				}				// coalesce the xmitframe to xmitbuf				pxmitframe->pxmitbuf = pxmitbuf;				pxmitframe->buf_addr = pxmitbuf->ptail;				ret = rtw_xmitframe_coalesce(padapter, pxmitframe->pkt, pxmitframe);				if (ret == _FAIL) {					RT_TRACE(_module_hal_xmit_c_, _drv_err_, ("%s: coalesce FAIL!", __FUNCTION__));					// Todo: error handler					DBG_871X("%s: coalesce FAIL!", __FUNCTION__);				} else {					k++;					if (k != 1)						rtl8723a_update_txdesc(pxmitframe, pxmitframe->buf_addr);					rtw_count_tx_stats(padapter, pxmitframe, pxmitframe->attrib.last_txcmdsz);					txlen = TXDESC_SIZE + pxmitframe->attrib.last_txcmdsz;					pxmitframe->pg_num = (txlen + 127)/128;					pxmitbuf->pg_num += (txlen + 127)/128;										//if (k != 1)					//	((struct xmit_frame*)pxmitbuf->priv_data)->pg_num += pxmitframe->pg_num;					pxmitbuf->ptail += _RND(txlen, 8); // round to 8 bytes alignment					pxmitbuf->len = _RND(pxmitbuf->len, 8) + txlen;				}				if (k != 1)					rtw_free_xmitframe(pxmitpriv, pxmitframe);				pxmitframe = NULL;			}			//_enter_critical_bh(&pxmitpriv->lock, &irql);			if (_rtw_queue_empty(pframe_queue) == _TRUE)				rtw_list_delete(&ptxservq->tx_pending);			//_exit_critical_bh(&pxmitpriv->lock, &irql);//			_exit_critical(&pframe_queue->lock, &irqL1);			//_exit_critical_bh(&pxmitpriv->lock, &irql);			if (err) break;		}//		_exit_critical(&hwxmits->sta_queue->lock, &irqL0);		_exit_critical_bh(&pxmitpriv->lock, &irql);		// dump xmit_buf to hw tx fifo		if (pxmitbuf)		{			RT_TRACE(_module_hal_xmit_c_, _drv_notice_, ("pxmitbuf->len=%d enqueue/n",pxmitbuf->len));			if (pxmitbuf->len > 0) {				struct xmit_frame *pframe;				pframe = (struct xmit_frame*)pxmitbuf->priv_data;				pframe->agg_num = k;				pxmitbuf->agg_num = k;				rtl8723a_update_txdesc(pframe, pframe->buf_addr);				rtw_free_xmitframe(pxmitpriv, pframe);				pxmitbuf->priv_data = NULL;				enqueue_pending_xmitbuf(pxmitpriv, pxmitbuf);				rtw_yield_os();			}			else				rtw_free_xmitbuf(pxmitpriv, pxmitbuf);						pxmitbuf = NULL;		}		if (err) break;	}	return err;}
开发者ID:avila-devlogic,项目名称:D33_KK_Kernel,代码行数:101,


示例10: rtw_gspi_suspend

static int rtw_gspi_suspend(struct spi_device *spi, pm_message_t mesg){	struct dvobj_priv *dvobj = spi_get_drvdata(spi);	PADAPTER padapter = dvobj->if1;	struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv;	struct mlme_priv *pmlmepriv = &padapter->mlmepriv;	struct net_device *pnetdev = padapter->pnetdev;	int ret = 0;	u32 start_time = rtw_get_current_time();	_func_enter_;	DBG_871X("==> %s (%s:%d)/n",__FUNCTION__, current->comm, current->pid);	pwrpriv->bInSuspend = _TRUE;	while (pwrpriv->bips_processing == _TRUE)		rtw_msleep_os(1);	if((!padapter->bup) || (padapter->bDriverStopped)||(padapter->bSurpriseRemoved))	{		DBG_871X("%s bup=%d bDriverStopped=%d bSurpriseRemoved = %d/n", __FUNCTION__			,padapter->bup, padapter->bDriverStopped,padapter->bSurpriseRemoved);		goto exit;	}	rtw_cancel_all_timer(padapter);	LeaveAllPowerSaveMode(padapter);	//padapter->net_closed = _TRUE;	//s1.	if(pnetdev)	{		netif_carrier_off(pnetdev);		rtw_netif_stop_queue(pnetdev);	}#ifdef CONFIG_WOWLAN	padapter->pwrctrlpriv.bSupportRemoteWakeup=_TRUE;#else	//s2.	rtw_disassoc_cmd(padapter, 0, _FALSE);#endif#ifdef CONFIG_LAYER2_ROAMING_RESUME	if(check_fwstate(pmlmepriv, WIFI_STATION_STATE) && check_fwstate(pmlmepriv, _FW_LINKED) )	{		DBG_871X("%s %s(" MAC_FMT "), length:%d assoc_ssid.length:%d/n",__FUNCTION__,				pmlmepriv->cur_network.network.Ssid.Ssid,				MAC_ARG(pmlmepriv->cur_network.network.MacAddress),				pmlmepriv->cur_network.network.Ssid.SsidLength,				pmlmepriv->assoc_ssid.SsidLength);		rtw_set_roaming(padapter, 1);	}#endif	//s2-2.  indicate disconnect to os	rtw_indicate_disconnect(padapter);	//s2-3.	rtw_free_assoc_resources(padapter, 1);	//s2-4.	rtw_free_network_queue(padapter, _TRUE);	rtw_led_control(padapter, LED_CTL_POWER_OFF);	rtw_dev_unload(padapter);	if(check_fwstate(pmlmepriv, _FW_UNDER_SURVEY))		rtw_indicate_scan_done(padapter, 1);	if(check_fwstate(pmlmepriv, _FW_UNDER_LINKING))		rtw_indicate_disconnect(padapter);	// interface deinit	gspi_deinit(dvobj);	RT_TRACE(_module_hci_intfs_c_, _drv_notice_, ("%s: deinit GSPI complete!/n", __FUNCTION__));	rtw_wifi_gpio_wlan_ctrl(WLAN_PWDN_OFF);	rtw_mdelay_os(1);exit:	DBG_871X("<===  %s return %d.............. in %dms/n", __FUNCTION__		, ret, rtw_get_passing_time_ms(start_time));	_func_exit_;	return ret;}
开发者ID:DanDanBu,项目名称:uclinux,代码行数:88,


示例11: rtw_drv_probe

/* * drv_init() - a device potentially for us * * notes: drv_init() is called when the bus driver has located a card for us to support. *        We accept the new device by returning 0. */static int /*__devinit*/  rtw_drv_probe(struct spi_device *spi){	int status = _FAIL;	struct dvobj_priv *dvobj;	struct net_device *pnetdev;	PADAPTER if1 = NULL, if2 = NULL;	DBG_8192C("RTW: %s line:%d", __FUNCTION__, __LINE__);	if ((dvobj = gspi_dvobj_init(spi)) == NULL) {		DBG_871X("%s: Initialize device object priv Failed!/n", __FUNCTION__);		goto exit;	}	if ((if1 = rtw_gspi_if1_init(dvobj)) == NULL) {		DBG_871X("rtw_init_primary_adapter Failed!/n");		goto free_dvobj;	}#ifdef CONFIG_CONCURRENT_MODE	if ((if2 = rtw_drv_if2_init(if1, NULL, spi_set_intf_ops)) == NULL) {		goto free_if1;	}#endif	//dev_alloc_name && register_netdev	if((status = rtw_drv_register_netdev(if1)) != _SUCCESS) {		goto free_if2;	}#ifdef CONFIG_HOSTAPD_MLME	hostapd_mode_init(if1);#endif#ifdef CONFIG_PLATFORM_RTD2880B	DBG_871X("wlan link up/n");	rtd2885_wlan_netlink_sendMsg("linkup", "8712");#endif#ifdef RTK_DMP_PLATFORM	rtw_proc_init_one(if1->pnetdev);#endif	if (gspi_alloc_irq(dvobj) != _SUCCESS)		goto free_if2;#ifdef CONFIG_GLOBAL_UI_PID	if(ui_pid[1]!=0) {		DBG_871X("ui_pid[1]:%d/n",ui_pid[1]);		rtw_signal_process(ui_pid[1], SIGUSR2);		}#endif	RT_TRACE(_module_hci_intfs_c_,_drv_err_,("-871x_drv - drv_init, success!/n"));	status = _SUCCESS;free_if2:	if (status != _SUCCESS && if2) {		#ifdef CONFIG_CONCURRENT_MODE		rtw_drv_if2_stop(if2);		rtw_drv_if2_free(if2);		#endif	}free_if1:	if (status != _SUCCESS && if1) {		rtw_gspi_if1_deinit(if1);	}free_dvobj:	if (status != _SUCCESS)		gspi_dvobj_deinit(spi);exit:	return status == _SUCCESS?0:-ENODEV;}
开发者ID:DanDanBu,项目名称:uclinux,代码行数:84,


示例12: rtw_gspi_if1_init

static PADAPTER rtw_gspi_if1_init(struct dvobj_priv *dvobj){	int status = _FAIL;	struct net_device *pnetdev;	PADAPTER padapter = NULL;	padapter = (PADAPTER)rtw_zvmalloc(sizeof(*padapter));	if (NULL == padapter) {		goto exit;	}	padapter->dvobj = dvobj;	dvobj->if1 = padapter;	padapter->bDriverStopped = _TRUE;	dvobj->padapters[dvobj->iface_nums++] = padapter;	padapter->iface_id = IFACE_ID0;#if defined(CONFIG_CONCURRENT_MODE) || defined(CONFIG_DUALMAC_CONCURRENT)	//set adapter_type/iface type for primary padapter	padapter->isprimary = _TRUE;	padapter->adapter_type = PRIMARY_ADAPTER;	#ifndef CONFIG_HWPORT_SWAP	padapter->iface_type = IFACE_PORT0;	#else	padapter->iface_type = IFACE_PORT1;	#endif#endif	padapter->interface_type = RTW_GSPI;	decide_chip_type_by_device_id(padapter);	//3 1. init network device data	pnetdev = rtw_init_netdev(padapter);	if (!pnetdev)		goto free_adapter;	SET_NETDEV_DEV(pnetdev, dvobj_to_dev(dvobj));#ifdef CONFIG_IOCTL_CFG80211	rtw_wdev_alloc(padapter, dvobj_to_dev(dvobj));#endif	//3 3. init driver special setting, interface, OS and hardware relative	//4 3.1 set hardware operation functions	hal_set_hal_ops(padapter);	//3 5. initialize Chip version	padapter->intf_start = &gspi_intf_start;	padapter->intf_stop = &gspi_intf_stop;	if (rtw_init_io_priv(padapter, spi_set_intf_ops) == _FAIL)	{		RT_TRACE(_module_hci_intfs_c_, _drv_err_,			("rtw_drv_init: Can't init io_priv/n"));		goto free_hal_data;	}	{		u32 ret = 0;		DBG_8192C("read start:/n");		//spi_write8_endian(padapter, SPI_LOCAL_OFFSET | 0xF0, 0x01, 1);		rtw_write8(padapter, SPI_LOCAL_OFFSET | 0xF0, 0x03);		ret = rtw_read32(padapter, SPI_LOCAL_OFFSET | 0xF0);		DBG_8192C("read end 0xF0 read32:%x:/n", ret);		DBG_8192C("read end 0xF0 read8:%x:/n", rtw_read8(padapter, SPI_LOCAL_OFFSET | 0xF0));	}	rtw_hal_read_chip_version(padapter);	rtw_hal_chip_configure(padapter);	//3 6. read efuse/eeprom data	rtw_hal_read_chip_info(padapter);	//3 7. init driver common data	if (rtw_init_drv_sw(padapter) == _FAIL) {		RT_TRACE(_module_hci_intfs_c_, _drv_err_,			 ("rtw_drv_init: Initialize driver software resource Failed!/n"));		goto free_hal_data;	}	//3 8. get WLan MAC address	// set mac addr	rtw_macaddr_cfg(padapter->eeprompriv.mac_addr);	rtw_init_wifidirect_addrs(padapter, padapter->eeprompriv.mac_addr, padapter->eeprompriv.mac_addr);	rtw_hal_disable_interrupt(padapter);	DBG_871X("bDriverStopped:%d, bSurpriseRemoved:%d, bup:%d, hw_init_completed:%d/n"		,padapter->bDriverStopped		,padapter->bSurpriseRemoved//.........这里部分代码省略.........
开发者ID:DanDanBu,项目名称:uclinux,代码行数:101,


示例13: rtw_set_802_11_ssid

u8 rtw_set_802_11_ssid(_adapter* padapter, NDIS_802_11_SSID *ssid){		_irqL irqL;	u8 status = _SUCCESS;	u32 cur_time = 0;	struct mlme_priv *pmlmepriv = &padapter->mlmepriv;	struct wlan_network *pnetwork = &pmlmepriv->cur_network;	_func_enter_;		RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_notice_,		 ("+rtw_set_802_11_ssid: ssid=[%s] fw_state=0x%08x/n",		  ssid->Ssid, get_fwstate(pmlmepriv)));	if(padapter->hw_init_completed==_FALSE){		RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,			 ("set_ssid: hw_init_completed==_FALSE=>exit!!!/n"));		status = _FAIL;		goto exit;	}			_enter_critical_bh(&pmlmepriv->lock, &irqL);	DBG_871X("Set SSID under fw_state=0x%08x/n", get_fwstate(pmlmepriv));	if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == _TRUE) {			goto handle_tkip_countermeasure;	} else if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == _TRUE) {		goto release_mlme_lock;	}	if (check_fwstate(pmlmepriv, _FW_LINKED|WIFI_ADHOC_MASTER_STATE) == _TRUE)	{		RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_,			 ("set_ssid: _FW_LINKED||WIFI_ADHOC_MASTER_STATE/n"));		if ((pmlmepriv->assoc_ssid.SsidLength == ssid->SsidLength) &&		    (_rtw_memcmp(&pmlmepriv->assoc_ssid.Ssid, ssid->Ssid, ssid->SsidLength) == _TRUE))		{						if((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == _FALSE))			{				RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,					 ("Set SSID is the same ssid, fw_state=0x%08x/n",					  get_fwstate(pmlmepriv)));				if(rtw_is_same_ibss(padapter, pnetwork) == _FALSE)				{									//if in WIFI_ADHOC_MASTER_STATE | WIFI_ADHOC_STATE, create bss or rejoin again					rtw_disassoc_cmd(padapter);					if (check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE)						rtw_indicate_disconnect(padapter);											rtw_free_assoc_resources(padapter, 1);					if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == _TRUE) {						_clr_fwstate_(pmlmepriv, WIFI_ADHOC_MASTER_STATE);						set_fwstate(pmlmepriv, WIFI_ADHOC_STATE);					}				}				else				{					goto release_mlme_lock;//it means driver is in WIFI_ADHOC_MASTER_STATE, we needn't create bss again.				}			}#ifdef CONFIG_LPS			else {				rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_JOINBSS, 1);			}#endif		}		else		{			RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("Set SSID not the same ssid/n"));			RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("set_ssid=[%s] len=0x%x/n", ssid->Ssid, (unsigned int)ssid->SsidLength));			RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("assoc_ssid=[%s] len=0x%x/n", pmlmepriv->assoc_ssid.Ssid, (unsigned int)pmlmepriv->assoc_ssid.SsidLength));			rtw_disassoc_cmd(padapter);			if (check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE)				rtw_indicate_disconnect(padapter);						rtw_free_assoc_resources(padapter, 1);			if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == _TRUE) {				_clr_fwstate_(pmlmepriv, WIFI_ADHOC_MASTER_STATE);				set_fwstate(pmlmepriv, WIFI_ADHOC_STATE);			}		}			}handle_tkip_countermeasure:#ifdef PLATFORM_WINDOWS	if (padapter->securitypriv.btkip_countermeasure==_TRUE)	{		LARGE_INTEGER	sys_time;		u32  diff_time,cur_time ;		RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("rtw_set_802_11_ssid:padapter->securitypriv.btkip_countermeasure==_TRUE/n"));		NdisGetCurrentSystemTime(&sys_time);			cur_time=(u32)(sys_time.QuadPart/10);  // In micro-second.//.........这里部分代码省略.........
开发者ID:develersrl,项目名称:winmate-kernel,代码行数:101,


示例14: rtw_ieee802_11_parse_elems

/** * ieee802_11_parse_elems - Parse information elements in management frames * @start: Pointer to the start of IEs * @len: Length of IE buffer in octets * @elems: Data structure for parsed elements * @show_errors: Whether to show parsing errors in debug log * Returns: Parsing result */ParseRes rtw_ieee802_11_parse_elems(u8 *start, uint len,				struct rtw_ieee802_11_elems *elems,				int show_errors){	uint left = len;	u8 *pos = start;	int unknown = 0;	_rtw_memset(elems, 0, sizeof(*elems));	while (left >= 2) {		u8 id, elen;		id = *pos++;		elen = *pos++;		left -= 2;		if (elen > left) {			if (show_errors) {				DBG_871X("IEEE 802.11 element "					   "parse failed (id=%d elen=%d "					   "left=%lu)/n",					   id, elen, (unsigned long) left);							}			return ParseFailed;		}		switch (id) {		case WLAN_EID_SSID:			elems->ssid = pos;			elems->ssid_len = elen;			break;		case WLAN_EID_SUPP_RATES:			elems->supp_rates = pos;			elems->supp_rates_len = elen;			break;		case WLAN_EID_FH_PARAMS:			elems->fh_params = pos;			elems->fh_params_len = elen;			break;		case WLAN_EID_DS_PARAMS:			elems->ds_params = pos;			elems->ds_params_len = elen;			break;		case WLAN_EID_CF_PARAMS:			elems->cf_params = pos;			elems->cf_params_len = elen;			break;		case WLAN_EID_TIM:			elems->tim = pos;			elems->tim_len = elen;			break;		case WLAN_EID_IBSS_PARAMS:			elems->ibss_params = pos;			elems->ibss_params_len = elen;			break;		case WLAN_EID_CHALLENGE:			elems->challenge = pos;			elems->challenge_len = elen;			break;		case WLAN_EID_ERP_INFO:			elems->erp_info = pos;			elems->erp_info_len = elen;			break;		case WLAN_EID_EXT_SUPP_RATES:			elems->ext_supp_rates = pos;			elems->ext_supp_rates_len = elen;			break;		case WLAN_EID_VENDOR_SPECIFIC:			if (rtw_ieee802_11_parse_vendor_specific(pos, elen,							     elems,							     show_errors))				unknown++;			break;		case WLAN_EID_RSN:			elems->rsn_ie = pos;			elems->rsn_ie_len = elen;			break;		case WLAN_EID_PWR_CAPABILITY:			elems->power_cap = pos;			elems->power_cap_len = elen;			break;		case WLAN_EID_SUPPORTED_CHANNELS:			elems->supp_channels = pos;			elems->supp_channels_len = elen;			break;		case WLAN_EID_MOBILITY_DOMAIN:			elems->mdie = pos;			elems->mdie_len = elen;			break;		case WLAN_EID_FAST_BSS_TRANSITION:			elems->ftie = pos;//.........这里部分代码省略.........
开发者ID:32743069,项目名称:amlogic_common_3050,代码行数:101,


示例15: rtl8192cu_xmitframe_complete

s32 rtl8192cu_xmitframe_complete(_adapter *padapter, struct xmit_priv *pxmitpriv, struct xmit_buf *pxmitbuf){	HAL_DATA_TYPE	*pHalData = GET_HAL_DATA(padapter);	struct xmit_frame *pxmitframe = NULL;	struct xmit_frame *pfirstframe = NULL;	// aggregate variable	struct hw_xmit *phwxmit;	struct sta_info *psta = NULL;	struct tx_servq *ptxservq = NULL;	_irqL irqL;	_list *xmitframe_plist = NULL, *xmitframe_phead = NULL;	u32	pbuf;	// next pkt address	u32	pbuf_tail;	// last pkt tail	u32	len;	// packet length, except TXDESC_SIZE and PKT_OFFSET	u32	bulkSize = pHalData->UsbBulkOutSize;	u8	descCount;	u32	bulkPtr;	// dump frame variable	u32 ff_hwaddr;#ifndef IDEA_CONDITION	int res = _SUCCESS;#endif	RT_TRACE(_module_rtl8192c_xmit_c_, _drv_info_, ("+xmitframe_complete/n"));	// check xmitbuffer is ok	if (pxmitbuf == NULL) {		pxmitbuf = rtw_alloc_xmitbuf(pxmitpriv);		if (pxmitbuf == NULL) return _FALSE;	}	//3 1. pick up first frame	do {		rtw_free_xmitframe(pxmitpriv, pxmitframe);					pxmitframe = rtw_dequeue_xframe(pxmitpriv, pxmitpriv->hwxmits, pxmitpriv->hwxmit_entry);		if (pxmitframe == NULL) {			// no more xmit frame, release xmit buffer			rtw_free_xmitbuf(pxmitpriv, pxmitbuf);			return _FALSE;		}#ifndef IDEA_CONDITION		if (pxmitframe->frame_tag != DATA_FRAMETAG) {			RT_TRACE(_module_rtl8192c_xmit_c_, _drv_err_,				 ("xmitframe_complete: frame tag(%d) is not DATA_FRAMETAG(%d)!/n",				  pxmitframe->frame_tag, DATA_FRAMETAG));//			rtw_free_xmitframe(pxmitpriv, pxmitframe);			continue;		}		// TID 0~15		if ((pxmitframe->attrib.priority < 0) ||		    (pxmitframe->attrib.priority > 15)) {			RT_TRACE(_module_rtl8192c_xmit_c_, _drv_err_,				 ("xmitframe_complete: TID(%d) should be 0~15!/n",				  pxmitframe->attrib.priority));//			rtw_free_xmitframe(pxmitpriv, pxmitframe);			continue;		}#endif		pxmitframe->pxmitbuf = pxmitbuf;		pxmitframe->buf_addr = pxmitbuf->pbuf;		pxmitbuf->priv_data = pxmitframe;		//pxmitframe->agg_num = 1; // alloc xmitframe should assign to 1.		pxmitframe->pkt_offset = (PACKET_OFFSET_SZ/8); // 1; // first frame of aggregation, reserve offset		if (rtw_xmitframe_coalesce(padapter, pxmitframe->pkt, pxmitframe) == _FALSE) {			DBG_871X("%s coalesce 1st xmitframe failed /n",__FUNCTION__);			continue;		}		// always return ndis_packet after rtw_xmitframe_coalesce		rtw_os_xmit_complete(padapter, pxmitframe);		break;	} while (1);	//3 2. aggregate same priority and same DA(AP or STA) frames	pfirstframe = pxmitframe;	len = xmitframe_need_length(pfirstframe) + TXDESC_OFFSET;	pbuf_tail = len;	pbuf = _RND8(pbuf_tail);	// check pkt amount in one bluk	descCount = 0;	bulkPtr = bulkSize;//.........这里部分代码省略.........
开发者ID:abrakev,项目名称:RTL-8188C-8192C,代码行数:101,


示例16: rtw_ieee802_11_parse_vendor_specific

static int rtw_ieee802_11_parse_vendor_specific(u8 *pos, uint elen,					    struct rtw_ieee802_11_elems *elems,					    int show_errors){	unsigned int oui;	/* first 3 bytes in vendor specific information element are the IEEE	 * OUI of the vendor. The following byte is used a vendor specific	 * sub-type. */	if (elen < 4) {		if (show_errors) {			DBG_871X("short vendor specific "				   "information element ignored (len=%lu)/n",				   (unsigned long) elen);		}		return -1;	}	oui = RTW_GET_BE24(pos);	switch (oui) {	case OUI_MICROSOFT:		/* Microsoft/Wi-Fi information elements are further typed and		 * subtyped */		switch (pos[3]) {		case 1:			/* Microsoft OUI (00:50:F2) with OUI Type 1:			 * real WPA information element */			elems->wpa_ie = pos;			elems->wpa_ie_len = elen;			break;		case WME_OUI_TYPE: /* this is a Wi-Fi WME info. element */			if (elen < 5) {				DBG_871X("short WME "					   "information element ignored "					   "(len=%lu)/n",					   (unsigned long) elen);				return -1;			}			switch (pos[4]) {			case WME_OUI_SUBTYPE_INFORMATION_ELEMENT:			case WME_OUI_SUBTYPE_PARAMETER_ELEMENT:				elems->wme = pos;				elems->wme_len = elen;				break;			case WME_OUI_SUBTYPE_TSPEC_ELEMENT:				elems->wme_tspec = pos;				elems->wme_tspec_len = elen;				break;			default:				DBG_871X("unknown WME "					   "information element ignored "					   "(subtype=%d len=%lu)/n",					   pos[4], (unsigned long) elen);				return -1;			}			break;		case 4:			/* Wi-Fi Protected Setup (WPS) IE */			elems->wps_ie = pos;			elems->wps_ie_len = elen;			break;		default:			DBG_871X("Unknown Microsoft "				   "information element ignored "				   "(type=%d len=%lu)/n",				   pos[3], (unsigned long) elen);			return -1;		}		break;	case OUI_BROADCOM:		switch (pos[3]) {		case VENDOR_HT_CAPAB_OUI_TYPE:			elems->vendor_ht_cap = pos;			elems->vendor_ht_cap_len = elen;			break;		default:			DBG_871X("Unknown Broadcom "				   "information element ignored "				   "(type=%d len=%lu)/n",				   pos[3], (unsigned long) elen);			return -1;		}		break;	default:		DBG_871X("unknown vendor specific information "			   "element ignored (vendor OUI %02x:%02x:%02x "			   "len=%lu)/n",			   pos[0], pos[1], pos[2], (unsigned long) elen);		return -1;	}	return 0;	}
开发者ID:32743069,项目名称:amlogic_common_3050,代码行数:96,


示例17: rtl8723bs_recv_tasklet

static void rtl8723bs_recv_tasklet(void *priv){	PADAPTER				padapter;	PHAL_DATA_TYPE			pHalData;	struct recv_priv		*precvpriv;	struct recv_buf			*precvbuf;	union recv_frame		*precvframe;	struct recv_frame_hdr	*phdr;	struct rx_pkt_attrib	*pattrib;	u8			*ptr;	_pkt		*ppkt;	u32			pkt_offset;	_irqL		irql;	padapter = (PADAPTER)priv;	pHalData = GET_HAL_DATA(padapter);	precvpriv = &padapter->recvpriv;	do {		precvbuf = rtw_dequeue_recvbuf(&precvpriv->recv_buf_pending_queue);		if (NULL == precvbuf) break;		ptr = precvbuf->pdata;		while (ptr < precvbuf->ptail)		{			precvframe = rtw_alloc_recvframe(&precvpriv->free_recv_queue);			if (precvframe == NULL) {				RT_TRACE(_module_rtl871x_recv_c_, _drv_err_, ("rtl8723bs_recv_tasklet: no enough recv frame!/n"));				rtw_enqueue_recvbuf_to_head(precvbuf, &precvpriv->recv_buf_pending_queue);				// The case of can't allocte recvframe should be temporary,				// schedule again and hope recvframe is available next time.#ifdef PLATFORM_LINUX				tasklet_schedule(&precvpriv->recv_tasklet);#endif				return;			}			phdr = &precvframe->u.hdr;			pattrib = &phdr->attrib;			update_recvframe_attrib_8723b(padapter, precvframe, (struct recv_stat*)ptr);#if 0			{				int i, len = 64;				u8 *pptr = ptr;				if((*(pptr + RXDESC_SIZE + pattrib->drvinfo_sz) != 0x80) && (*(pptr + RXDESC_SIZE + pattrib->drvinfo_sz) != 0x40))				{					DBG_871X("##############RxDESC############### /n");					for(i=0; i<32;i=i+16)						DBG_871X("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:/n", *(pptr+i),						*(pptr+i+1), *(pptr+i+2) ,*(pptr+i+3) ,*(pptr+i+4),*(pptr+i+5), *(pptr+i+6), *(pptr+i+7), *(pptr+i+8), *(pptr+i+9), *(pptr+i+10),						 *(pptr+i+11), *(pptr+i+12), *(pptr+i+13), *(pptr+i+14), *(pptr+i+15));					if(pattrib->pkt_len < 100)						len = pattrib->pkt_len;					pptr = ptr + RXDESC_SIZE + pattrib->drvinfo_sz;					DBG_871X("##############Len=%d############### /n", pattrib->pkt_len);					for(i=0; i<len;i=i+16)						DBG_871X("%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:%02X:/n", *(pptr+i),						*(pptr+i+1), *(pptr+i+2) ,*(pptr+i+3) ,*(pptr+i+4),*(pptr+i+5), *(pptr+i+6), *(pptr+i+7), *(pptr+i+8), *(pptr+i+9), *(pptr+i+10),						 *(pptr+i+11), *(pptr+i+12), *(pptr+i+13), *(pptr+i+14), *(pptr+i+15));					DBG_871X("############################# /n");				}			}#endif			// fix Hardware RX data error, drop whole recv_buffer			if ((!(pHalData->ReceiveConfig & RCR_ACRC32)) && pattrib->crc_err)			{				DBG_8192C("%s()-%d: RX Warning! rx CRC ERROR !!/n", __FUNCTION__, __LINE__);				rtw_free_recvframe(precvframe, &precvpriv->free_recv_queue);				break;			}			pkt_offset = RXDESC_SIZE + pattrib->drvinfo_sz + pattrib->pkt_len;#if 0 // reduce check to speed up			if ((ptr + pkt_offset) > precvbuf->ptail) {				RT_TRACE(_module_rtl871x_recv_c_, _drv_err_,						("%s: next pkt len(%p,%d) exceed ptail(%p)!/n",						__FUNCTION__, ptr, pkt_offset, precvbuf->ptail));				rtw_free_recvframe(precvframe, &precvpriv->free_recv_queue);				break;			}#endif			if ((pattrib->crc_err) || (pattrib->icv_err))			{#ifdef CONFIG_MP_INCLUDED				if (padapter->registrypriv.mp_mode == 1)				{					if ((check_fwstate(&padapter->mlmepriv, WIFI_MP_STATE) == _TRUE))//&&(padapter->mppriv.check_mp_pkt == 0))					{						if (pattrib->crc_err == 1)							padapter->mppriv.rx_crcerrpktcount++;					}//.........这里部分代码省略.........
开发者ID:abgoyal,项目名称:alcatel_ot_4020D_kernel,代码行数:101,


示例18: rtw_set_802_11_ssid

u8 rtw_set_802_11_ssid(_adapter* padapter, NDIS_802_11_SSID *ssid){	_irqL irqL;	u8 status = _SUCCESS;	u32 cur_time = 0;	struct mlme_priv *pmlmepriv = &padapter->mlmepriv;	struct wlan_network *pnetwork = &pmlmepriv->cur_network;_func_enter_;	DBG_871X_LEVEL(_drv_always_, "set ssid [%s] fw_state=0x%08x/n",			ssid->Ssid, get_fwstate(pmlmepriv));	if(padapter->hw_init_completed==_FALSE){		RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,			 ("set_ssid: hw_init_completed==_FALSE=>exit!!!/n"));		status = _FAIL;		goto exit;	}	_enter_critical_bh(&pmlmepriv->lock, &irqL);	DBG_871X("Set SSID under fw_state=0x%08x/n", get_fwstate(pmlmepriv));	if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == _TRUE) {		goto handle_tkip_countermeasure;	} else if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == _TRUE) {		goto release_mlme_lock;	}	if (check_fwstate(pmlmepriv, _FW_LINKED|WIFI_ADHOC_MASTER_STATE) == _TRUE)	{		RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_,			 ("set_ssid: _FW_LINKED||WIFI_ADHOC_MASTER_STATE/n"));		if ((pmlmepriv->assoc_ssid.SsidLength == ssid->SsidLength) &&		    (_rtw_memcmp(&pmlmepriv->assoc_ssid.Ssid, ssid->Ssid, ssid->SsidLength) == _TRUE))		{			if((check_fwstate(pmlmepriv, WIFI_STATION_STATE) == _FALSE))			{				RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,					 ("Set SSID is the same ssid, fw_state=0x%08x/n",					  get_fwstate(pmlmepriv)));				if(rtw_is_same_ibss(padapter, pnetwork) == _FALSE)				{					//if in WIFI_ADHOC_MASTER_STATE | WIFI_ADHOC_STATE, create bss or rejoin again					rtw_disassoc_cmd(padapter, 0, _TRUE);					if (check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE)						rtw_indicate_disconnect(padapter);					rtw_free_assoc_resources(padapter, 1);					if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == _TRUE) {						_clr_fwstate_(pmlmepriv, WIFI_ADHOC_MASTER_STATE);						set_fwstate(pmlmepriv, WIFI_ADHOC_STATE);					}				}				else				{					goto release_mlme_lock;//it means driver is in WIFI_ADHOC_MASTER_STATE, we needn't create bss again.				}			}#ifdef CONFIG_LPS			else {				rtw_lps_ctrl_wk_cmd(padapter, LPS_CTRL_JOINBSS, 1);			}#endif		}		else		{			RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("Set SSID not the same ssid/n"));			RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("set_ssid=[%s] len=0x%x/n", ssid->Ssid, (unsigned int)ssid->SsidLength));			RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("assoc_ssid=[%s] len=0x%x/n", pmlmepriv->assoc_ssid.Ssid, (unsigned int)pmlmepriv->assoc_ssid.SsidLength));			rtw_disassoc_cmd(padapter, 0, _TRUE);			if (check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE)				rtw_indicate_disconnect(padapter);			rtw_free_assoc_resources(padapter, 1);			if (check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == _TRUE) {				_clr_fwstate_(pmlmepriv, WIFI_ADHOC_MASTER_STATE);				set_fwstate(pmlmepriv, WIFI_ADHOC_STATE);			}		}	}handle_tkip_countermeasure:	if((status=rtw_handle_tkip_countermeasure(padapter)) == _FAIL)		goto release_mlme_lock;	#ifdef CONFIG_VALIDATE_SSID	if (rtw_validate_ssid(ssid) == _FALSE) {		status = _FAIL;		goto release_mlme_lock;	}//.........这里部分代码省略.........
开发者ID:zefie,项目名称:nxt_andx86_kernel,代码行数:101,


示例19: rtw_proc_init_one

void rtw_proc_init_one(struct net_device *dev){	struct proc_dir_entry *dir_dev = NULL;	struct proc_dir_entry *entry=NULL;	_adapter	*padapter = rtw_netdev_priv(dev);	if(rtw_proc == NULL)	{		if(padapter->chip_type == RTL8188C_8192C)		{			_rtw_memcpy(rtw_proc_name, RTL8192C_PROC_NAME, sizeof(RTL8192C_PROC_NAME));		}		else if(padapter->chip_type == RTL8192D)		{			_rtw_memcpy(rtw_proc_name, RTL8192D_PROC_NAME, sizeof(RTL8192D_PROC_NAME));		}#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))		rtw_proc=create_proc_entry(rtw_proc_name, S_IFDIR, proc_net);#else		rtw_proc=create_proc_entry(rtw_proc_name, S_IFDIR, init_net.proc_net);#endif		if (rtw_proc == NULL) {			DBG_8192C(KERN_ERR "Unable to create rtw_proc directory/n");			return;		}		entry = create_proc_read_entry("ver_info", S_IFREG | S_IRUGO, rtw_proc, proc_get_drv_version, dev);				   		if (!entry) {			DBG_871X("Unable to create_proc_read_entry!/n"); 			return;		}	}		if(padapter->dir_dev == NULL)	{		padapter->dir_dev = create_proc_entry(dev->name, 					  S_IFDIR | S_IRUGO | S_IXUGO, 					  rtw_proc);		dir_dev = padapter->dir_dev;		if(dir_dev==NULL)		{			if(rtw_proc_cnt == 0)			{				if(rtw_proc){#if(LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24))					remove_proc_entry(rtw_proc_name, proc_net);#else					remove_proc_entry(rtw_proc_name, init_net.proc_net);#endif							rtw_proc = NULL;				}			}			DBG_8192C("Unable to create dir_dev directory/n");			return;		}	}	else	{		return;	}	rtw_proc_cnt++;	entry = create_proc_read_entry("write_reg", S_IFREG | S_IRUGO,				   dir_dev, proc_get_write_reg, dev);				   	if (!entry) {		DBG_871X("Unable to create_proc_read_entry!/n"); 		return;	}	entry->write_proc = proc_set_write_reg;	entry = create_proc_read_entry("read_reg", S_IFREG | S_IRUGO,				   dir_dev, proc_get_read_reg, dev);				   	if (!entry) {		DBG_871X("Unable to create_proc_read_entry!/n"); 		return;	}	entry->write_proc = proc_set_read_reg;		entry = create_proc_read_entry("fwstate", S_IFREG | S_IRUGO,				   dir_dev, proc_get_fwstate, dev);				   	if (!entry) {		DBG_871X("Unable to create_proc_read_entry!/n"); 		return;	}	entry = create_proc_read_entry("sec_info", S_IFREG | S_IRUGO,				   dir_dev, proc_get_sec_info, dev);				   	if (!entry) {		DBG_871X("Unable to create_proc_read_entry!/n"); 		return;	}//.........这里部分代码省略.........
开发者ID:hillbeast,项目名称:android_kernel_ainol_novo8,代码行数:101,


示例20: update_txdesc

//.........这里部分代码省略.........				if(pdmpriv->INIDATA_RATE[pattrib->mac_id] & BIT(7))					SET_TX_DESC_DATA_SHORT_92E(ptxdesc, 1);				SET_TX_DESC_TX_RATE_92E(ptxdesc, (pdmpriv->INIDATA_RATE[pattrib->mac_id] & 0x7F));			}			//for debug		#if 1			if(padapter->fix_rate!= 0xFF){				struct dm_priv	*pdmpriv = &pHalData->dmpriv;				SET_TX_DESC_USE_RATE_92E(ptxdesc, 1);				//if(pdmpriv->INIDATA_RATE[pattrib->mac_id] & BIT(7))				{					if(padapter->fix_rate & BIT(7))						SET_TX_DESC_DATA_SHORT_92E(ptxdesc, 1);				}				SET_TX_DESC_TX_RATE_92E(ptxdesc, (padapter->fix_rate & 0x7F));				SET_TX_DESC_DISABLE_FB_92E(ptxdesc,1);				//ptxdesc->datarate = padapter->fix_rate;			}			#endif		}		else		{			// EAP data packet and ARP packet and DHCP.			// Use the 1M data rate to send the EAP/ARP packet.			// This will maybe make the handshake smooth.			SET_TX_DESC_USE_RATE_92E(ptxdesc, 1);			SET_TX_DESC_BK_92E(ptxdesc, 1);			// HW will ignore this setting if the transmission rate is legacy OFDM.			if (pmlmeinfo->preamble_mode == PREAMBLE_SHORT) {				SET_TX_DESC_DATA_SHORT_92E(ptxdesc, 1);			}			SET_TX_DESC_TX_RATE_92E(ptxdesc, MRateToHwRate(pmlmeext->tx_rate));		}	}	else if((pxmitframe->frame_tag&0x0f)== MGNT_FRAMETAG)	{		//DBG_8192C("pxmitframe->frame_tag == MGNT_FRAMETAG/n");		SET_TX_DESC_MBSSID_92E(ptxdesc, pattrib->mbssid);//for issue port1/mbssid beacon		//offset 20		SET_TX_DESC_RETRY_LIMIT_ENABLE_92E(ptxdesc, 1);		if (pattrib->retry_ctrl == _TRUE) {			SET_TX_DESC_DATA_RETRY_LIMIT_92E(ptxdesc, 6);		} else {			SET_TX_DESC_DATA_RETRY_LIMIT_92E(ptxdesc, 12);		}		SET_TX_DESC_USE_RATE_92E(ptxdesc, 1);#ifdef CONFIG_INTEL_PROXIM		if((padapter->proximity.proxim_on==_TRUE)&&(pattrib->intel_proxim==_TRUE)){			DBG_871X("/n %s pattrib->rate=%d/n",__FUNCTION__,pattrib->rate);			SET_TX_DESC_TX_RATE_92E(ptxdesc, pattrib->rate);		}		else#endif		{			SET_TX_DESC_TX_RATE_92E(ptxdesc, MRateToHwRate(pmlmeext->tx_rate));		}#ifdef CONFIG_XMIT_ACK		//CCX-TXRPT ack for xmit mgmt frames.		if (pxmitframe->ack_report) {			SET_TX_DESC_SPE_RPT_92E(ptxdesc, 1);			#ifdef DBG_CCX			DBG_871X("%s set tx report/n", __func__);			#endif		}#endif //CONFIG_XMIT_ACK	}	else if((pxmitframe->frame_tag&0x0f) == TXAGG_FRAMETAG)	{		DBG_8192C("pxmitframe->frame_tag == TXAGG_FRAMETAG/n");	}#ifdef CONFIG_MP_INCLUDED	else if(((pxmitframe->frame_tag&0x0f) == MP_FRAMETAG) &&		(padapter->registrypriv.mp_mode == 1))	{		fill_txdesc_for_mp(padapter, ptxdesc);	}#endif	else	{		DBG_8192C("pxmitframe->frame_tag = %d/n", pxmitframe->frame_tag);		SET_TX_DESC_USE_RATE_92E(ptxdesc, 1);		SET_TX_DESC_TX_RATE_92E(ptxdesc, MRateToHwRate(pmlmeext->tx_rate));	}	rtl8192e_cal_txdesc_chksum(ptxdesc);	_dbg_dump_tx_info(padapter,pxmitframe->frame_tag,ptxdesc);	return pull;}
开发者ID:OpenLD,项目名称:linux-wetek-3.10.y,代码行数:101,


示例21: update_txdesc

//.........这里部分代码省略.........			ptxdesc->txdw5 |= cpu_to_le32(MRateToHwRate(pmlmeext->tx_rate));		}				//offset 24#ifdef CONFIG_TCP_CSUM_OFFLOAD_TX		if ( pattrib->hw_tcp_csum == 1 ) {			// ptxdesc->txdw6 = 0; // clear TCP_CHECKSUM and IP_CHECKSUM. It's zero already!!			u8 ip_hdr_offset = 32 + pattrib->hdrlen + pattrib->iv_len + 8;			ptxdesc->txdw7 = (1 << 31) | (ip_hdr_offset << 16);			DBG_8192C("ptxdesc->txdw7 = %08x/n", ptxdesc->txdw7);		}#endif	}	else if((pxmitframe->frame_tag&0x0f)== MGNT_FRAMETAG)	{		//DBG_8192C("pxmitframe->frame_tag == MGNT_FRAMETAG/n");					//offset 4				ptxdesc->txdw1 |= cpu_to_le32(pattrib->mac_id&0x1f);				qsel = (uint)(pattrib->qsel&0x0000001f);		ptxdesc->txdw1 |= cpu_to_le32((qsel<<QSEL_SHT)&0x00001f00);		ptxdesc->txdw1 |= cpu_to_le32((pattrib->raid<< 16) & 0x000f0000);				//fill_txdesc_sectype(pattrib, ptxdesc);				//offset 8		#ifdef CONFIG_XMIT_ACK		//CCX-TXRPT ack for xmit mgmt frames.		if (pxmitframe->ack_report) {			ptxdesc->txdw2 |= cpu_to_le32(BIT(19));			#ifdef DBG_CCX			DBG_871X("%s set ccx/n", __func__);			#endif		}#endif //CONFIG_XMIT_ACK		//offset 12		ptxdesc->txdw3 |= cpu_to_le32((pattrib->seqnum<<16)&0xffff0000);				//offset 16		ptxdesc->txdw4 |= cpu_to_le32(BIT(8));//driver uses rate				//offset 20		ptxdesc->txdw5 |= cpu_to_le32(BIT(17));//retry limit enable		if(pattrib->retry_ctrl == _TRUE)		{#ifdef CONFIG_P2P			if(!rtw_p2p_chk_state(pwdinfo, P2P_STATE_NONE))			{				ptxdesc->txdw5 |= cpu_to_le32(0x00080000);//retry limit = 2			}			else#endif //CONFIG_P2P				ptxdesc->txdw5 |= cpu_to_le32(0x00180000);//retry limit = 6					}		else			ptxdesc->txdw5 |= cpu_to_le32(0x00300000);//retry limit = 12#ifdef CONFIG_INTEL_PROXIM		if((padapter->proximity.proxim_on==_TRUE)&&(pattrib->intel_proxim==_TRUE)){			printk("/n %s pattrib->rate=%d/n",__FUNCTION__,pattrib->rate);			ptxdesc->txdw5 |= cpu_to_le32( pattrib->rate);		}		else
开发者ID:32743069,项目名称:amlogic_common_3050,代码行数:67,


示例22: rtw_os_alloc_recvframe

int rtw_os_alloc_recvframe(_adapter *padapter, union recv_frame *precvframe, u8 *pdata, _pkt *pskb){	int res = _SUCCESS;	u8	shift_sz = 0;	u32	skb_len, alloc_sz;	_pkt	 *pkt_copy = NULL;		struct rx_pkt_attrib *pattrib = &precvframe->u.hdr.attrib;	if(pdata == NULL)	{				precvframe->u.hdr.pkt = NULL;		res = _FAIL;		return res;	}		//	Modified by Albert 20101213	//	For 8 bytes IP header alignment.	shift_sz = pattrib->qos ? 6:0;//	Qos data, wireless lan header length is 26	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))	{		//alloc_sz = 1664;	//1664 is 128 alignment.		alloc_sz = (skb_len <= 1650) ? 1664:(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;	}		pkt_copy = rtw_skb_alloc(alloc_sz);	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, pdata, skb_len);		precvframe->u.hdr.rx_data = precvframe->u.hdr.rx_tail = pkt_copy->data;	}	else	{#ifdef CONFIG_USE_USB_BUFFER_ALLOC_RX		DBG_871X("%s:can not allocate memory for skb copy/n", __FUNCTION__);		precvframe->u.hdr.pkt = NULL;		//rtw_free_recvframe(precvframe, pfree_recv_queue);		//goto _exit_recvbuf2recvframe;		res = _FAIL;	#else		if((pattrib->mfrag == 1)&&(pattrib->frag_num == 0))		{							DBG_871X("%s: alloc_skb fail , drop frag frame /n", __FUNCTION__);			//rtw_free_recvframe(precvframe, pfree_recv_queue);			res = _FAIL;			goto exit_rtw_os_recv_resource_alloc;		}		if(pskb == NULL)		{			res = _FAIL;			goto exit_rtw_os_recv_resource_alloc;		}					precvframe->u.hdr.pkt = rtw_skb_clone(pskb);		if(precvframe->u.hdr.pkt)		{			precvframe->u.hdr.rx_head = precvframe->u.hdr.rx_data = precvframe->u.hdr.rx_tail = pdata;			precvframe->u.hdr.rx_end =  pdata + alloc_sz;		}		else		{			DBG_871X("%s: rtw_skb_clone fail/n", __FUNCTION__);			//rtw_free_recvframe(precvframe, pfree_recv_queue);			//goto _exit_recvbuf2recvframe;			res = _FAIL;		}#endif				}		exit_rtw_os_recv_resource_alloc:	return res;}
开发者ID:rcd765,项目名称:rtl8723bs_intel_compute_stick,代码行数:98,


示例23: rtw_set_ps_mode

void rtw_set_ps_mode(PADAPTER padapter, u8 ps_mode, u8 smart_ps, u8 bcn_ant_mode){	struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv;#ifdef CONFIG_P2P	struct wifidirect_info	*pwdinfo = &( padapter->wdinfo );#endif //CONFIG_P2P#ifdef CONFIG_TDLS	struct sta_priv *pstapriv = &padapter->stapriv;	_irqL irqL;	int i, j;	_list	*plist, *phead;	struct sta_info *ptdls_sta;#endif //CONFIG_TDLS_func_enter_;	RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,			 ("%s: PowerMode=%d Smart_PS=%d/n",			  __FUNCTION__, ps_mode, smart_ps));	if(ps_mode > PM_Card_Disable) {		RT_TRACE(_module_rtl871x_pwrctrl_c_,_drv_err_,("ps_mode:%d error/n", ps_mode));		return;	}	if (pwrpriv->pwr_mode == ps_mode)	{		if (PS_MODE_ACTIVE == ps_mode) return;		if ((pwrpriv->smart_ps == smart_ps) &&			(pwrpriv->bcn_ant_mode == bcn_ant_mode))		{			return;		}	}#ifdef CONFIG_LPS_LCLK	_enter_pwrlock(&pwrpriv->lock);#endif	//if(pwrpriv->pwr_mode == PS_MODE_ACTIVE)	if(ps_mode == PS_MODE_ACTIVE)	{#ifdef CONFIG_P2P_PS		if(pwdinfo->opp_ps == 0)#endif //CONFIG_P2P_PS		{			DBG_871X("rtw_set_ps_mode: Leave 802.11 power save/n");#ifdef CONFIG_TDLS			_enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);			for(i=0; i< NUM_STA; i++)			{				phead = &(pstapriv->sta_hash[i]);				plist = get_next(phead);				while ((rtw_end_of_queue_search(phead, plist)) == _FALSE)				{					ptdls_sta = LIST_CONTAINOR(plist, struct sta_info, hash_list);					if( ptdls_sta->tdls_sta_state & TDLS_LINKED_STATE )						issue_nulldata_to_TDLS_peer_STA(padapter, ptdls_sta, 0);					plist = get_next(plist);				}			}			_exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);#endif //CONFIG_TDLS			pwrpriv->pwr_mode = ps_mode;			rtw_set_rpwm(padapter, PS_STATE_S4);#ifdef CONFIG_WOWLAN			if (padapter->pwrctrlpriv.wowlan_mode == _TRUE)			{				u32 start_time, delay_ms;				u8 val8;				delay_ms = 20;				start_time = rtw_get_current_time();				do {					val8 = rtw_read8(padapter, 0x90);					if (!(val8 & BIT(0))) break;					if (rtw_get_passing_time_ms(start_time) > delay_ms)					{						DBG_871X("%s: Wait for FW 32K leave more than %u ms!!!/n", __FUNCTION__, delay_ms);						break;					}						rtw_usleep_os(100);				} while (1);				pwrpriv->cpwm = PS_STATE_S4;			}#endif			rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode));			pwrpriv->bFwCurrentInPSMode = _FALSE;		}	}
开发者ID:GREYFOXRGR,项目名称:kernel,代码行数:96,


示例24: rtw_xmit

s32 rtw_xmit(_adapter *padapter, _pkt **ppkt){	static u32 start = 0;	static u32 drop_cnt = 0;	struct xmit_priv *pxmitpriv = &padapter->xmitpriv;	struct xmit_frame *pxmitframe = NULL;	TXDESC_8195A txdesc;	struct xmit_buf *pxmitbuf;	s32 res;	struct intf_hdl *pintfhdl;	_pkt *skb;	struct pkt_file pfile;	DBG_871X("%s(): ==> xmit wanted!/n", __FUNCTION__);//		pfile.pkt = *ppkt;//		pfile.cur_addr = pfile.buf_start = *ppkt->data;//		pfile.pkt_len = pfile.buf_len = *skb->len;//		skb =  *ppkt;//		pintfhdl->padapter = padapter;//		pxmitbuf = (struct xmit_buf *)rtw_zmalloc(sizeof(*pxmitbuf));//		_rtw_memcpy(pxmitbuf->pdata, skb->data, skb->len);//			_rtw_init_listhead(&pxmitbuf->list);//	//			pxmitbuf->priv_data = NULL;//			pxmitbuf->padapter = padapter;//			pxmitbuf->buf_tag = XMITBUF_DATA;//			pxmitbuf->pallocated_buf = rtw_zmalloc(MAX_XMITBUF_SZ + XMITBUF_ALIGN_SZ);//			if (pxmitbuf->pallocated_buf == NULL)//			{//				return _FAIL;//			}//	//			pxmitbuf->pbuf = (u8 *)N_BYTE_ALIGMENT((SIZE_PTR)(pxmitbuf->pallocated_buf), XMITBUF_ALIGN_SZ);//	#if defined(CONFIG_SDIO_HCI) || defined(CONFIG_GSPI_HCI)//			pxmitbuf->phead = pxmitbuf->pbuf;//			pxmitbuf->pend = pxmitbuf->pbuf + MAX_XMITBUF_SZ;//			pxmitbuf->len = 0;//			pxmitbuf->pdata = pxmitbuf->ptail = pxmitbuf->phead;//	#endif//	//			pxmitbuf->flags = XMIT_VO_QUEUE;//		if (start == 0)//			start = rtw_get_current_time();//	pxmitframe = rtw_alloc_xmitframe(pxmitpriv);//		if (rtw_get_passing_time_ms(start) > 2000) {//			if (drop_cnt)//				DBG_871X("DBG_TX_DROP_FRAME %s no more pxmitframe, drop_cnt:%u/n", __FUNCTION__, drop_cnt);//			start = rtw_get_current_time();//			drop_cnt = 0;//		}//	//		if (pxmitframe == NULL) {//			drop_cnt ++;//			RT_TRACE(_module_xmit_osdep_c_, _drv_err_, ("rtw_xmit: no more pxmitframe/n"));//			return -1;//		}//		res = update_txdesc(padapter, *ppkt, &txdesc);//		TxDescGen(&txdesc, txdesc.txpktsize, 1);//		pxmitframe->pxmitbuf = pxmitbuf;//		pxmitframe->pkt = *ppkt;//	//		skb = *ppkt;	//		_rtw_memcpy(pxmitbuf->pdata, skb->data, skb->len);//	sdio_write_port(pintfhdl, WLAN_TX_HIQ_DEVICE_ID, txdesc.txpktsize, pxmitbuf);//		if (rtw_hal_xmit(padapter, pxmitframe) == _FALSE)//			return 1;	return 0;}
开发者ID:qiancuo,项目名称:Ameba_sdio_device,代码行数:72,


示例25: rtw_set_ps_mode

void rtw_set_ps_mode(PADAPTER padapter, u8 ps_mode, u8 smart_ps){	struct pwrctrl_priv *pwrpriv = &padapter->pwrctrlpriv;#ifdef CONFIG_P2P	struct wifidirect_info	*pwdinfo = &( padapter->wdinfo );#endif //CONFIG_P2P#ifdef CONFIG_TDLS	struct sta_priv *pstapriv = &padapter->stapriv;	_irqL irqL;	int i, j;	_list	*plist, *phead;	struct sta_info *ptdls_sta;#endif //CONFIG_TDLS_func_enter_;	RT_TRACE(_module_rtl871x_pwrctrl_c_, _drv_notice_,			 ("%s: PowerMode=%d Smart_PS=%d/n",			  __FUNCTION__, ps_mode, smart_ps));	if(ps_mode > PM_Card_Disable) {		RT_TRACE(_module_rtl871x_pwrctrl_c_,_drv_err_,("ps_mode:%d error/n", ps_mode));		return;	}	if((pwrpriv->pwr_mode == ps_mode) &&		(pwrpriv->smart_ps == smart_ps)){		return;	}	//if(pwrpriv->pwr_mode == PS_MODE_ACTIVE)	if(ps_mode == PS_MODE_ACTIVE)	{#ifdef CONFIG_P2P_PS		if(pwdinfo->opp_ps == 0)#endif // CONFIG_P2P_PS		{#ifdef CONFIG_LPS_LCLK			_enter_pwrlock(&pwrpriv->lock);#endif			DBG_871X("rtw_set_ps_mode(): Busy Traffic , Leave 802.11 power save../n");#ifdef CONFIG_TDLS			_enter_critical_bh(&pstapriv->sta_hash_lock, &irqL);			for(i=0; i< NUM_STA; i++)			{				phead = &(pstapriv->sta_hash[i]);				plist = get_next(phead);				while ((rtw_end_of_queue_search(phead, plist)) == _FALSE)				{					ptdls_sta = LIST_CONTAINOR(plist, struct sta_info, hash_list);					if( ptdls_sta->tdls_sta_state & TDLS_LINKED_STATE )						issue_nulldata_to_TDLS_peer_STA(padapter, ptdls_sta, 0);					plist = get_next(plist);				}			}			_exit_critical_bh(&pstapriv->sta_hash_lock, &irqL);#endif //CONFIG_TDLS			pwrpriv->smart_ps = smart_ps;			pwrpriv->pwr_mode = ps_mode;			rtw_set_rpwm(padapter, PS_STATE_S4);#ifdef CONFIG_LPS_LCLK{			u32 n = 0;			while (pwrpriv->cpwm != PS_STATE_S4) {				n++;				if (n == 10000) break;				if (padapter->bSurpriseRemoved == _TRUE) break;				rtw_msleep_os(1);			}			if (n == 10000)				printk(KERN_ERR "%s: wait CPWM to S4 too long! cpwm=0x%02x/n", __func__, pwrpriv->cpwm);}#endif			rtw_hal_set_hwreg(padapter, HW_VAR_H2C_FW_PWRMODE, (u8 *)(&ps_mode));			pwrpriv->bFwCurrentInPSMode = _FALSE;#ifdef CONFIG_LPS_LCLK			_exit_pwrlock(&pwrpriv->lock);#endif		}	}
开发者ID:lwfinger,项目名称:rtl8192cu,代码行数:87,


示例26: rtw_set_802_11_bssid

u8 rtw_set_802_11_bssid(_adapter* padapter, u8 *bssid){		_irqL irqL;		u8 status=_SUCCESS;	u32 cur_time = 0;	struct mlme_priv *pmlmepriv = &padapter->mlmepriv;	_func_enter_;		RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_notice_,		 ("+rtw_set_802_11_bssid: bssid="MAC_FMT"/n", MAC_ARG(bssid) ));	if ((bssid[0]==0x00 && bssid[1]==0x00 && bssid[2]==0x00 && bssid[3]==0x00 && bssid[4]==0x00 &&bssid[5]==0x00) ||	    (bssid[0]==0xFF && bssid[1]==0xFF && bssid[2]==0xFF && bssid[3]==0xFF && bssid[4]==0xFF &&bssid[5]==0xFF))	{		status = _FAIL;		goto exit;	}			_enter_critical_bh(&pmlmepriv->lock, &irqL);	DBG_871X("Set BSSID under fw_state=0x%08x/n", get_fwstate(pmlmepriv));	if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == _TRUE) {		goto handle_tkip_countermeasure;	} else if (check_fwstate(pmlmepriv, _FW_UNDER_LINKING) == _TRUE) {		goto release_mlme_lock;	}	if (check_fwstate(pmlmepriv, _FW_LINKED|WIFI_ADHOC_MASTER_STATE) == _TRUE)	{		RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_info_, ("set_bssid: _FW_LINKED||WIFI_ADHOC_MASTER_STATE/n"));		if (_rtw_memcmp(&pmlmepriv->cur_network.network.MacAddress, bssid, ETH_ALEN) == _TRUE)		{					if (check_fwstate(pmlmepriv, WIFI_STATION_STATE) == _FALSE)				goto release_mlme_lock;//it means driver is in WIFI_ADHOC_MASTER_STATE, we needn't create bss again.		} else {			RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("Set BSSID not the same bssid/n"));			RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("set_bssid="MAC_FMT"/n", MAC_ARG(bssid) ));			RT_TRACE(_module_rtl871x_ioctl_set_c_,_drv_info_,("cur_bssid="MAC_FMT"/n", MAC_ARG(pmlmepriv->cur_network.network.MacAddress) ));			rtw_disassoc_cmd(padapter);			if (check_fwstate(pmlmepriv, _FW_LINKED) == _TRUE)				rtw_indicate_disconnect(padapter);			rtw_free_assoc_resources(padapter, 1);			if ((check_fwstate(pmlmepriv, WIFI_ADHOC_MASTER_STATE) == _TRUE)) {				_clr_fwstate_(pmlmepriv, WIFI_ADHOC_MASTER_STATE);				set_fwstate(pmlmepriv, WIFI_ADHOC_STATE);			}				}	}handle_tkip_countermeasure:	//should we add something here...?#ifdef PLATFORM_LINUX	if (padapter->securitypriv.btkip_countermeasure == _TRUE) {		cur_time = rtw_get_current_time();		if( (cur_time - padapter->securitypriv.btkip_countermeasure_time) > 60 * HZ )		{			padapter->securitypriv.btkip_countermeasure = _FALSE;			padapter->securitypriv.btkip_countermeasure_time = 0;		}		else		{			status = _FAIL;			goto release_mlme_lock;		}	}#endif	_rtw_memcpy(&pmlmepriv->assoc_bssid, bssid, ETH_ALEN);	pmlmepriv->assoc_by_bssid=_TRUE;	if (check_fwstate(pmlmepriv, _FW_UNDER_SURVEY) == _TRUE) {		pmlmepriv->to_join = _TRUE;		}	else {		status = rtw_do_join(padapter);	}release_mlme_lock:	_exit_critical_bh(&pmlmepriv->lock, &irqL);		exit:	RT_TRACE(_module_rtl871x_ioctl_set_c_, _drv_err_,		("rtw_set_802_11_bssid: status=%d/n", status));	_func_exit_;	return status;}
开发者ID:develersrl,项目名称:winmate-kernel,代码行数:98,


示例27: shutdown_card

static void shutdown_card(void){	u32 addr;	u8 tmp8, cnt=0;	if (NULL == g_test_adapter)	{		DBG_871X("%s: padapter==NULL/n", __FUNCTION__);		return;	}#ifdef CONFIG_FWLPS_IN_IPS	LeaveAllPowerSaveMode(g_test_adapter);#endif // CONFIG_FWLPS_IN_IPS	// Leave SDIO HCI Suspend	addr = 0x10250086;	rtw_write8(g_test_adapter, addr, 0);	do {		tmp8 = rtw_read8(g_test_adapter, addr);		cnt++;		DBG_871X(FUNC_ADPT_FMT ": polling SDIO_HSUS_CTRL(0x%x)=0x%x, cnt=%d/n",			FUNC_ADPT_ARG(g_test_adapter), addr, tmp8, cnt);		if (tmp8 & BIT(1))			break;		if (cnt >= 100)		{			DBG_871X(FUNC_ADPT_FMT ": polling 0x%x[1]==1 FAIL!!/n",				FUNC_ADPT_ARG(g_test_adapter), addr);			break;		}		rtw_mdelay_os(10);	} while (1);	// unlock register I/O	rtw_write8(g_test_adapter, 0x1C, 0);	// enable power down function	// 0x04[4] = 1	// 0x05[7] = 1	addr = 0x04;	tmp8 = rtw_read8(g_test_adapter, addr);	tmp8 |= BIT(4);	rtw_write8(g_test_adapter, addr, tmp8);	DBG_871X(FUNC_ADPT_FMT ": read after write 0x%x=0x%x/n",		FUNC_ADPT_ARG(g_test_adapter), addr, rtw_read8(g_test_adapter, addr));	addr = 0x05;	tmp8 = rtw_read8(g_test_adapter, addr);	tmp8 |= BIT(7);	rtw_write8(g_test_adapter, addr, tmp8);	DBG_871X(FUNC_ADPT_FMT ": read after write 0x%x=0x%x/n",		FUNC_ADPT_ARG(g_test_adapter), addr, rtw_read8(g_test_adapter, addr));	// lock register page0 0x0~0xB read/write	rtw_write8(g_test_adapter, 0x1C, 0x0E);	g_test_adapter->bSurpriseRemoved = _TRUE;	DBG_871X(FUNC_ADPT_FMT ": bSurpriseRemoved=%d/n",		FUNC_ADPT_ARG(g_test_adapter), g_test_adapter->bSurpriseRemoved);#ifdef CONFIG_CONCURRENT_MODE	if (g_test_adapter->pbuddy_adapter)	{		PADAPTER pbuddy;		pbuddy = g_test_adapter->pbuddy_adapter;		pbuddy->bSurpriseRemoved = _TRUE;		DBG_871X(FUNC_ADPT_FMT ": buddy(" ADPT_FMT ") bSurpriseRemoved=%d/n",			FUNC_ADPT_ARG(g_test_adapter), ADPT_ARG(pbuddy), pbuddy->bSurpriseRemoved);	}#endif // CONFIG_CONCURRENT_MODE}
开发者ID:1fans,项目名称:rtl8192eu-linux-driver,代码行数:74,


示例28: rtw_hal_init

uint	 rtw_hal_init(_adapter *padapter) {	uint	status = _SUCCESS;	struct dvobj_priv *dvobj = adapter_to_dvobj(padapter);	int i;#ifdef CONFIG_DUALMAC_CONCURRENT	if(padapter->hw_init_completed == _TRUE)	{		DBG_871X("rtw_hal_init: hw_init_completed == _TRUE/n");		return status;	}	// before init mac0, driver must init mac1 first to avoid usb rx error.	if((padapter->pbuddy_adapter != NULL) && (padapter->DualMacConcurrent == _TRUE)		&& (padapter->adapter_type == PRIMARY_ADAPTER))	{		if(padapter->pbuddy_adapter->hw_init_completed == _TRUE)		{			DBG_871X("rtw_hal_init: pbuddy_adapter hw_init_completed == _TRUE/n");		}		else		{			status = 	padapter->HalFunc.hal_init(padapter->pbuddy_adapter);			if(status == _SUCCESS){				padapter->pbuddy_adapter->hw_init_completed = _TRUE;			}			else{			 	padapter->pbuddy_adapter->hw_init_completed = _FALSE;				RT_TRACE(_module_hal_init_c_,_drv_err_,("rtw_hal_init: hal__init fail(pbuddy_adapter)/n"));				DBG_871X("rtw_hal_init: hal__init fail(pbuddy_adapter)/n");				return status;			}		}	}#endif	status = padapter->HalFunc.hal_init(padapter);	if(status == _SUCCESS){		rtw_hal_init_opmode(padapter);		for (i = 0; i<dvobj->iface_nums; i++)			dvobj->padapters[i]->hw_init_completed = _TRUE;					if (padapter->registrypriv.notch_filter == 1)			rtw_hal_notch_filter(padapter, 1);		rtw_hal_reset_security_engine(padapter);		for (i = 0; i<dvobj->iface_nums; i++)			rtw_sec_restore_wep_key(dvobj->padapters[i]);		rtw_led_control(padapter, LED_CTL_POWER_ON);		init_hw_mlme_ext(padapter);	}	else{		for (i = 0; i<dvobj->iface_nums; i++)			dvobj->padapters[i]->hw_init_completed = _FALSE;		DBG_871X("rtw_hal_init: hal__init fail/n");	}	RT_TRACE(_module_hal_init_c_,_drv_err_,("-rtl871x_hal_init:status=0x%x/n",status));	return status;}	
开发者ID:codesnake,项目名称:kernel_amlogic_meson-common,代码行数:69,



注:本文中的DBG_871X函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ DBG_871X_LEVEL函数代码示例
C++ DBGV函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。