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

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

?? e1000_80003es2lan.c

?? DELL755 Intel 網卡驅動
?? C
?? 第 1 頁 / 共 3 頁
字號:
	 * is no link.	 */	e1000_clear_hw_cntrs_80003es2lan(hw);	return ret_val;}/** *  e1000_initialize_hw_bits_80003es2lan - Init hw bits of ESB2 *  @hw: pointer to the HW structure * *  Initializes required hardware-dependent bits needed for normal operation. **/static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw){	u32 reg;	DEBUGFUNC("e1000_initialize_hw_bits_80003es2lan");	if (hw->mac.disable_hw_init_bits)		goto out;	/* Transmit Descriptor Control 0 */	reg = E1000_READ_REG(hw, E1000_TXDCTL(0));	reg |= (1 << 22);	E1000_WRITE_REG(hw, E1000_TXDCTL(0), reg);	/* Transmit Descriptor Control 1 */	reg = E1000_READ_REG(hw, E1000_TXDCTL(1));	reg |= (1 << 22);	E1000_WRITE_REG(hw, E1000_TXDCTL(1), reg);	/* Transmit Arbitration Control 0 */	reg = E1000_READ_REG(hw, E1000_TARC(0));	reg &= ~(0xF << 27); /* 30:27 */	if (hw->phy.media_type != e1000_media_type_copper)		reg &= ~(1 << 20);	E1000_WRITE_REG(hw, E1000_TARC(0), reg);	/* Transmit Arbitration Control 1 */	reg = E1000_READ_REG(hw, E1000_TARC(1));	if (E1000_READ_REG(hw, E1000_TCTL) & E1000_TCTL_MULR)		reg &= ~(1 << 28);	else		reg |= (1 << 28);	E1000_WRITE_REG(hw, E1000_TARC(1), reg);out:	return;}/** *  e1000_copper_link_setup_gg82563_80003es2lan - Configure GG82563 Link *  @hw: pointer to the HW structure * *  Setup some GG82563 PHY registers for obtaining link **/static s32 e1000_copper_link_setup_gg82563_80003es2lan(struct e1000_hw *hw){	struct e1000_phy_info *phy = &hw->phy;	s32 ret_val;	u32 ctrl_ext;	u32 i = 0;	u16 data, data2;	DEBUGFUNC("e1000_copper_link_setup_gg82563_80003es2lan");	if (!phy->reset_disable) {		ret_val = hw->phy.ops.read_reg(hw, GG82563_PHY_MAC_SPEC_CTRL,		                             &data);		if (ret_val)			goto out;		data |= GG82563_MSCR_ASSERT_CRS_ON_TX;		/* Use 25MHz for both link down and 1000Base-T for Tx clock. */		data |= GG82563_MSCR_TX_CLK_1000MBPS_25;		ret_val = hw->phy.ops.write_reg(hw, GG82563_PHY_MAC_SPEC_CTRL,		                              data);		if (ret_val)			goto out;		/*		 * Options:		 *   MDI/MDI-X = 0 (default)		 *   0 - Auto for all speeds		 *   1 - MDI mode		 *   2 - MDI-X mode		 *   3 - Auto for 1000Base-T only (MDI-X for 10/100Base-T modes)		 */		ret_val = hw->phy.ops.read_reg(hw, GG82563_PHY_SPEC_CTRL, &data);		if (ret_val)			goto out;		data &= ~GG82563_PSCR_CROSSOVER_MODE_MASK;		switch (phy->mdix) {		case 1:			data |= GG82563_PSCR_CROSSOVER_MODE_MDI;			break;		case 2:			data |= GG82563_PSCR_CROSSOVER_MODE_MDIX;			break;		case 0:		default:			data |= GG82563_PSCR_CROSSOVER_MODE_AUTO;			break;		}		/*		 * Options:		 *   disable_polarity_correction = 0 (default)		 *       Automatic Correction for Reversed Cable Polarity		 *   0 - Disabled		 *   1 - Enabled		 */		data &= ~GG82563_PSCR_POLARITY_REVERSAL_DISABLE;		if (phy->disable_polarity_correction)			data |= GG82563_PSCR_POLARITY_REVERSAL_DISABLE;		ret_val = hw->phy.ops.write_reg(hw, GG82563_PHY_SPEC_CTRL, data);		if (ret_val)			goto out;		/* SW Reset the PHY so all changes take effect */		ret_val = hw->phy.ops.commit(hw);		if (ret_val) {			DEBUGOUT("Error Resetting the PHY\n");			goto out;		}	}	/* Bypass Rx and Tx FIFO's */	ret_val = e1000_write_kmrn_reg_generic(hw,	                        E1000_KMRNCTRLSTA_OFFSET_FIFO_CTRL,	                        E1000_KMRNCTRLSTA_FIFO_CTRL_RX_BYPASS |	                                E1000_KMRNCTRLSTA_FIFO_CTRL_TX_BYPASS);	if (ret_val)		goto out;	ret_val = e1000_read_kmrn_reg_generic(hw,	                              E1000_KMRNCTRLSTA_OFFSET_MAC2PHY_OPMODE,	                              &data);	if (ret_val)		goto out;	data |= E1000_KMRNCTRLSTA_OPMODE_E_IDLE;	ret_val = e1000_write_kmrn_reg_generic(hw,	                               E1000_KMRNCTRLSTA_OFFSET_MAC2PHY_OPMODE,	                               data);	if (ret_val)		goto out;	ret_val = hw->phy.ops.read_reg(hw, GG82563_PHY_SPEC_CTRL_2, &data);	if (ret_val)		goto out;	data &= ~GG82563_PSCR2_REVERSE_AUTO_NEG;	ret_val = hw->phy.ops.write_reg(hw, GG82563_PHY_SPEC_CTRL_2, data);	if (ret_val)		goto out;	ctrl_ext = E1000_READ_REG(hw, E1000_CTRL_EXT);	ctrl_ext &= ~(E1000_CTRL_EXT_LINK_MODE_MASK);	E1000_WRITE_REG(hw, E1000_CTRL_EXT, ctrl_ext);	ret_val = hw->phy.ops.read_reg(hw, GG82563_PHY_PWR_MGMT_CTRL, &data);	if (ret_val)		goto out;	/*	 * Do not init these registers when the HW is in IAMT mode, since the	 * firmware will have already initialized them.  We only initialize	 * them if the HW is not in IAMT mode.	 */	if (!(hw->mac.ops.check_mng_mode(hw))) {		/* Enable Electrical Idle on the PHY */		data |= GG82563_PMCR_ENABLE_ELECTRICAL_IDLE;		ret_val = hw->phy.ops.write_reg(hw,		                             GG82563_PHY_PWR_MGMT_CTRL,		                             data);		if (ret_val)			goto out;		do {			ret_val = hw->phy.ops.read_reg(hw,			                          GG82563_PHY_KMRN_MODE_CTRL,			                          &data);			if (ret_val)				goto out;			ret_val = hw->phy.ops.read_reg(hw,			                          GG82563_PHY_KMRN_MODE_CTRL,			                          &data2);			if (ret_val)				goto out;			i++;		} while ((data != data2) && (i < GG82563_MAX_KMRN_RETRY));		data &= ~GG82563_KMCR_PASS_FALSE_CARRIER;		ret_val = hw->phy.ops.write_reg(hw,		                             GG82563_PHY_KMRN_MODE_CTRL,		                             data);		if (ret_val)			goto out;	}	/*	 * Workaround: Disable padding in Kumeran interface in the MAC	 * and in the PHY to avoid CRC errors.	 */	ret_val = hw->phy.ops.read_reg(hw, GG82563_PHY_INBAND_CTRL, &data);	if (ret_val)		goto out;	data |= GG82563_ICR_DIS_PADDING;	ret_val = hw->phy.ops.write_reg(hw, GG82563_PHY_INBAND_CTRL, data);	if (ret_val)		goto out;out:	return ret_val;}/** *  e1000_setup_copper_link_80003es2lan - Setup Copper Link for ESB2 *  @hw: pointer to the HW structure * *  Essentially a wrapper for setting up all things "copper" related. *  This is a function pointer entry point called by the mac module. **/static s32 e1000_setup_copper_link_80003es2lan(struct e1000_hw *hw){	u32 ctrl;	s32  ret_val;	u16 reg_data;	DEBUGFUNC("e1000_setup_copper_link_80003es2lan");	ctrl = E1000_READ_REG(hw, E1000_CTRL);	ctrl |= E1000_CTRL_SLU;	ctrl &= ~(E1000_CTRL_FRCSPD | E1000_CTRL_FRCDPX);	E1000_WRITE_REG(hw, E1000_CTRL, ctrl);	/*	 * Set the mac to wait the maximum time between each	 * iteration and increase the max iterations when	 * polling the phy; this fixes erroneous timeouts at 10Mbps.	 */	ret_val = e1000_write_kmrn_reg_generic(hw, GG82563_REG(0x34, 4),	                                       0xFFFF);	if (ret_val)		goto out;	ret_val = e1000_read_kmrn_reg_generic(hw, GG82563_REG(0x34, 9),	                                      &reg_data);	if (ret_val)		goto out;	reg_data |= 0x3F;	ret_val = e1000_write_kmrn_reg_generic(hw, GG82563_REG(0x34, 9),	                                       reg_data);	if (ret_val)		goto out;	ret_val = e1000_read_kmrn_reg_generic(hw,	                              E1000_KMRNCTRLSTA_OFFSET_INB_CTRL,	                              &reg_data);	if (ret_val)		goto out;	reg_data |= E1000_KMRNCTRLSTA_INB_CTRL_DIS_PADDING;	ret_val = e1000_write_kmrn_reg_generic(hw,	                               E1000_KMRNCTRLSTA_OFFSET_INB_CTRL,	                               reg_data);	if (ret_val)		goto out;	ret_val = e1000_copper_link_setup_gg82563_80003es2lan(hw);	if (ret_val)		goto out;	ret_val = e1000_setup_copper_link_generic(hw);out:	return ret_val;}/** *  e1000_cfg_kmrn_10_100_80003es2lan - Apply "quirks" for 10/100 operation *  @hw: pointer to the HW structure *  @duplex: current duplex setting * *  Configure the KMRN interface by applying last minute quirks for *  10/100 operation. **/static s32 e1000_cfg_kmrn_10_100_80003es2lan(struct e1000_hw *hw, u16 duplex){	s32 ret_val = E1000_SUCCESS;	u32 tipg;	u32 i = 0;	u16 reg_data, reg_data2;	DEBUGFUNC("e1000_configure_kmrn_for_10_100");	reg_data = E1000_KMRNCTRLSTA_HD_CTRL_10_100_DEFAULT;	ret_val = e1000_write_kmrn_reg_generic(hw,	                               E1000_KMRNCTRLSTA_OFFSET_HD_CTRL,	                               reg_data);	if (ret_val)		goto out;	/* Configure Transmit Inter-Packet Gap */	tipg = E1000_READ_REG(hw, E1000_TIPG);	tipg &= ~E1000_TIPG_IPGT_MASK;	tipg |= DEFAULT_TIPG_IPGT_10_100_80003ES2LAN;	E1000_WRITE_REG(hw, E1000_TIPG, tipg);	do {		ret_val = hw->phy.ops.read_reg(hw, GG82563_PHY_KMRN_MODE_CTRL,		                             &reg_data);		if (ret_val)			goto out;		ret_val = hw->phy.ops.read_reg(hw, GG82563_PHY_KMRN_MODE_CTRL,		                             &reg_data2);		if (ret_val)			goto out;		i++;	} while ((reg_data != reg_data2) && (i < GG82563_MAX_KMRN_RETRY));	if (duplex == HALF_DUPLEX)		reg_data |= GG82563_KMCR_PASS_FALSE_CARRIER;	else		reg_data &= ~GG82563_KMCR_PASS_FALSE_CARRIER;	ret_val = hw->phy.ops.write_reg(hw, GG82563_PHY_KMRN_MODE_CTRL, reg_data);out:	return ret_val;}/** *  e1000_cfg_kmrn_1000_80003es2lan - Apply "quirks" for gigabit operation *  @hw: pointer to the HW structure * *  Configure the KMRN interface by applying last minute quirks for *  gigabit operation. **/static s32 e1000_cfg_kmrn_1000_80003es2lan(struct e1000_hw *hw){	s32 ret_val = E1000_SUCCESS;	u16 reg_data, reg_data2;	u32 tipg;	u32 i = 0;	DEBUGFUNC("e1000_configure_kmrn_for_1000");	reg_data = E1000_KMRNCTRLSTA_HD_CTRL_1000_DEFAULT;	ret_val = e1000_write_kmrn_reg_generic(hw,	                               E1000_KMRNCTRLSTA_OFFSET_HD_CTRL,	                               reg_data);	if (ret_val)		goto out;	/* Configure Transmit Inter-Packet Gap */	tipg = E1000_READ_REG(hw, E1000_TIPG);	tipg &= ~E1000_TIPG_IPGT_MASK;	tipg |= DEFAULT_TIPG_IPGT_1000_80003ES2LAN;	E1000_WRITE_REG(hw, E1000_TIPG, tipg);	do {		ret_val = hw->phy.ops.read_reg(hw, GG82563_PHY_KMRN_MODE_CTRL,		                             &reg_data);		if (ret_val)			goto out;		ret_val = hw->phy.ops.read_reg(hw, GG82563_PHY_KMRN_MODE_CTRL,		                             &reg_data2);		if (ret_val)			goto out;		i++;	} while ((reg_data != reg_data2) && (i < GG82563_MAX_KMRN_RETRY));	reg_data &= ~GG82563_KMCR_PASS_FALSE_CARRIER;	ret_val = hw->phy.ops.write_reg(hw, GG82563_PHY_KMRN_MODE_CTRL, reg_data);out:	return ret_val;}/** *  e1000_read_mac_addr_80003es2lan - Read device MAC address *  @hw: pointer to the HW structure **/static s32 e1000_read_mac_addr_80003es2lan(struct e1000_hw *hw){	s32 ret_val = E1000_SUCCESS;	DEBUGFUNC("e1000_read_mac_addr_80003es2lan");	if (e1000_check_alt_mac_addr_generic(hw))		ret_val = e1000_read_mac_addr_generic(hw);	return ret_val;}/** * e1000_power_down_phy_copper_80003es2lan - Remove link during PHY power down * @hw: pointer to the HW structure * * In the case of a PHY power down to save power, or to turn off link during a * driver unload, or wake on lan is not enabled, remove the link. **/static void e1000_power_down_phy_copper_80003es2lan(struct e1000_hw *hw){	/* If the management interface is not enabled, then power down */	if (!(hw->mac.ops.check_mng_mode(hw) ||	      hw->phy.ops.check_reset_block(hw)))		e1000_power_down_phy_copper(hw);	return;}/** *  e1000_clear_hw_cntrs_80003es2lan - Clear device specific hardware counters *  @hw: pointer to the HW structure * *  Clears the hardware counters by reading the counter registers. **/static void e1000_clear_hw_cntrs_80003es2lan(struct e1000_hw *hw){	volatile u32 temp;	DEBUGFUNC("e1000_clear_hw_cntrs_80003es2lan");	e1000_clear_hw_cntrs_base_generic(hw);	temp = E1000_READ_REG(hw, E1000_PRC64);	temp = E1000_READ_REG(hw, E1000_PRC127);	temp = E1000_READ_REG(hw, E1000_PRC255);	temp = E1000_READ_REG(hw, E1000_PRC511);	temp = E1000_READ_REG(hw, E1000_PRC1023);	temp = E1000_READ_REG(hw, E1000_PRC1522);	temp = E1000_READ_REG(hw, E1000_PTC64);	temp = E1000_READ_REG(hw, E1000_PTC127);	temp = E1000_READ_REG(hw, E1000_PTC255);	temp = E1000_READ_REG(hw, E1000_PTC511);	temp = E1000_READ_REG(hw, E1000_PTC1023);	temp = E1000_READ_REG(hw, E1000_PTC1522);	temp = E1000_READ_REG(hw, E1000_ALGNERRC);	temp = E1000_READ_REG(hw, E1000_RXERRC);	temp = E1000_READ_REG(hw, E1000_TNCRS);	temp = E1000_READ_REG(hw, E1000_CEXTERR);	temp = E1000_READ_REG(hw, E1000_TSCTC);	temp = E1000_READ_REG(hw, E1000_TSCTFC);	temp = E1000_READ_REG(hw, E1000_MGTPRC);	temp = E1000_READ_REG(hw, E1000_MGTPDC);	temp = E1000_READ_REG(hw, E1000_MGTPTC);	temp = E1000_READ_REG(hw, E1000_IAC);	temp = E1000_READ_REG(hw, E1000_ICRXOC);	temp = E1000_READ_REG(hw, E1000_ICRXPTC);	temp = E1000_READ_REG(hw, E1000_ICRXATC);	temp = E1000_READ_REG(hw, E1000_ICTXPTC);	temp = E1000_READ_REG(hw, E1000_ICTXATC);	temp = E1000_READ_REG(hw, E1000_ICTXQEC);	temp = E1000_READ_REG(hw, E1000_ICTXQMTC);	temp = E1000_READ_REG(hw, E1000_ICRXDMTC);}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美极品少妇xxxxⅹ高跟鞋| 欧美日韩mp4| 国产精品日产欧美久久久久| 国产不卡在线播放| 国产精品入口麻豆原神| 97精品久久久午夜一区二区三区| 国产精品毛片大码女人| 99精品欧美一区| 亚洲自拍偷拍九九九| 欧美亚洲国产一区在线观看网站| 天天亚洲美女在线视频| 日韩亚洲欧美成人一区| 国产一区二区三区精品欧美日韩一区二区三区| 日韩西西人体444www| 国产美女精品人人做人人爽| 国产精品久久免费看| 欧美日韩成人综合天天影院| 精品一区二区免费| 日韩理论片网站| 6080午夜不卡| 成人aa视频在线观看| 视频一区中文字幕国产| 国产日韩欧美a| 欧美色爱综合网| 麻豆成人久久精品二区三区红| 久久久久久免费网| 欧美日韩激情一区| 国产九九视频一区二区三区| 一区二区三区日本| 久久亚区不卡日本| 欧美日本一区二区| av一区二区三区黑人| 日日夜夜精品免费视频| 中文字幕欧美日本乱码一线二线| 欧美中文字幕一区| 国产馆精品极品| 日韩福利电影在线| 自拍偷在线精品自拍偷无码专区| 日韩一区二区三区在线视频| 成+人+亚洲+综合天堂| 日产国产高清一区二区三区| 日韩美女精品在线| 国产婷婷色一区二区三区| 欧美人妖巨大在线| 色婷婷综合久久久| 国产69精品久久久久毛片| 首页国产欧美久久| 亚洲一区二区在线观看视频| 国产欧美日韩亚州综合| 欧美一级二级在线观看| 日本韩国欧美在线| 成人性色生活片| 国产一区在线不卡| 另类专区欧美蜜桃臀第一页| 亚洲资源在线观看| 中文字幕在线不卡| 国产欧美日韩一区二区三区在线观看| 日韩三级在线观看| 91精品啪在线观看国产60岁| 在线日韩av片| 91在线观看地址| 9久草视频在线视频精品| 国产一区二区网址| 久久99国产精品麻豆| 免费观看成人av| 青草国产精品久久久久久| 亚洲综合一区在线| 亚洲精品免费在线观看| 亚洲素人一区二区| 亚洲人成精品久久久久| 国产精品久久久久久亚洲伦| 久久日一线二线三线suv| 日韩欧美精品在线视频| 日韩一区二区在线观看视频| 日韩欧美一区二区久久婷婷| 欧美哺乳videos| 欧美videos大乳护士334| 精品久久人人做人人爽| 精品美女一区二区| 久久综合狠狠综合久久综合88 | 日韩国产高清影视| 亚洲图片一区二区| 日韩电影免费一区| 久草精品在线观看| 国产福利一区二区| 成人动漫中文字幕| 一本久道中文字幕精品亚洲嫩| 色综合网色综合| 欧美日韩你懂得| 日韩亚洲欧美在线| 国产婷婷色一区二区三区四区 | 不卡av免费在线观看| 成人黄色一级视频| 色先锋久久av资源部| 欧美无人高清视频在线观看| 欧美日韩免费高清一区色橹橹| 欧美女孩性生活视频| 欧美一区二区三区四区视频| 精品sm捆绑视频| 国产精品美女久久久久高潮| 亚洲靠逼com| 青青草国产精品97视觉盛宴| 国产一区啦啦啦在线观看| 成人一级视频在线观看| 欧洲人成人精品| 欧美sm极限捆绑bd| 中文字幕欧美激情一区| 国产精品资源在线看| 99久久99久久精品国产片果冻| 色噜噜夜夜夜综合网| 日韩一二三四区| 中文字幕中文字幕一区| 亚洲一级电影视频| 国内一区二区在线| 91福利国产精品| 精品国产免费一区二区三区四区 | 欧美一区二区三区免费观看视频 | 中文字幕不卡的av| 亚洲午夜一区二区| 极品少妇xxxx精品少妇偷拍| 91一区一区三区| 精品成人免费观看| 亚洲成人一区二区在线观看| 国产一区福利在线| 欧美日韩中文精品| 国产精品高清亚洲| 毛片av中文字幕一区二区| 91在线观看美女| 久久精品视频一区二区三区| 亚洲一二三区在线观看| 国产·精品毛片| 欧美一区二区三区四区久久| 国产精品久久久久久久岛一牛影视 | 久久免费偷拍视频| 午夜av一区二区| 一本到高清视频免费精品| 久久男人中文字幕资源站| 视频在线观看91| 在线观看一区二区精品视频| 国产欧美日本一区视频| 蜜桃av噜噜一区| 欧美丝袜丝交足nylons| 国产精品国产三级国产aⅴ原创| 另类综合日韩欧美亚洲| 欧美高清精品3d| 亚洲国产aⅴ天堂久久| 色综合天天综合在线视频| 国产三级一区二区三区| 久久66热偷产精品| 日韩一级免费观看| 日本伊人色综合网| 欧美特级限制片免费在线观看| 亚洲图片另类小说| 北岛玲一区二区三区四区| 国产欧美日韩另类一区| 国产精品资源在线| 久久久夜色精品亚洲| 精品一区二区三区久久久| 日韩一区二区在线播放| 日韩av不卡一区二区| 日本一区二区在线不卡| 国产一区二区三区黄视频 | 精品国产一区二区精华| 美腿丝袜在线亚洲一区| 91精品午夜视频| 人人爽香蕉精品| 欧美一级免费大片| 精品午夜久久福利影院| 精品欧美久久久| 国产在线视视频有精品| 精品成人免费观看| 国产成人精品综合在线观看| 久久九九全国免费| 成人做爰69片免费看网站| 国产精品嫩草影院com| 99久久99久久综合| 一区二区三区欧美久久| 欧美日韩精品一二三区| 青草av.久久免费一区| 精品国产乱码久久久久久久| 国内外成人在线视频| 久久久精品免费免费| 国产suv精品一区二区6| 亚洲欧美日韩国产中文在线| 91久久精品一区二区二区| 亚洲一区成人在线| 欧美精品在线一区二区三区| 偷拍自拍另类欧美| 日韩欧美国产一二三区| 国产精品一区二区在线观看不卡| 欧美国产成人精品| 色婷婷综合久久久久中文一区二区 | 高清视频一区二区| 亚洲女爱视频在线| 日韩写真欧美这视频| av在线一区二区三区| 亚洲成av人影院| 26uuu亚洲| 欧美性受xxxx黑人xyx性爽| 久国产精品韩国三级视频|