亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? rtusb_io.c

?? 臺灣RALink公司的 rt2570無線 802.11g 網卡的 驅動的源代碼 ,支持linux2.4以上的 內河
?? C
?? 第 1 頁 / 共 2 頁
字號:
/*
 ***************************************************************************
 * Ralink Tech Inc.
 * 4F, No. 2 Technology 5th Rd.
 * Science-based Industrial Park
 * Hsin-chu, Taiwan, R.O.C.
 *
 * (c) Copyright 2002-2004, Ralink Technology, Inc.
 *
 * This program is free software; you can redistribute it and/or modify  * 
 * it under the terms of the GNU General Public License as published by  * 
 * the Free Software Foundation; either version 2 of the License, or     * 
 * (at your option) any later version.                                   * 
 *                                                                       * 
 * This program is distributed in the hope that it will be useful,       * 
 * but WITHOUT ANY WARRANTY; without even the implied warranty of        * 
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * 
 * GNU General Public License for more details.                          * 
 *                                                                       * 
 * You should have received a copy of the GNU General Public License     * 
 * along with this program; if not, write to the                         * 
 * Free Software Foundation, Inc.,                                       * 
 * 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             * 
 *                                                                       * 
 ************************************************************************
	Module Name:
	rtusb_io.c

	Abstract:

	Revision History:
	Who			When			What
	--------	----------		----------------------------------------------
	Name		Date			Modification logs
	Jan Lee		2005-06-01		Release
*/
#include	"rt_config.h"
/*
	========================================================================
	
	Routine Description:

	Arguments:

	Return Value:

	IRQL = 
	
	Note:
	
	========================================================================
*/
NTSTATUS	RTUSBSingleRead(
	IN	PRT2570ADAPTER	pAdapter,
	IN	USHORT			Offset,
	OUT	PUSHORT			pValue)
{
	NTSTATUS	Status;

	Status = RTUSB_VendorRequest(
		pAdapter,
		0,
		DEVICE_VENDOR_REQUEST_IN,
		0x3,
		0,
		Offset,
		pValue,
		2);
	
	return Status;
}

/*
	========================================================================
	
	Routine Description:

	Arguments:

	Return Value:

	IRQL = 
	
	Note:
	
	========================================================================
*/
NTSTATUS	RTUSBSingleWrite(
	IN	PRT2570ADAPTER	pAdapter,
	IN	USHORT			Offset,
	IN	USHORT			Value)
{
	NTSTATUS	Status;
	
	Status = RTUSB_VendorRequest(
		pAdapter,
		0,
		DEVICE_VENDOR_REQUEST_OUT,
		0x2,
		Value,
		Offset,
		NULL,
		0);
	
	return Status;
}

/*
	========================================================================
	
	Routine Description:

	Arguments:

	Return Value:

	IRQL = 
	
	Note:
	
	========================================================================
*/
NTSTATUS	RTUSBMultiRead(
	IN	PRT2570ADAPTER	pAdapter,
	IN	USHORT			Offset,
	OUT	PUCHAR			pData,
	IN	USHORT			length)
{
	NTSTATUS	Status;
	
	Status = RTUSB_VendorRequest(
		pAdapter,
		0,
		DEVICE_VENDOR_REQUEST_IN,
		0x7,
		0,
		Offset,
		pData,
		length);
	
	return Status;
}

/*
	========================================================================
	
	Routine Description:

	Arguments:

	Return Value:

	IRQL = 
	
	Note:
	
	========================================================================
*/
NTSTATUS	RTUSBMultiWrite(
	IN	PRT2570ADAPTER	pAdapter,
	IN	USHORT			Offset,
	IN	PUCHAR			pData,
	IN	USHORT			length)
{
	NTSTATUS	Status;
	
	Status = RTUSB_VendorRequest(
		pAdapter,
		0,
		DEVICE_VENDOR_REQUEST_OUT,
		0x6,
		0,
		Offset,
		pData,
		length);
	
	return Status;
}

/*
	========================================================================
	
	Routine Description:

	Arguments:

	Return Value:

	IRQL = 
	
	Note:
	
	========================================================================
*/
NTSTATUS	RTUSBReadMACRegister(
	IN	PRT2570ADAPTER	pAdapter,
	IN	USHORT			Offset,
	OUT	PUSHORT			pValue)
{
	NTSTATUS	Status;
	
	Status = RTUSB_VendorRequest(
		pAdapter,
		0,
		DEVICE_VENDOR_REQUEST_IN,
		0x3,
		0,
		Offset + 0x400,
		pValue,
		2);
	
	return Status;
}

/*
	========================================================================
	
	Routine Description:

	Arguments:

	Return Value:

	IRQL = 
	
	Note:
	
	========================================================================
*/
NTSTATUS	RTUSBWriteMACRegister(
	IN	PRT2570ADAPTER	pAdapter,
	IN	USHORT			Offset,
	IN	USHORT			Value)
{
	NTSTATUS	Status;
	if (Offset == TXRX_CSR2)
     		DBGPRINT(RT_DEBUG_ERROR, " !!!!!set Rx control = %x\n", Value);
     
	Status = RTUSB_VendorRequest(
		pAdapter,
		0,
		DEVICE_VENDOR_REQUEST_OUT,
		0x2,
		Value,
		Offset + 0x400,
		NULL,
		0);
	
	return Status;
}

/*
	========================================================================
	
	Routine Description:

	Arguments:

	Return Value:

	IRQL = 
	
	Note:
	
	========================================================================
*/
NTSTATUS	RTUSBMultiReadMAC(
	IN	PRT2570ADAPTER	pAdapter,
	IN	USHORT			Offset,
	OUT	PUCHAR			pData,
	IN	USHORT			length)
{
	NTSTATUS	Status;
	
	Status = RTUSB_VendorRequest(
		pAdapter,
		0,
		DEVICE_VENDOR_REQUEST_IN,
		0x7,
		0,
		Offset + 0x400,
		pData,
		length);
	
	return Status;
}

/*
	========================================================================
	
	Routine Description:

	Arguments:

	Return Value:

	IRQL = 
	
	Note:
	
	========================================================================
*/
NTSTATUS	RTUSBMultiWriteMAC(
	IN	PRT2570ADAPTER	pAdapter,
	IN	USHORT			Offset,
	IN	PUCHAR			pData,
	IN	USHORT			length)
{
	NTSTATUS	Status;
	
	Status = RTUSB_VendorRequest(
		pAdapter,
		0,
		DEVICE_VENDOR_REQUEST_OUT,
		0x6,
		0,
		Offset + 0x400,
		pData,
		length);
	
	return Status;
}

/*
	========================================================================
	
	Routine Description:

	Arguments:

	Return Value:

	IRQL = 
	
	Note:
	
	========================================================================
*/
NTSTATUS	RTUSBReadBBPRegister(
	IN	PRT2570ADAPTER	pAdapter,
	IN	UCHAR			Id,
	IN	PUCHAR			pValue)
{
	PHY_CSR7_STRUC	PhyCsr7;
	USHORT			temp;
	UINT			i = 0;

	if (RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_REMOVE_IN_PROGRESS))
	{
		DBGPRINT(RT_DEBUG_ERROR,"device connected\n");
		return -1;
	}

	PhyCsr7.value				= 0;
	PhyCsr7.field.WriteControl	= 1;
	PhyCsr7.field.RegID 		= Id;
	RTUSBWriteMACRegister(pAdapter, PHY_CSR7, PhyCsr7.value);
	
	do
	{
		RTUSBReadMACRegister(pAdapter, PHY_CSR8, &temp);
		if (!(temp & BUSY))
			break;
		i++;
	}
	while ((i < RETRY_LIMIT) && (!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_REMOVE_IN_PROGRESS)));

	if ((i == RETRY_LIMIT) || (RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_REMOVE_IN_PROGRESS)))
	{
		DBGPRINT_RAW(RT_DEBUG_ERROR, "Retry count exhausted or device removed!!!\n");
		return STATUS_UNSUCCESSFUL;
	}

	RTUSBReadMACRegister(pAdapter, PHY_CSR7, (PUSHORT)&PhyCsr7);
	*pValue = (UCHAR)PhyCsr7.field.Data;
	
	return STATUS_SUCCESS;
}

/*
	========================================================================
	
	Routine Description:

	Arguments:

	Return Value:

	IRQL = 
	
	Note:
	
	========================================================================
*/
NTSTATUS	RTUSBWriteBBPRegister(
	IN	PRT2570ADAPTER	pAdapter,
	IN	UCHAR			Id,
	IN	UCHAR			Value)
{
	PHY_CSR7_STRUC	PhyCsr7;
	USHORT			temp;
	UINT			i = 0;

	if (RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_REMOVE_IN_PROGRESS))
	{
		DBGPRINT(RT_DEBUG_ERROR,"device connected\n");
		return -1;
	}
	do
	{
		RTUSBReadMACRegister(pAdapter, PHY_CSR8, &temp);
		if (!(temp & BUSY))
			break;
		i++;
	}
	while ((i < RETRY_LIMIT) && (!RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_REMOVE_IN_PROGRESS)));

	if ((i == RETRY_LIMIT) || (RTMP_TEST_FLAG(pAdapter, fRTMP_ADAPTER_REMOVE_IN_PROGRESS)))
	{
		DBGPRINT_RAW(RT_DEBUG_ERROR, "Retry count exhausted or device removed!!!\n");
		return STATUS_UNSUCCESSFUL;
	}

	PhyCsr7.value				= 0;
	PhyCsr7.field.WriteControl	= 0;
	PhyCsr7.field.RegID 		= Id;
	PhyCsr7.field.Data			= Value;
	RTUSBWriteMACRegister(pAdapter, PHY_CSR7, PhyCsr7.value);
	pAdapter->PortCfg.BbpWriteLatch[Id] = Value;
	
	return STATUS_SUCCESS;
}

/*
	========================================================================
	
	Routine Description:

	Arguments:

	Return Value:

	IRQL = 
	
	Note:
	
	========================================================================
*/
NTSTATUS	RTUSBWriteRFRegister(
	IN	PRT2570ADAPTER	pAdapter,
	IN	ULONG			Value)
{
	PHY_CSR10_STRUC	PhyCsr10;
	UINT			i = 0;

	do

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲欧美日韩国产成人精品影院| 国产精品国模大尺度视频| 久久综合99re88久久爱| 亚洲日本一区二区三区| 激情五月激情综合网| 欧美特级限制片免费在线观看| 久久午夜色播影院免费高清 | 国产日韩欧美一区二区三区综合| 亚洲制服欧美中文字幕中文字幕| 国产成人av福利| 日韩精品一区二区三区在线| 亚洲一区二区三区四区的| 成人激情动漫在线观看| 日韩午夜av一区| 免费成人深夜小野草| 99久久精品国产麻豆演员表| 国产午夜精品在线观看| 青娱乐精品视频在线| 欧美日韩国产影片| 一区二区三区中文免费| 99免费精品视频| 欧美国产在线观看| 国产精品一区二区无线| 精品国产电影一区二区| 久久91精品国产91久久小草| 91精品国产综合久久香蕉麻豆| 亚洲国产日韩a在线播放| 色婷婷国产精品| 一区二区三区国产豹纹内裤在线| 99精品热视频| 亚洲日本在线观看| 色猫猫国产区一区二在线视频| 亚洲人成伊人成综合网小说| 91丝袜呻吟高潮美腿白嫩在线观看| 国产欧美精品一区| 成人一区二区视频| 欧美国产日产图区| 波多野结衣在线一区| 综合激情成人伊人| 欧美性xxxxx极品少妇| 午夜精品久久久久久久久久久| 欧美日韩国产精选| 美女mm1313爽爽久久久蜜臀| 精品国产污污免费网站入口 | www.亚洲在线| 国产精品久久久久精k8| 在线中文字幕一区二区| 亚洲高清在线精品| 日韩一级大片在线观看| 国产精品黄色在线观看| 色婷婷亚洲一区二区三区| 亚洲美女屁股眼交3| 欧美男人的天堂一二区| 久久国产精品第一页| 精品久久久久一区二区国产| 粉嫩蜜臀av国产精品网站| 最新日韩av在线| 欧美人与z0zoxxxx视频| 国产美女在线精品| 一区二区视频在线看| 51精品国自产在线| 国产乱国产乱300精品| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 在线播放视频一区| 韩国女主播一区| 最好看的中文字幕久久| 欧美高清视频不卡网| 九一九一国产精品| 亚洲精品视频免费看| 91精品黄色片免费大全| eeuss鲁一区二区三区| 日韩高清在线电影| 亚洲色大成网站www久久九九| 欧美美女bb生活片| av电影在线观看一区| 麻豆91小视频| 亚洲黄色性网站| 久久久久亚洲蜜桃| 欧美放荡的少妇| 97国产一区二区| 韩日欧美一区二区三区| 亚洲午夜电影网| 亚洲国产精品传媒在线观看| 欧美日本一道本| 91麻豆国产自产在线观看| 黄色资源网久久资源365| 亚洲国产视频一区| 中文字幕一区在线观看| 精品久久久久久综合日本欧美| 在线观看亚洲专区| 成人免费视频免费观看| 久久精品国产成人一区二区三区| 亚洲一区二区三区四区的 | 日韩av电影天堂| 一区二区三区在线视频观看| 国产丝袜美腿一区二区三区| 欧美一区二区免费观在线| 色哟哟日韩精品| 不卡一二三区首页| 国产伦精品一区二区三区免费| 免费精品视频最新在线| 亚洲123区在线观看| 一区二区三区免费看视频| 亚洲欧洲成人自拍| 国产精品久久久久久一区二区三区 | 欧美日韩一区二区欧美激情| 色www精品视频在线观看| www.日韩在线| 99精品久久久久久| 成人av在线观| 99热99精品| 一本久道久久综合中文字幕| 成人午夜在线播放| 福利91精品一区二区三区| 国产成人精品影院| 成人av资源在线| 91在线观看美女| 欧美亚洲综合另类| 欧美日韩国产成人在线91| 欧美精品丝袜中出| 91精品国产色综合久久久蜜香臀| 欧美军同video69gay| 欧美一区二区成人6969| 日韩精品一区二区三区四区| 久久一区二区三区四区| 国产免费观看久久| 亚洲欧美综合在线精品| 亚洲一线二线三线久久久| 亚洲1区2区3区4区| 久久国产日韩欧美精品| 国产成人aaaa| 91久久精品一区二区三区| 欧美精品精品一区| 亚洲精品一区二区三区99| 久久久久久久久久久久久久久99| 欧美精彩视频一区二区三区| 国产精品国产自产拍高清av王其| 亚洲三级免费观看| 日韩av电影免费观看高清完整版在线观看| 日本sm残虐另类| 粗大黑人巨茎大战欧美成人| 91免费看视频| 欧美成人激情免费网| 国产精品视频看| 亚洲一卡二卡三卡四卡| 狠狠色丁香久久婷婷综| 99国产精品视频免费观看| 在线不卡的av| 欧美激情综合五月色丁香小说| 亚洲自拍偷拍九九九| 精品一区二区精品| 91免费视频网| 精品理论电影在线观看 | 蜜桃视频在线观看一区| 国产99久久久国产精品潘金| 欧美视频完全免费看| 久久日韩粉嫩一区二区三区| 一区二区三区四区在线播放| 久久99精品久久久久| 色老头久久综合| 国产亚洲1区2区3区| 三级欧美韩日大片在线看| 懂色av一区二区三区免费看| 在线电影院国产精品| 综合久久国产九一剧情麻豆| 国产中文字幕精品| 欧美日韩国产高清一区| 国产精品久久久久久久午夜片| 免费高清在线视频一区·| 91蝌蚪porny| 国产欧美一区二区在线| 免费成人av在线| 欧美三级电影精品| 中文字幕一区二区在线观看| 国产一区二区女| 91精品婷婷国产综合久久| 一区二区三区日韩在线观看| 成人午夜精品一区二区三区| 日韩欧美一二三| 日日夜夜精品视频天天综合网| 99国产欧美久久久精品| 国产日产亚洲精品系列| 久久成人免费网站| 正在播放亚洲一区| 亚洲一区视频在线观看视频| 99re这里只有精品视频首页| 国产日韩欧美不卡在线| 狠狠色丁香婷综合久久| 欧美成人bangbros| 日本在线不卡一区| 91精品国产综合久久精品麻豆 | 国产一区二区三区| 精品乱人伦小说| 国内成人自拍视频| 欧美r级在线观看| 国产一区二区三区黄视频 | 久久无码av三级| 国产剧情一区二区三区| 精品av综合导航| 国产精品一二一区|