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

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

?? e1000_80003es2lan.c

?? DELL755 Intel 網卡驅動
?? C
?? 第 1 頁 / 共 3 頁
字號:
/*******************************************************************************  Intel PRO/1000 Linux driver  Copyright(c) 1999 - 2008 Intel Corporation.  This program is free software; you can redistribute it and/or modify it  under the terms and conditions of the GNU General Public License,  version 2, as published by the Free Software Foundation.  This program is distributed in the hope 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.,  51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.  The full GNU General Public License is included in this distribution in  the file called "COPYING".  Contact Information:  Linux NICS <linux.nics@intel.com>  e1000-devel Mailing List <e1000-devel@lists.sourceforge.net>  Intel Corporation, 5200 N.E. Elam Young Parkway, Hillsboro, OR 97124-6497*******************************************************************************//* e1000_80003es2lan */#include "e1000_hw.h"static s32  e1000_init_phy_params_80003es2lan(struct e1000_hw *hw);static s32  e1000_init_nvm_params_80003es2lan(struct e1000_hw *hw);static s32  e1000_init_mac_params_80003es2lan(struct e1000_hw *hw);static s32  e1000_acquire_phy_80003es2lan(struct e1000_hw *hw);static void e1000_release_phy_80003es2lan(struct e1000_hw *hw);static s32  e1000_acquire_nvm_80003es2lan(struct e1000_hw *hw);static void e1000_release_nvm_80003es2lan(struct e1000_hw *hw);static s32  e1000_read_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw,                                                   u32 offset,                                                   u16 *data);static s32  e1000_write_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw,                                                    u32 offset,                                                    u16 data);static s32  e1000_write_nvm_80003es2lan(struct e1000_hw *hw, u16 offset,                                        u16 words, u16 *data);static s32  e1000_get_cfg_done_80003es2lan(struct e1000_hw *hw);static s32  e1000_phy_force_speed_duplex_80003es2lan(struct e1000_hw *hw);static s32  e1000_get_cable_length_80003es2lan(struct e1000_hw *hw);static s32  e1000_get_link_up_info_80003es2lan(struct e1000_hw *hw, u16 *speed,                                               u16 *duplex);static s32  e1000_reset_hw_80003es2lan(struct e1000_hw *hw);static s32  e1000_init_hw_80003es2lan(struct e1000_hw *hw);static s32  e1000_setup_copper_link_80003es2lan(struct e1000_hw *hw);static void e1000_clear_hw_cntrs_80003es2lan(struct e1000_hw *hw);static s32  e1000_acquire_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask);static s32  e1000_cfg_kmrn_10_100_80003es2lan(struct e1000_hw *hw, u16 duplex);static s32  e1000_cfg_kmrn_1000_80003es2lan(struct e1000_hw *hw);static s32  e1000_copper_link_setup_gg82563_80003es2lan(struct e1000_hw *hw);static void e1000_initialize_hw_bits_80003es2lan(struct e1000_hw *hw);static void e1000_release_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask);static s32  e1000_read_mac_addr_80003es2lan(struct e1000_hw *hw);static void e1000_power_down_phy_copper_80003es2lan(struct e1000_hw *hw);/* * A table for the GG82563 cable length where the range is defined * with a lower bound at "index" and the upper bound at * "index + 5". */static const u16 e1000_gg82563_cable_length_table[] =         { 0, 60, 115, 150, 150, 60, 115, 150, 180, 180, 0xFF };#define GG82563_CABLE_LENGTH_TABLE_SIZE \                (sizeof(e1000_gg82563_cable_length_table) / \                 sizeof(e1000_gg82563_cable_length_table[0]))/** *  e1000_init_phy_params_80003es2lan - Init ESB2 PHY func ptrs. *  @hw: pointer to the HW structure * *  This is a function pointer entry point called by the api module. **/static s32 e1000_init_phy_params_80003es2lan(struct e1000_hw *hw){	struct e1000_phy_info *phy = &hw->phy;	s32 ret_val = E1000_SUCCESS;	DEBUGFUNC("e1000_init_phy_params_80003es2lan");	if (hw->phy.media_type != e1000_media_type_copper) {		phy->type        = e1000_phy_none;		goto out;	} else {		phy->ops.power_up = e1000_power_up_phy_copper;		phy->ops.power_down = e1000_power_down_phy_copper_80003es2lan;	}	phy->addr                = 1;	phy->autoneg_mask        = AUTONEG_ADVERTISE_SPEED_DEFAULT;	phy->reset_delay_us      = 100;	phy->type                = e1000_phy_gg82563;	phy->ops.acquire            = e1000_acquire_phy_80003es2lan;	phy->ops.check_polarity     = e1000_check_polarity_m88;	phy->ops.check_reset_block  = e1000_check_reset_block_generic;	phy->ops.commit             = e1000_phy_sw_reset_generic;	phy->ops.get_cfg_done       = e1000_get_cfg_done_80003es2lan;	phy->ops.get_info           = e1000_get_phy_info_m88;	phy->ops.release            = e1000_release_phy_80003es2lan;	phy->ops.reset              = e1000_phy_hw_reset_generic;	phy->ops.set_d3_lplu_state  = e1000_set_d3_lplu_state_generic;	phy->ops.force_speed_duplex = e1000_phy_force_speed_duplex_80003es2lan;	phy->ops.get_cable_length   = e1000_get_cable_length_80003es2lan;	phy->ops.read_reg           = e1000_read_phy_reg_gg82563_80003es2lan;	phy->ops.write_reg          = e1000_write_phy_reg_gg82563_80003es2lan;	/* This can only be done after all function pointers are setup. */	ret_val = e1000_get_phy_id(hw);	/* Verify phy id */	if (phy->id != GG82563_E_PHY_ID) {		ret_val = -E1000_ERR_PHY;		goto out;	}out:	return ret_val;}/** *  e1000_init_nvm_params_80003es2lan - Init ESB2 NVM func ptrs. *  @hw: pointer to the HW structure * *  This is a function pointer entry point called by the api module. **/static s32 e1000_init_nvm_params_80003es2lan(struct e1000_hw *hw){	struct e1000_nvm_info *nvm = &hw->nvm;	u32 eecd = E1000_READ_REG(hw, E1000_EECD);	u16 size;	DEBUGFUNC("e1000_init_nvm_params_80003es2lan");	nvm->opcode_bits        = 8;	nvm->delay_usec         = 1;	switch (nvm->override) {	case e1000_nvm_override_spi_large:		nvm->page_size    = 32;		nvm->address_bits = 16;		break;	case e1000_nvm_override_spi_small:		nvm->page_size    = 8;		nvm->address_bits = 8;		break;	default:		nvm->page_size    = eecd & E1000_EECD_ADDR_BITS ? 32 : 8;		nvm->address_bits = eecd & E1000_EECD_ADDR_BITS ? 16 : 8;		break;	}	nvm->type               = e1000_nvm_eeprom_spi;	size = (u16)((eecd & E1000_EECD_SIZE_EX_MASK) >>	                  E1000_EECD_SIZE_EX_SHIFT);	/*	 * Added to a constant, "size" becomes the left-shift value	 * for setting word_size.	 */	size += NVM_WORD_SIZE_BASE_SHIFT;	/* EEPROM access above 16k is unsupported */	if (size > 14)		size = 14;	nvm->word_size	= 1 << size;	/* Function Pointers */	nvm->ops.acquire           = e1000_acquire_nvm_80003es2lan;	nvm->ops.read              = e1000_read_nvm_eerd;	nvm->ops.release           = e1000_release_nvm_80003es2lan;	nvm->ops.update            = e1000_update_nvm_checksum_generic;	nvm->ops.valid_led_default = e1000_valid_led_default_generic;	nvm->ops.validate          = e1000_validate_nvm_checksum_generic;	nvm->ops.write             = e1000_write_nvm_80003es2lan;	return E1000_SUCCESS;}/** *  e1000_init_mac_params_80003es2lan - Init ESB2 MAC func ptrs. *  @hw: pointer to the HW structure * *  This is a function pointer entry point called by the api module. **/static s32 e1000_init_mac_params_80003es2lan(struct e1000_hw *hw){	struct e1000_mac_info *mac = &hw->mac;	s32 ret_val = E1000_SUCCESS;	DEBUGFUNC("e1000_init_mac_params_80003es2lan");	/* Set media type */	switch (hw->device_id) {	case E1000_DEV_ID_80003ES2LAN_SERDES_DPT:		hw->phy.media_type = e1000_media_type_internal_serdes;		break;	default:		hw->phy.media_type = e1000_media_type_copper;		break;	}	/* Set mta register count */	mac->mta_reg_count = 128;	/* Set rar entry count */	mac->rar_entry_count = E1000_RAR_ENTRIES;	/* Set if part includes ASF firmware */	mac->asf_firmware_present = true;	/* Set if manageability features are enabled. */	mac->arc_subsystem_valid =	        (E1000_READ_REG(hw, E1000_FWSM) & E1000_FWSM_MODE_MASK)	                ? true : false;	/* Function pointers */	/* bus type/speed/width */	mac->ops.get_bus_info = e1000_get_bus_info_pcie_generic;	/* reset */	mac->ops.reset_hw = e1000_reset_hw_80003es2lan;	/* hw initialization */	mac->ops.init_hw = e1000_init_hw_80003es2lan;	/* link setup */	mac->ops.setup_link = e1000_setup_link_generic;	/* physical interface link setup */	mac->ops.setup_physical_interface =	        (hw->phy.media_type == e1000_media_type_copper)	                ? e1000_setup_copper_link_80003es2lan	                : e1000_setup_fiber_serdes_link_generic;	/* check for link */	switch (hw->phy.media_type) {	case e1000_media_type_copper:		mac->ops.check_for_link = e1000_check_for_copper_link_generic;		break;	case e1000_media_type_fiber:		mac->ops.check_for_link = e1000_check_for_fiber_link_generic;		break;	case e1000_media_type_internal_serdes:		mac->ops.check_for_link = e1000_check_for_serdes_link_generic;		break;	default:		ret_val = -E1000_ERR_CONFIG;		goto out;		break;	}	/* check management mode */	mac->ops.check_mng_mode = e1000_check_mng_mode_generic;	/* multicast address update */	mac->ops.update_mc_addr_list = e1000_update_mc_addr_list_generic;	/* writing VFTA */	mac->ops.write_vfta = e1000_write_vfta_generic;	/* clearing VFTA */	mac->ops.clear_vfta = e1000_clear_vfta_generic;	/* setting MTA */	mac->ops.mta_set = e1000_mta_set_generic;	/* read mac address */	mac->ops.read_mac_addr = e1000_read_mac_addr_80003es2lan;	/* blink LED */	mac->ops.blink_led = e1000_blink_led_generic;	/* setup LED */	mac->ops.setup_led = e1000_setup_led_generic;	/* cleanup LED */	mac->ops.cleanup_led = e1000_cleanup_led_generic;	/* turn on/off LED */	mac->ops.led_on = e1000_led_on_generic;	mac->ops.led_off = e1000_led_off_generic;	/* remove device */	mac->ops.remove_device = e1000_remove_device_generic;	/* clear hardware counters */	mac->ops.clear_hw_cntrs = e1000_clear_hw_cntrs_80003es2lan;	/* link info */	mac->ops.get_link_up_info = e1000_get_link_up_info_80003es2lan;out:	return ret_val;}/** *  e1000_init_function_pointers_80003es2lan - Init ESB2 func ptrs. *  @hw: pointer to the HW structure * *  The only function explicitly called by the api module to initialize *  all function pointers and parameters. **/void e1000_init_function_pointers_80003es2lan(struct e1000_hw *hw){	DEBUGFUNC("e1000_init_function_pointers_80003es2lan");	e1000_init_mac_ops_generic(hw);	e1000_init_nvm_ops_generic(hw);	hw->mac.ops.init_params = e1000_init_mac_params_80003es2lan;	hw->nvm.ops.init_params = e1000_init_nvm_params_80003es2lan;	hw->phy.ops.init_params = e1000_init_phy_params_80003es2lan;}/** *  e1000_acquire_phy_80003es2lan - Acquire rights to access PHY *  @hw: pointer to the HW structure * *  A wrapper to acquire access rights to the correct PHY.  This is a *  function pointer entry point called by the api module. **/static s32 e1000_acquire_phy_80003es2lan(struct e1000_hw *hw){	u16 mask;	DEBUGFUNC("e1000_acquire_phy_80003es2lan");	mask = hw->bus.func ? E1000_SWFW_PHY1_SM : E1000_SWFW_PHY0_SM;	mask |= E1000_SWFW_CSR_SM;	return e1000_acquire_swfw_sync_80003es2lan(hw, mask);}/** *  e1000_release_phy_80003es2lan - Release rights to access PHY *  @hw: pointer to the HW structure * *  A wrapper to release access rights to the correct PHY.  This is a *  function pointer entry point called by the api module. **/static void e1000_release_phy_80003es2lan(struct e1000_hw *hw){	u16 mask;	DEBUGFUNC("e1000_release_phy_80003es2lan");	mask = hw->bus.func ? E1000_SWFW_PHY1_SM : E1000_SWFW_PHY0_SM;	mask |= E1000_SWFW_CSR_SM;	e1000_release_swfw_sync_80003es2lan(hw, mask);}/** *  e1000_acquire_nvm_80003es2lan - Acquire rights to access NVM *  @hw: pointer to the HW structure * *  Acquire the semaphore to access the EEPROM.  This is a function *  pointer entry point called by the api module. **/static s32 e1000_acquire_nvm_80003es2lan(struct e1000_hw *hw){	s32 ret_val;	DEBUGFUNC("e1000_acquire_nvm_80003es2lan");	ret_val = e1000_acquire_swfw_sync_80003es2lan(hw, E1000_SWFW_EEP_SM);	if (ret_val)		goto out;	ret_val = e1000_acquire_nvm_generic(hw);	if (ret_val)		e1000_release_swfw_sync_80003es2lan(hw, E1000_SWFW_EEP_SM);out:	return ret_val;}/** *  e1000_release_nvm_80003es2lan - Relinquish rights to access NVM *  @hw: pointer to the HW structure * *  Release the semaphore used to access the EEPROM.  This is a *  function pointer entry point called by the api module. **/static void e1000_release_nvm_80003es2lan(struct e1000_hw *hw){	DEBUGFUNC("e1000_release_nvm_80003es2lan");	e1000_release_nvm_generic(hw);	e1000_release_swfw_sync_80003es2lan(hw, E1000_SWFW_EEP_SM);}/** *  e1000_acquire_swfw_sync_80003es2lan - Acquire SW/FW semaphore *  @hw: pointer to the HW structure *  @mask: specifies which semaphore to acquire * *  Acquire the SW/FW semaphore to access the PHY or NVM.  The mask *  will also specify which port we're acquiring the lock for. **/static s32 e1000_acquire_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask){	u32 swfw_sync;	u32 swmask = mask;	u32 fwmask = mask << 16;	s32 ret_val = E1000_SUCCESS;	s32 i = 0, timeout = 200;	DEBUGFUNC("e1000_acquire_swfw_sync_80003es2lan");	while (i < timeout) {		if (e1000_get_hw_semaphore_generic(hw)) {			ret_val = -E1000_ERR_SWFW_SYNC;			goto out;		}		swfw_sync = E1000_READ_REG(hw, E1000_SW_FW_SYNC);		if (!(swfw_sync & (fwmask | swmask)))			break;		/*		 * Firmware currently using resource (fwmask)		 * or other software thread using resource (swmask)		 */		e1000_put_hw_semaphore_generic(hw);		msec_delay_irq(5);		i++;	}	if (i == timeout) {		DEBUGOUT("Driver can't access resource, SW_FW_SYNC timeout.\n");		ret_val = -E1000_ERR_SWFW_SYNC;		goto out;	}	swfw_sync |= swmask;	E1000_WRITE_REG(hw, E1000_SW_FW_SYNC, swfw_sync);	e1000_put_hw_semaphore_generic(hw);out:	return ret_val;}/** *  e1000_release_swfw_sync_80003es2lan - Release SW/FW semaphore *  @hw: pointer to the HW structure *  @mask: specifies which semaphore to acquire * *  Release the SW/FW semaphore used to access the PHY or NVM.  The mask *  will also specify which port we're releasing the lock for. **/static void e1000_release_swfw_sync_80003es2lan(struct e1000_hw *hw, u16 mask){	u32 swfw_sync;	DEBUGFUNC("e1000_release_swfw_sync_80003es2lan");	while (e1000_get_hw_semaphore_generic(hw) != E1000_SUCCESS);	/* Empty */	swfw_sync = E1000_READ_REG(hw, E1000_SW_FW_SYNC);	swfw_sync &= ~mask;	E1000_WRITE_REG(hw, E1000_SW_FW_SYNC, swfw_sync);	e1000_put_hw_semaphore_generic(hw);}/** *  e1000_read_phy_reg_gg82563_80003es2lan - Read GG82563 PHY register *  @hw: pointer to the HW structure *  @offset: offset of the register to read *  @data: pointer to the data returned from the operation * *  Read the GG82563 PHY register.  This is a function pointer entry *  point called by the api module. **/static s32 e1000_read_phy_reg_gg82563_80003es2lan(struct e1000_hw *hw,                                                  u32 offset, u16 *data){	s32 ret_val;	u32 page_select;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产色综合一区| 欧美大片在线观看一区| 国产精品国产三级国产普通话三级| 久久99精品国产.久久久久久 | 日本午夜一本久久久综合| 欧美日高清视频| 日本怡春院一区二区| 精品国产一区二区国模嫣然| 国产一区二区三区电影在线观看| 欧美激情一区在线观看| 91影院在线观看| 天天影视网天天综合色在线播放 | 久久激五月天综合精品| 久久精品夜色噜噜亚洲aⅴ| 99视频有精品| 五月婷婷综合激情| 国产偷国产偷精品高清尤物| fc2成人免费人成在线观看播放 | 亚洲视频免费看| 欧美日韩国产精品成人| 国产精品一区二区久久精品爱涩| 国产日韩在线不卡| 欧美电影免费观看高清完整版 | 亚洲国产视频在线| 日韩一区二区三区视频在线| 国产99精品视频| 国产夜色精品一区二区av| 蜜桃精品视频在线| 欧美一级片在线| 天堂蜜桃一区二区三区| 91精品国产一区二区三区| 五月开心婷婷久久| 欧美精选在线播放| 奇米色777欧美一区二区| 91麻豆精品国产91久久久资源速度 | 91精品国产美女浴室洗澡无遮挡| 亚洲午夜久久久久久久久电影院 | 国产福利视频一区二区三区| 精品电影一区二区| 国产精品一区二区在线观看网站| 久久毛片高清国产| 成人综合在线观看| ●精品国产综合乱码久久久久| 国产91高潮流白浆在线麻豆| 自拍偷拍国产精品| 欧美网站大全在线观看| 亚洲动漫第一页| 日韩欧美国产系列| 成人在线一区二区三区| 国产精品久久久久久久久动漫 | 久久蜜臀精品av| 成人在线一区二区三区| 又紧又大又爽精品一区二区| 欧美体内she精高潮| 日韩av一区二区三区四区| 91精品国产高清一区二区三区蜜臀 | 成人黄色一级视频| 亚洲男女一区二区三区| 91精品国产综合久久久久久久久久| 视频在线观看国产精品| 精品少妇一区二区三区视频免付费| 国产精品1024| 亚洲伊人色欲综合网| 精品国产免费一区二区三区四区| 成人黄色小视频| 日本伊人精品一区二区三区观看方式| 久久众筹精品私拍模特| 91蜜桃视频在线| 久久狠狠亚洲综合| 亚洲视频1区2区| 欧美一级片在线| 93久久精品日日躁夜夜躁欧美| 亚洲aⅴ怡春院| 日本一区二区三级电影在线观看| 91国产福利在线| 老色鬼精品视频在线观看播放| 精品精品国产高清一毛片一天堂| 97成人超碰视| 国模少妇一区二区三区| 亚洲精品视频在线观看免费| 欧美www视频| 欧美亚州韩日在线看免费版国语版| 国产精品99久久久久久久vr | 中文字幕一区在线| 精品乱人伦一区二区三区| 91麻豆国产福利在线观看| 国内外成人在线视频| 性久久久久久久久| 亚洲精品中文在线观看| 欧美国产精品一区二区| 91精品国产综合久久久久久久| 91蜜桃网址入口| 国产99精品视频| 国产美女av一区二区三区| 亚洲成人1区2区| 亚洲精品中文在线影院| 国产精品视频麻豆| 久久久久成人黄色影片| 欧美一区二区三区视频免费播放| 色94色欧美sute亚洲13| 99视频一区二区三区| 成人美女在线视频| 韩国欧美国产1区| 美美哒免费高清在线观看视频一区二区 | 99精品视频在线播放观看| 极品少妇一区二区| 麻豆91精品91久久久的内涵| 五月激情综合网| 日韩成人免费看| 视频一区免费在线观看| 亚洲国产成人tv| 婷婷成人激情在线网| 五月开心婷婷久久| 日韩激情在线观看| 美女一区二区在线观看| 日韩精品一二区| 日本不卡高清视频| 狠狠色丁香久久婷婷综合_中| 久久国产精品露脸对白| 狠狠狠色丁香婷婷综合久久五月| 麻豆精品一二三| 国产在线麻豆精品观看| 国产成人亚洲综合色影视 | 久久99热99| 欧美伊人精品成人久久综合97| 91浏览器打开| 欧美猛男超大videosgay| 欧美精品一二三四| 717成人午夜免费福利电影| 日韩美女视频在线| 久久精品一区二区三区不卡牛牛| 欧美高清在线精品一区| 综合久久一区二区三区| 亚洲午夜av在线| 黄色日韩网站视频| 91原创在线视频| 欧美一区二区啪啪| 久久九九全国免费| 日韩理论片网站| 日本va欧美va瓶| 国产酒店精品激情| 91在线播放网址| 日韩免费性生活视频播放| 国产精品理伦片| 丝袜亚洲另类欧美| 国产成人在线视频网站| 91精品91久久久中77777| 91精品国产综合久久精品 | 日韩欧美自拍偷拍| 国产精品嫩草久久久久| 亚洲电影欧美电影有声小说| 麻豆精品国产传媒mv男同| 成人免费毛片嘿嘿连载视频| 欧美主播一区二区三区| 26uuu国产电影一区二区| 亚洲天堂网中文字| 美女网站视频久久| 在线观看三级视频欧美| 26uuu国产日韩综合| 亚洲无人区一区| 国产精品影音先锋| 欧美日韩国产成人在线免费| 中文字幕av一区二区三区免费看| 亚洲国产精品一区二区久久恐怖片| 国产一区二区三区蝌蚪| 欧美三级乱人伦电影| 中文字幕av在线一区二区三区| 人人狠狠综合久久亚洲| 色综合天天综合色综合av | 日韩亚洲电影在线| 日韩毛片精品高清免费| 粉嫩嫩av羞羞动漫久久久| 日韩视频免费直播| 亚洲午夜在线观看视频在线| 本田岬高潮一区二区三区| xfplay精品久久| 天天操天天色综合| 欧美三级在线播放| 夜夜操天天操亚洲| 91影院在线免费观看| 国产精品色一区二区三区| 久久国产精品无码网站| 欧美日韩一区高清| 亚洲一二三专区| 一本大道久久精品懂色aⅴ| 国产精品国产a| 福利电影一区二区三区| 久久无码av三级| 狠狠色综合色综合网络| 精品国产乱码久久| 精品无码三级在线观看视频| 日韩一区二区电影网| 美女在线视频一区| 日韩视频一区二区三区在线播放| 石原莉奈在线亚洲二区| 在线观看视频一区| 五月婷婷久久丁香| 欧美一区二区三区日韩视频| 男女男精品视频| 欧美不卡123|