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

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

?? isp1301_omap.c

?? linux-2.6.15.6
?? C
?? 第 1 頁 / 共 3 頁
字號:
/* * isp1301_omap - ISP 1301 USB transceiver, talking to OMAP OTG controller * * Copyright (C) 2004 Texas Instruments * Copyright (C) 2004 David Brownell * * 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., 675 Mass Ave, Cambridge, MA 02139, USA. */#undef	DEBUG#undef	VERBOSE#include <linux/config.h>#include <linux/kernel.h>#include <linux/module.h>#include <linux/init.h>#include <linux/slab.h>#include <linux/interrupt.h>#include <linux/platform_device.h>#include <linux/usb_ch9.h>#include <linux/usb_gadget.h>#include <linux/usb.h>#include <linux/usb_otg.h>#include <linux/i2c.h>#include <linux/workqueue.h>#include <asm/irq.h>#include <asm/arch/usb.h>#ifndef	DEBUG#undef	VERBOSE#endif#define	DRIVER_VERSION	"24 August 2004"#define	DRIVER_NAME	(isp1301_driver.name)MODULE_DESCRIPTION("ISP1301 USB OTG Transceiver Driver");MODULE_LICENSE("GPL");struct isp1301 {	struct otg_transceiver	otg;	struct i2c_client	client;	void			(*i2c_release)(struct device *dev);	int			irq;	u32			last_otg_ctrl;	unsigned		working:1;	struct timer_list	timer;	/* use keventd context to change the state for us */	struct work_struct	work;		unsigned long		todo;#		define WORK_UPDATE_ISP	0	/* update ISP from OTG */#		define WORK_UPDATE_OTG	1	/* update OTG from ISP */#		define WORK_HOST_RESUME	4	/* resume host */#		define WORK_TIMER	6	/* timer fired */#		define WORK_STOP	7	/* don't resubmit */};/* bits in OTG_CTRL_REG */#define	OTG_XCEIV_OUTPUTS \	(OTG_ASESSVLD|OTG_BSESSEND|OTG_BSESSVLD|OTG_VBUSVLD|OTG_ID)#define	OTG_XCEIV_INPUTS \	(OTG_PULLDOWN|OTG_PULLUP|OTG_DRV_VBUS|OTG_PD_VBUS|OTG_PU_VBUS|OTG_PU_ID)#define	OTG_CTRL_BITS \	(OTG_A_BUSREQ|OTG_A_SETB_HNPEN|OTG_B_BUSREQ|OTG_B_HNPEN|OTG_BUSDROP)	/* and OTG_PULLUP is sometimes written */#define	OTG_CTRL_MASK	(OTG_DRIVER_SEL| \	OTG_XCEIV_OUTPUTS|OTG_XCEIV_INPUTS| \	OTG_CTRL_BITS)/*-------------------------------------------------------------------------*/#ifdef	CONFIG_MACH_OMAP_H2/* board-specific PM hooks */#include <asm/arch/gpio.h>#include <asm/arch/mux.h>#include <asm/mach-types.h>#if	defined(CONFIG_TPS65010) || defined(CONFIG_TPS65010_MODULE)#include <asm/arch/tps65010.h>#elsestatic inline int tps65010_set_vbus_draw(unsigned mA){	pr_debug("tps65010: draw %d mA (STUB)\n", mA);	return 0;}#endifstatic void enable_vbus_draw(struct isp1301 *isp, unsigned mA){	int status = tps65010_set_vbus_draw(mA);	if (status < 0)		pr_debug("  VBUS %d mA error %d\n", mA, status);}static void enable_vbus_source(struct isp1301 *isp){	/* this board won't supply more than 8mA vbus power.	 * some boards can switch a 100ma "unit load" (or more).	 */}/* products will deliver OTG messages with LEDs, GUI, etc */static inline void notresponding(struct isp1301 *isp){	printk(KERN_NOTICE "OTG device not responding.\n");}#endif/*-------------------------------------------------------------------------*//* only two addresses possible */#define	ISP_BASE		0x2cstatic unsigned short normal_i2c[] = {	ISP_BASE, ISP_BASE + 1,	I2C_CLIENT_END };I2C_CLIENT_INSMOD;static struct i2c_driver isp1301_driver;/* smbus apis are used for portability */static inline u8isp1301_get_u8(struct isp1301 *isp, u8 reg){	return i2c_smbus_read_byte_data(&isp->client, reg + 0);}static inline intisp1301_get_u16(struct isp1301 *isp, u8 reg){	return i2c_smbus_read_word_data(&isp->client, reg);}static inline intisp1301_set_bits(struct isp1301 *isp, u8 reg, u8 bits){	return i2c_smbus_write_byte_data(&isp->client, reg + 0, bits);}static inline intisp1301_clear_bits(struct isp1301 *isp, u8 reg, u8 bits){	return i2c_smbus_write_byte_data(&isp->client, reg + 1, bits);}/*-------------------------------------------------------------------------*//* identification */#define	ISP1301_VENDOR_ID		0x00	/* u16 read */#define	ISP1301_PRODUCT_ID		0x02	/* u16 read */#define	ISP1301_BCD_DEVICE		0x14	/* u16 read */#define	I2C_VENDOR_ID_PHILIPS		0x04cc#define	I2C_PRODUCT_ID_PHILIPS_1301	0x1301/* operational registers */#define	ISP1301_MODE_CONTROL_1		0x04	/* u8 read, set, +1 clear */#	define	MC1_SPEED_REG		(1 << 0)#	define	MC1_SUSPEND_REG		(1 << 1)#	define	MC1_DAT_SE0		(1 << 2)#	define	MC1_TRANSPARENT		(1 << 3)#	define	MC1_BDIS_ACON_EN	(1 << 4)#	define	MC1_OE_INT_EN		(1 << 5)#	define	MC1_UART_EN		(1 << 6)#	define	MC1_MASK		0x7f#define	ISP1301_MODE_CONTROL_2		0x12	/* u8 read, set, +1 clear */#	define	MC2_GLOBAL_PWR_DN	(1 << 0)#	define	MC2_SPD_SUSP_CTRL	(1 << 1)#	define	MC2_BI_DI		(1 << 2)#	define	MC2_TRANSP_BDIR0	(1 << 3)#	define	MC2_TRANSP_BDIR1	(1 << 4)#	define	MC2_AUDIO_EN		(1 << 5)#	define	MC2_PSW_EN		(1 << 6)#	define	MC2_EN2V7		(1 << 7)#define	ISP1301_OTG_CONTROL_1		0x06	/* u8 read, set, +1 clear */#	define	OTG1_DP_PULLUP		(1 << 0)#	define	OTG1_DM_PULLUP		(1 << 1)#	define	OTG1_DP_PULLDOWN	(1 << 2)#	define	OTG1_DM_PULLDOWN	(1 << 3)#	define	OTG1_ID_PULLDOWN	(1 << 4)#	define	OTG1_VBUS_DRV		(1 << 5)#	define	OTG1_VBUS_DISCHRG	(1 << 6)#	define	OTG1_VBUS_CHRG		(1 << 7)#define	ISP1301_OTG_STATUS		0x10	/* u8 readonly */#	define	OTG_B_SESS_END		(1 << 6)#	define	OTG_B_SESS_VLD		(1 << 7)#define	ISP1301_INTERRUPT_SOURCE	0x08	/* u8 read */#define	ISP1301_INTERRUPT_LATCH		0x0A	/* u8 read, set, +1 clear */#define	ISP1301_INTERRUPT_FALLING	0x0C	/* u8 read, set, +1 clear */#define	ISP1301_INTERRUPT_RISING	0x0E	/* u8 read, set, +1 clear *//* same bitfields in all interrupt registers */#	define	INTR_VBUS_VLD		(1 << 0)#	define	INTR_SESS_VLD		(1 << 1)#	define	INTR_DP_HI		(1 << 2)#	define	INTR_ID_GND		(1 << 3)#	define	INTR_DM_HI		(1 << 4)#	define	INTR_ID_FLOAT		(1 << 5)#	define	INTR_BDIS_ACON		(1 << 6)#	define	INTR_CR_INT		(1 << 7)/*-------------------------------------------------------------------------*/static const char *state_string(enum usb_otg_state state){	switch (state) {	case OTG_STATE_A_IDLE:		return "a_idle";	case OTG_STATE_A_WAIT_VRISE:	return "a_wait_vrise";	case OTG_STATE_A_WAIT_BCON:	return "a_wait_bcon";	case OTG_STATE_A_HOST:		return "a_host";	case OTG_STATE_A_SUSPEND:	return "a_suspend";	case OTG_STATE_A_PERIPHERAL:	return "a_peripheral";	case OTG_STATE_A_WAIT_VFALL:	return "a_wait_vfall";	case OTG_STATE_A_VBUS_ERR:	return "a_vbus_err";	case OTG_STATE_B_IDLE:		return "b_idle";	case OTG_STATE_B_SRP_INIT:	return "b_srp_init";	case OTG_STATE_B_PERIPHERAL:	return "b_peripheral";	case OTG_STATE_B_WAIT_ACON:	return "b_wait_acon";	case OTG_STATE_B_HOST:		return "b_host";	default:			return "UNDEFINED";	}}static inline const char *state_name(struct isp1301 *isp){	return state_string(isp->otg.state);}#ifdef	VERBOSE#define	dev_vdbg			dev_dbg#else#define	dev_vdbg(dev, fmt, arg...)	do{}while(0)#endif/*-------------------------------------------------------------------------*//* NOTE:  some of this ISP1301 setup is specific to H2 boards; * not everything is guarded by board-specific checks, or even using * omap_usb_config data to deduce MC1_DAT_SE0 and MC2_BI_DI. * * ALSO:  this currently doesn't use ISP1301 low-power modes * while OTG is running. */static void power_down(struct isp1301 *isp){	isp->otg.state = OTG_STATE_UNDEFINED;	// isp1301_set_bits(isp, ISP1301_MODE_CONTROL_2, MC2_GLOBAL_PWR_DN);	isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_SUSPEND_REG);	isp1301_clear_bits(isp, ISP1301_OTG_CONTROL_1, OTG1_ID_PULLDOWN);	isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0);}static void power_up(struct isp1301 *isp){	// isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_2, MC2_GLOBAL_PWR_DN);	isp1301_clear_bits(isp, ISP1301_MODE_CONTROL_1, MC1_SUSPEND_REG);		/* do this only when cpu is driving transceiver,	 * so host won't see a low speed device...	 */	isp1301_set_bits(isp, ISP1301_MODE_CONTROL_1, MC1_DAT_SE0);}#define	NO_HOST_SUSPENDstatic int host_suspend(struct isp1301 *isp){#ifdef	NO_HOST_SUSPEND	return 0;#else	struct device	*dev;	if (!isp->otg.host)		return -ENODEV;	/* Currently ASSUMES only the OTG port matters;	 * other ports could be active...	 */	dev = isp->otg.host->controller;	return dev->driver->suspend(dev, 3, 0);#endif}static int host_resume(struct isp1301 *isp){#ifdef	NO_HOST_SUSPEND	return 0;#else	struct device	*dev;	if (!isp->otg.host)		return -ENODEV;	dev = isp->otg.host->controller;	return dev->driver->resume(dev, 0);#endif}static int gadget_suspend(struct isp1301 *isp){	isp->otg.gadget->b_hnp_enable = 0;	isp->otg.gadget->a_hnp_support = 0;	isp->otg.gadget->a_alt_hnp_support = 0;	return usb_gadget_vbus_disconnect(isp->otg.gadget);}/*-------------------------------------------------------------------------*/#define	TIMER_MINUTES	10#define	TIMER_JIFFIES	(TIMER_MINUTES * 60 * HZ)/* Almost all our I2C messaging comes from a work queue's task context. * NOTE: guaranteeing certain response times might mean we shouldn't * share keventd's work queue; a realtime task might be safest. */voidisp1301_defer_work(struct isp1301 *isp, int work){	int status;	if (isp && !test_and_set_bit(work, &isp->todo)) {		(void) get_device(&isp->client.dev);		status = schedule_work(&isp->work);		if (!status && !isp->working)			dev_vdbg(&isp->client.dev,				"work item %d may be lost\n", work);	}}/* called from irq handlers */static void a_idle(struct isp1301 *isp, const char *tag){	if (isp->otg.state == OTG_STATE_A_IDLE)		return;	isp->otg.default_a = 1;	if (isp->otg.host) {		isp->otg.host->is_b_host = 0;		host_suspend(isp);	}	if (isp->otg.gadget) {		isp->otg.gadget->is_a_peripheral = 1;		gadget_suspend(isp);	}	isp->otg.state = OTG_STATE_A_IDLE;	isp->last_otg_ctrl = OTG_CTRL_REG = OTG_CTRL_REG & OTG_XCEIV_OUTPUTS;	pr_debug("  --> %s/%s\n", state_name(isp), tag);}/* called from irq handlers */static void b_idle(struct isp1301 *isp, const char *tag){	if (isp->otg.state == OTG_STATE_B_IDLE)		return;	isp->otg.default_a = 0;	if (isp->otg.host) {		isp->otg.host->is_b_host = 1;		host_suspend(isp);	}	if (isp->otg.gadget) {		isp->otg.gadget->is_a_peripheral = 0;		gadget_suspend(isp);	}	isp->otg.state = OTG_STATE_B_IDLE;	isp->last_otg_ctrl = OTG_CTRL_REG = OTG_CTRL_REG & OTG_XCEIV_OUTPUTS;	pr_debug("  --> %s/%s\n", state_name(isp), tag);}static voiddump_regs(struct isp1301 *isp, const char *label){#ifdef	DEBUG	u8	ctrl = isp1301_get_u8(isp, ISP1301_OTG_CONTROL_1);	u8	status = isp1301_get_u8(isp, ISP1301_OTG_STATUS);	u8	src = isp1301_get_u8(isp, ISP1301_INTERRUPT_SOURCE);	pr_debug("otg: %06x, %s %s, otg/%02x stat/%02x.%02x\n",		OTG_CTRL_REG, label, state_name(isp),		ctrl, status, src);	/* mode control and irq enables don't change much */#endif}/*-------------------------------------------------------------------------*/#ifdef	CONFIG_USB_OTG/* * The OMAP OTG controller handles most of the OTG state transitions. * * We translate isp1301 outputs (mostly voltage comparator status) into * OTG inputs; OTG outputs (mostly pullup/pulldown controls) and HNP state * flags into isp1301 inputs ... and infer state transitions. */#ifdef	VERBOSEstatic void check_state(struct isp1301 *isp, const char *tag){	enum usb_otg_state	state = OTG_STATE_UNDEFINED;	u8			fsm = OTG_TEST_REG & 0x0ff;	unsigned		extra = 0;	switch (fsm) {	/* default-b */	case 0x0:		state = OTG_STATE_B_IDLE;		break;	case 0x3:	case 0x7:		extra = 1;	case 0x1:		state = OTG_STATE_B_PERIPHERAL;		break;	case 0x11:		state = OTG_STATE_B_SRP_INIT;		break;	/* extra dual-role default-b states */	case 0x12:	case 0x13:	case 0x16:		extra = 1;	case 0x17:		state = OTG_STATE_B_WAIT_ACON;		break;	case 0x34:		state = OTG_STATE_B_HOST;		break;	/* default-a */	case 0x36:		state = OTG_STATE_A_IDLE;		break;	case 0x3c:		state = OTG_STATE_A_WAIT_VFALL;		break;	case 0x7d:		state = OTG_STATE_A_VBUS_ERR;		break;	case 0x9e:	case 0x9f:		extra = 1;	case 0x89:		state = OTG_STATE_A_PERIPHERAL;		break;	case 0xb7:		state = OTG_STATE_A_WAIT_VRISE;		break;	case 0xb8:		state = OTG_STATE_A_WAIT_BCON;		break;	case 0xb9:		state = OTG_STATE_A_HOST;		break;	case 0xba:		state = OTG_STATE_A_SUSPEND;		break;	default:		break;	}	if (isp->otg.state == state && !extra)		return;	pr_debug("otg: %s FSM %s/%02x, %s, %06x\n", tag,		state_string(state), fsm, state_name(isp), OTG_CTRL_REG);}#elsestatic inline void check_state(struct isp1301 *isp, const char *tag) { }#endif/* outputs from ISP1301_INTERRUPT_SOURCE */static void update_otg1(struct isp1301 *isp, u8 int_src){	u32	otg_ctrl;	otg_ctrl = OTG_CTRL_REG			& OTG_CTRL_MASK			& ~OTG_XCEIV_INPUTS			& ~(OTG_ID|OTG_ASESSVLD|OTG_VBUSVLD);	if (int_src & INTR_SESS_VLD)		otg_ctrl |= OTG_ASESSVLD;	else if (isp->otg.state == OTG_STATE_A_WAIT_VFALL) {		a_idle(isp, "vfall");		otg_ctrl &= ~OTG_CTRL_BITS;	}	if (int_src & INTR_VBUS_VLD)		otg_ctrl |= OTG_VBUSVLD;	if (int_src & INTR_ID_GND) {		/* default-A */		if (isp->otg.state == OTG_STATE_B_IDLE				|| isp->otg.state == OTG_STATE_UNDEFINED) {			a_idle(isp, "init");			return;		}	} else {				/* default-B */		otg_ctrl |= OTG_ID;		if (isp->otg.state == OTG_STATE_A_IDLE				|| isp->otg.state == OTG_STATE_UNDEFINED) {			b_idle(isp, "init");			return;		}	}	OTG_CTRL_REG = otg_ctrl;}/* outputs from ISP1301_OTG_STATUS */static void update_otg2(struct isp1301 *isp, u8 otg_status){	u32	otg_ctrl;	otg_ctrl = OTG_CTRL_REG			& OTG_CTRL_MASK

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区三区| 中文字幕精品综合| 91在线观看成人| 成人黄色在线看| 成人av影视在线观看| 国产91精品免费| 国产大陆亚洲精品国产| 欧美麻豆精品久久久久久| 91视频在线观看| 99久久国产综合精品麻豆| 99久久精品国产一区| 欧洲在线/亚洲| 色嗨嗨av一区二区三区| 91福利在线观看| 欧美日韩亚洲国产综合| 欧美美女一区二区| 欧洲一区二区三区在线| 欧美一区二区三区男人的天堂| 欧美人伦禁忌dvd放荡欲情| 91精选在线观看| 国产日韩欧美麻豆| 亚洲视频电影在线| 日韩中文字幕亚洲一区二区va在线| 性欧美大战久久久久久久久| 日韩电影免费一区| 国产99久久久国产精品潘金网站| av不卡一区二区三区| 欧美在线观看视频一区二区| 欧美电影在线免费观看| 久久日一线二线三线suv| 亚洲色图制服诱惑| 美女高潮久久久| 暴力调教一区二区三区| 欧美美女激情18p| 欧美高清在线视频| 天堂成人免费av电影一区| 国产精品香蕉一区二区三区| 色综合久久中文字幕综合网 | 麻豆视频观看网址久久| 免费看欧美女人艹b| 日本三级亚洲精品| 亚洲国产精品二十页| 激情综合亚洲精品| 国产精品国产三级国产aⅴ原创| 蜜桃久久av一区| 欧美日韩国产高清一区二区三区 | 欧美午夜电影一区| 亚洲视频一二三| 成人avav影音| 亚洲va欧美va国产va天堂影院| caoporen国产精品视频| 麻豆视频观看网址久久| 日韩福利电影在线| 亚洲一线二线三线视频| 亚洲精品久久久久久国产精华液| 中文字幕国产一区二区| 中文字幕一区三区| 一个色在线综合| 亚洲福利视频一区二区| 亚洲激情综合网| 日韩成人午夜电影| 久久99这里只有精品| a亚洲天堂av| 欧美人与禽zozo性伦| 亚洲精品在线免费观看视频| 国产精品毛片无遮挡高清| 亚洲国产精品久久艾草纯爱| 亚洲一区在线免费观看| 蜜臀久久99精品久久久久久9| 不卡欧美aaaaa| 极品少妇xxxx偷拍精品少妇| 麻豆国产精品一区二区三区| 久久精品国产99国产精品| 经典三级视频一区| 91精品国模一区二区三区| 欧美一区二区三区啪啪| 精品视频一区 二区 三区| 欧美性猛片xxxx免费看久爱| 波多野结衣中文字幕一区二区三区| 蜜桃传媒麻豆第一区在线观看| 日本亚洲三级在线| 高清免费成人av| 精品视频一区 二区 三区| 国产亚洲短视频| 亚洲最大色网站| 国产永久精品大片wwwapp| 欧美日韩亚洲综合| 日韩欧美一级特黄在线播放| 亚洲黄色小视频| 韩国一区二区三区| 麻豆精品久久精品色综合| 欧美日韩小视频| 日韩高清不卡一区二区三区| 欧美一区欧美二区| 色婷婷国产精品久久包臀| 日韩欧美国产一二三区| 三级在线观看一区二区| 91美女在线看| 亚洲欧洲另类国产综合| 日韩精品福利网| 欧美日韩国产另类一区| 亚洲一区二区偷拍精品| 精品视频在线免费观看| 日产国产欧美视频一区精品| 精品捆绑美女sm三区| 成人精品视频.| 国产一区二区免费视频| 日本免费新一区视频| 亚洲男人的天堂网| 一区二区在线观看免费| 中文字幕第一页久久| 日韩欧美国产一二三区| 在线播放亚洲一区| 一本大道久久a久久精品综合| 免费观看久久久4p| 亚洲成av人片在线观看无码| 中文字幕一区二| 欧美视频一二三区| 粉嫩在线一区二区三区视频| 亚洲一区二区在线观看视频| 久久久99免费| 9191久久久久久久久久久| 丰满白嫩尤物一区二区| 秋霞影院一区二区| 亚洲免费观看高清| 欧美极品少妇xxxxⅹ高跟鞋| 欧美一区二区三区喷汁尤物| 欧美aaaaaa午夜精品| 亚洲黄色av一区| 亚洲国产wwwccc36天堂| 亚洲韩国精品一区| 欧美丰满少妇xxxxx高潮对白 | 欧美日韩国产精选| 成人性生交大片免费看在线播放 | 91国偷自产一区二区三区成为亚洲经典 | 亚洲人成网站在线| 国产性色一区二区| 精品美女一区二区| 日韩一区二区在线观看视频播放| 国产 日韩 欧美大片| 99综合电影在线视频| 加勒比av一区二区| 久久国产精品99精品国产| 亚洲狠狠爱一区二区三区| 亚洲免费观看视频| 亚洲免费在线看| 亚洲一级二级三级在线免费观看| 中文字幕成人av| 国产精品美女一区二区在线观看| 欧美成人a视频| 日韩亚洲欧美高清| 精品国产1区二区| 久久久91精品国产一区二区精品| 欧美mv日韩mv| 亚洲欧洲99久久| 亚洲欧美精品午睡沙发| 亚洲国产精品久久久久婷婷884| 亚洲一区影音先锋| 国产综合色产在线精品| 99视频精品在线| 欧美日韩电影一区| 国产亚洲一区二区三区| 亚洲精品五月天| 欧美a级理论片| 99re视频精品| 欧美一级搡bbbb搡bbbb| 亚洲欧美在线视频观看| 丝袜美腿成人在线| 色综合一区二区三区| 日韩免费在线观看| 亚洲一级二级三级| 97国产精品videossex| 日韩欧美三级在线| 日日骚欧美日韩| 日本道精品一区二区三区 | 午夜伦理一区二区| 色噜噜狠狠一区二区三区果冻| 国产亚洲精品资源在线26u| 亚洲国产欧美在线人成| www.欧美精品一二区| 中文字幕二三区不卡| 色欲综合视频天天天| 欧美性猛交xxxx黑人交| 亚洲免费观看高清完整版在线| 韩国三级在线一区| 精品播放一区二区| 国产成人在线观看免费网站| 欧美一级理论片| 国产成人精品免费网站| 国产精品灌醉下药二区| 国产成人在线色| 18欧美乱大交hd1984| 成人手机电影网| 91精品黄色片免费大全| 亚洲成av人片在线观看| 99re热视频精品| 欧美一卡2卡三卡4卡5免费| 欧美一级精品大片| 性感美女久久精品| 欧美丰满一区二区免费视频|