亚洲欧美第一页_禁久久精品乱码_粉嫩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一区二区三区免费野_久草精品视频
在线观看欧美精品| 久久久精品黄色| 色综合天天视频在线观看| 国内精品国产成人| 日韩中文字幕亚洲一区二区va在线| 激情欧美一区二区三区在线观看| 一区二区三区日韩精品| 国产精品色呦呦| 亚洲人吸女人奶水| 中文字幕精品在线不卡| 亚洲色图在线看| 亚洲一区二区视频在线观看| 亚洲成人免费视频| 久久99精品久久久久| 久久精品免费观看| 国产成人综合网| 欧美色综合网站| 久久综合网色—综合色88| 亚洲国产精品激情在线观看| 亚洲品质自拍视频网站| 一区二区免费在线播放| 青青草97国产精品免费观看无弹窗版 | 国产精品视频一二三| 国产精品国产三级国产专播品爱网| 国产精品热久久久久夜色精品三区| 亚洲人精品一区| 国产成人在线看| 欧美老肥妇做.爰bbww| 国产精品女同一区二区三区| 久久99深爱久久99精品| 在线亚洲一区二区| 亚洲最快最全在线视频| 国产精品视频在线看| 最新国产精品久久精品| 国产老妇另类xxxxx| 欧美日韩专区在线| 综合分类小说区另类春色亚洲小说欧美| 三级在线观看一区二区 | 欧美人与z0zoxxxx视频| 中文字幕av免费专区久久| 日本sm残虐另类| 日韩三级伦理片妻子的秘密按摩| 亚洲综合成人在线视频| 欧亚一区二区三区| 日本女优在线视频一区二区| 91麻豆精品91久久久久同性| 蜜臀va亚洲va欧美va天堂 | 亚洲与欧洲av电影| 欧美日韩一区二区不卡| 天堂一区二区在线| 日韩视频一区二区| 国产成人午夜视频| 亚洲靠逼com| 91精品国产91久久综合桃花| 国产精品一二三区在线| 亚洲综合一区二区| 精品国产乱码91久久久久久网站| 狠狠色丁香久久婷婷综| 欧美高清在线精品一区| 色综合咪咪久久| 国内精品不卡在线| 亚洲香肠在线观看| 中文字幕不卡三区| 91精品国产欧美一区二区18| 成人精品国产福利| 日本女人一区二区三区| 综合av第一页| 99久久免费国产| 亚洲免费观看高清完整版在线观看熊| 欧美亚洲精品一区| 成人白浆超碰人人人人| 国产福利视频一区二区三区| 一区二区三区不卡视频在线观看| 久久影音资源网| 日韩亚洲欧美一区二区三区| 91免费国产在线| 91丨porny丨首页| a级精品国产片在线观看| 国产.欧美.日韩| 99国产精品久久久久| 成人毛片视频在线观看| 精品一区二区综合| 久久国产婷婷国产香蕉| 青青草国产成人99久久| 免费成人你懂的| 国产黄人亚洲片| 成a人片国产精品| 在线观看视频一区二区欧美日韩| 91网址在线看| 精品视频一区二区三区免费| 91丨九色丨蝌蚪富婆spa| 欧美丝袜第三区| 欧美久久久久久蜜桃| 欧美α欧美αv大片| 国产网红主播福利一区二区| 久久综合视频网| 一区二区三区在线看| 亚洲高清免费一级二级三级| 国产制服丝袜一区| 色丁香久综合在线久综合在线观看| 欧洲亚洲精品在线| 欧美色大人视频| 日本韩国视频一区二区| 日韩精品一区二区三区四区| 中文字幕一区av| 精品写真视频在线观看| 欧美日韩一区中文字幕| 日韩一区二区电影| 在线播放中文字幕一区| 久久久久久久久久久久电影| 午夜精品福利视频网站| 丁香桃色午夜亚洲一区二区三区| 欧美色图一区二区三区| 欧美激情在线观看视频免费| 日韩av网站免费在线| 欧美在线不卡一区| 日韩理论片一区二区| 成人一级黄色片| 中文字幕国产一区| 91麻豆免费视频| 亚洲综合一区二区三区| 欧美三片在线视频观看| 亚洲成人av福利| 51精品视频一区二区三区| 首页国产丝袜综合| 精品理论电影在线观看| 国产999精品久久| 亚洲女同ⅹxx女同tv| 色婷婷精品大在线视频| 日韩专区在线视频| 2017欧美狠狠色| 99视频一区二区三区| 亚洲男人的天堂av| 日韩欧美中文字幕制服| 成人性生交大片免费看中文网站| 国产精品久久久久三级| 欧美一级黄色片| 成人性生交大片免费看在线播放| 日韩美女视频一区| 日韩欧美中文字幕制服| 91丨porny丨在线| 狠狠色丁香久久婷婷综合_中| 国产精品久久一卡二卡| 91精品国产麻豆| 欧美视频你懂的| 色综合天天性综合| 国产麻豆精品久久一二三| 一区二区高清在线| 最新热久久免费视频| 久久综合九色综合97_久久久| 91亚洲精品一区二区乱码| 精品夜夜嗨av一区二区三区| 国产日韩欧美综合在线| 欧美亚洲综合网| 93久久精品日日躁夜夜躁欧美| 日韩精品每日更新| 亚洲不卡一区二区三区| 亚洲美女屁股眼交3| 亚洲免费观看高清| 一区二区久久久| 日韩中文字幕一区二区三区| 午夜欧美大尺度福利影院在线看| 一区二区理论电影在线观看| 亚洲欧洲三级电影| 亚洲乱码一区二区三区在线观看| 国产蜜臀97一区二区三区| 亚洲色图一区二区| 午夜精品久久久久久久| 蜜臀精品久久久久久蜜臀| 狠狠色丁香久久婷婷综合_中| 国产一区二区三区不卡在线观看 | 91视频com| 欧美性高清videossexo| 日韩欧美国产wwwww| 国产日韩欧美不卡| 亚洲第一在线综合网站| 国产麻豆视频一区二区| 欧美专区日韩专区| 中文字幕国产精品一区二区| 一区二区三区不卡在线观看| 热久久国产精品| 91麻豆国产精品久久| 国产亚洲美州欧州综合国| 一个色妞综合视频在线观看| 国产在线视视频有精品| 欧美日韩在线观看一区二区| 久久久不卡影院| 精品伊人久久久久7777人| 欧美又粗又大又爽| 亚洲免费av观看| 99久久精品国产毛片| 国产精品久久久久久久裸模| 蜜桃精品在线观看| 欧美一二区视频| 亚洲成av人片| 欧美日韩亚洲综合一区| 亚洲6080在线| 欧美日韩综合不卡| 日韩在线观看一区二区| 国产激情91久久精品导航|