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

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

?? s3c2410.c

?? linux 內核源代碼
?? C
?? 第 1 頁 / 共 3 頁
字號:
	calc->calc = (rate / (calc->quot * 16));	calc->quot--;	return 1;}static unsigned int s3c24xx_serial_getclk(struct uart_port *port,					  struct s3c24xx_uart_clksrc **clksrc,					  struct clk **clk,					  unsigned int baud){	struct s3c2410_uartcfg *cfg = s3c24xx_port_to_cfg(port);	struct s3c24xx_uart_clksrc *clkp;	struct baud_calc res[MAX_CLKS];	struct baud_calc *resptr, *best, *sptr;	int i;	clkp = cfg->clocks;	best = NULL;	if (cfg->clocks_size < 2) {		if (cfg->clocks_size == 0)			clkp = &tmp_clksrc;		/* check to see if we're sourcing fclk, and if so we're		 * going to have to update the clock source		 */		if (strcmp(clkp->name, "fclk") == 0) {			struct s3c24xx_uart_clksrc src;			s3c24xx_serial_getsource(port, &src);			/* check that the port already using fclk, and if			 * not, then re-select fclk			 */			if (strcmp(src.name, clkp->name) == 0) {				s3c24xx_serial_setsource(port, clkp);				s3c24xx_serial_getsource(port, &src);			}			clkp->divisor = src.divisor;		}		s3c24xx_serial_calcbaud(res, port, clkp, baud);		best = res;		resptr = best + 1;	} else {		resptr = res;		for (i = 0; i < cfg->clocks_size; i++, clkp++) {			if (s3c24xx_serial_calcbaud(resptr, port, clkp, baud))				resptr++;		}	}	/* ok, we now need to select the best clock we found */	if (!best) {		unsigned int deviation = (1<<30)|((1<<30)-1);		int calc_deviation;		for (sptr = res; sptr < resptr; sptr++) {			printk(KERN_DEBUG			       "found clk %p (%s) quot %d, calc %d\n",			       sptr->clksrc, sptr->clksrc->name,			       sptr->quot, sptr->calc);			calc_deviation = baud - sptr->calc;			if (calc_deviation < 0)				calc_deviation = -calc_deviation;			if (calc_deviation < deviation) {				best = sptr;				deviation = calc_deviation;			}		}		printk(KERN_DEBUG "best %p (deviation %d)\n", best, deviation);	}	printk(KERN_DEBUG "selected clock %p (%s) quot %d, calc %d\n",	       best->clksrc, best->clksrc->name, best->quot, best->calc);	/* store results to pass back */	*clksrc = best->clksrc;	*clk    = best->src;	return best->quot;}static void s3c24xx_serial_set_termios(struct uart_port *port,				       struct ktermios *termios,				       struct ktermios *old){	struct s3c2410_uartcfg *cfg = s3c24xx_port_to_cfg(port);	struct s3c24xx_uart_port *ourport = to_ourport(port);	struct s3c24xx_uart_clksrc *clksrc = NULL;	struct clk *clk = NULL;	unsigned long flags;	unsigned int baud, quot;	unsigned int ulcon;	unsigned int umcon;	/*	 * We don't support modem control lines.	 */	termios->c_cflag &= ~(HUPCL | CMSPAR);	termios->c_cflag |= CLOCAL;	/*	 * Ask the core to calculate the divisor for us.	 */	baud = uart_get_baud_rate(port, termios, old, 0, 115200*8);	if (baud == 38400 && (port->flags & UPF_SPD_MASK) == UPF_SPD_CUST)		quot = port->custom_divisor;	else		quot = s3c24xx_serial_getclk(port, &clksrc, &clk, baud);	/* check to see if we need  to change clock source */	if (ourport->clksrc != clksrc || ourport->baudclk != clk) {		s3c24xx_serial_setsource(port, clksrc);		if (ourport->baudclk != NULL && !IS_ERR(ourport->baudclk)) {			clk_disable(ourport->baudclk);			ourport->baudclk  = NULL;		}		clk_enable(clk);		ourport->clksrc = clksrc;		ourport->baudclk = clk;	}	switch (termios->c_cflag & CSIZE) {	case CS5:		dbg("config: 5bits/char\n");		ulcon = S3C2410_LCON_CS5;		break;	case CS6:		dbg("config: 6bits/char\n");		ulcon = S3C2410_LCON_CS6;		break;	case CS7:		dbg("config: 7bits/char\n");		ulcon = S3C2410_LCON_CS7;		break;	case CS8:	default:		dbg("config: 8bits/char\n");		ulcon = S3C2410_LCON_CS8;		break;	}	/* preserve original lcon IR settings */	ulcon |= (cfg->ulcon & S3C2410_LCON_IRM);	if (termios->c_cflag & CSTOPB)		ulcon |= S3C2410_LCON_STOPB;	umcon = (termios->c_cflag & CRTSCTS) ? S3C2410_UMCOM_AFC : 0;	if (termios->c_cflag & PARENB) {		if (termios->c_cflag & PARODD)			ulcon |= S3C2410_LCON_PODD;		else			ulcon |= S3C2410_LCON_PEVEN;	} else {		ulcon |= S3C2410_LCON_PNONE;	}	spin_lock_irqsave(&port->lock, flags);	dbg("setting ulcon to %08x, brddiv to %d\n", ulcon, quot);	wr_regl(port, S3C2410_ULCON, ulcon);	wr_regl(port, S3C2410_UBRDIV, quot);	wr_regl(port, S3C2410_UMCON, umcon);	dbg("uart: ulcon = 0x%08x, ucon = 0x%08x, ufcon = 0x%08x\n",	    rd_regl(port, S3C2410_ULCON),	    rd_regl(port, S3C2410_UCON),	    rd_regl(port, S3C2410_UFCON));	/*	 * Update the per-port timeout.	 */	uart_update_timeout(port, termios->c_cflag, baud);	/*	 * Which character status flags are we interested in?	 */	port->read_status_mask = S3C2410_UERSTAT_OVERRUN;	if (termios->c_iflag & INPCK)		port->read_status_mask |= S3C2410_UERSTAT_FRAME | S3C2410_UERSTAT_PARITY;	/*	 * Which character status flags should we ignore?	 */	port->ignore_status_mask = 0;	if (termios->c_iflag & IGNPAR)		port->ignore_status_mask |= S3C2410_UERSTAT_OVERRUN;	if (termios->c_iflag & IGNBRK && termios->c_iflag & IGNPAR)		port->ignore_status_mask |= S3C2410_UERSTAT_FRAME;	/*	 * Ignore all characters if CREAD is not set.	 */	if ((termios->c_cflag & CREAD) == 0)		port->ignore_status_mask |= RXSTAT_DUMMY_READ;	spin_unlock_irqrestore(&port->lock, flags);}static const char *s3c24xx_serial_type(struct uart_port *port){	switch (port->type) {	case PORT_S3C2410:		return "S3C2410";	case PORT_S3C2440:		return "S3C2440";	case PORT_S3C2412:		return "S3C2412";	default:		return NULL;	}}#define MAP_SIZE (0x100)static void s3c24xx_serial_release_port(struct uart_port *port){	release_mem_region(port->mapbase, MAP_SIZE);}static int s3c24xx_serial_request_port(struct uart_port *port){	const char *name = s3c24xx_serial_portname(port);	return request_mem_region(port->mapbase, MAP_SIZE, name) ? 0 : -EBUSY;}static void s3c24xx_serial_config_port(struct uart_port *port, int flags){	struct s3c24xx_uart_info *info = s3c24xx_port_to_info(port);	if (flags & UART_CONFIG_TYPE &&	    s3c24xx_serial_request_port(port) == 0)		port->type = info->type;}/* * verify the new serial_struct (for TIOCSSERIAL). */static ints3c24xx_serial_verify_port(struct uart_port *port, struct serial_struct *ser){	struct s3c24xx_uart_info *info = s3c24xx_port_to_info(port);	if (ser->type != PORT_UNKNOWN && ser->type != info->type)		return -EINVAL;	return 0;}#ifdef CONFIG_SERIAL_S3C2410_CONSOLEstatic struct console s3c24xx_serial_console;#define S3C24XX_SERIAL_CONSOLE &s3c24xx_serial_console#else#define S3C24XX_SERIAL_CONSOLE NULL#endifstatic struct uart_ops s3c24xx_serial_ops = {	.pm		= s3c24xx_serial_pm,	.tx_empty	= s3c24xx_serial_tx_empty,	.get_mctrl	= s3c24xx_serial_get_mctrl,	.set_mctrl	= s3c24xx_serial_set_mctrl,	.stop_tx	= s3c24xx_serial_stop_tx,	.start_tx	= s3c24xx_serial_start_tx,	.stop_rx	= s3c24xx_serial_stop_rx,	.enable_ms	= s3c24xx_serial_enable_ms,	.break_ctl	= s3c24xx_serial_break_ctl,	.startup	= s3c24xx_serial_startup,	.shutdown	= s3c24xx_serial_shutdown,	.set_termios	= s3c24xx_serial_set_termios,	.type		= s3c24xx_serial_type,	.release_port	= s3c24xx_serial_release_port,	.request_port	= s3c24xx_serial_request_port,	.config_port	= s3c24xx_serial_config_port,	.verify_port	= s3c24xx_serial_verify_port,};static struct uart_driver s3c24xx_uart_drv = {	.owner		= THIS_MODULE,	.dev_name	= "s3c2410_serial",	.nr		= 3,	.cons		= S3C24XX_SERIAL_CONSOLE,	.driver_name	= S3C24XX_SERIAL_NAME,	.major		= S3C24XX_SERIAL_MAJOR,	.minor		= S3C24XX_SERIAL_MINOR,};static struct s3c24xx_uart_port s3c24xx_serial_ports[NR_PORTS] = {	[0] = {		.port = {			.lock		= __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[0].port.lock),			.iotype		= UPIO_MEM,			.irq		= IRQ_S3CUART_RX0,			.uartclk	= 0,			.fifosize	= 16,			.ops		= &s3c24xx_serial_ops,			.flags		= UPF_BOOT_AUTOCONF,			.line		= 0,		}	},	[1] = {		.port = {			.lock		= __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[1].port.lock),			.iotype		= UPIO_MEM,			.irq		= IRQ_S3CUART_RX1,			.uartclk	= 0,			.fifosize	= 16,			.ops		= &s3c24xx_serial_ops,			.flags		= UPF_BOOT_AUTOCONF,			.line		= 1,		}	},#if NR_PORTS > 2	[2] = {		.port = {			.lock		= __SPIN_LOCK_UNLOCKED(s3c24xx_serial_ports[2].port.lock),			.iotype		= UPIO_MEM,			.irq		= IRQ_S3CUART_RX2,			.uartclk	= 0,			.fifosize	= 16,			.ops		= &s3c24xx_serial_ops,			.flags		= UPF_BOOT_AUTOCONF,			.line		= 2,		}	}#endif};/* s3c24xx_serial_resetport * * wrapper to call the specific reset for this port (reset the fifos * and the settings)*/static inline int s3c24xx_serial_resetport(struct uart_port * port,					   struct s3c2410_uartcfg *cfg){	struct s3c24xx_uart_info *info = s3c24xx_port_to_info(port);	return (info->reset_port)(port, cfg);}/* s3c24xx_serial_init_port * * initialise a single serial port from the platform device given */static int s3c24xx_serial_init_port(struct s3c24xx_uart_port *ourport,				    struct s3c24xx_uart_info *info,				    struct platform_device *platdev){	struct uart_port *port = &ourport->port;	struct s3c2410_uartcfg *cfg;	struct resource *res;	dbg("s3c24xx_serial_init_port: port=%p, platdev=%p\n", port, platdev);	if (platdev == NULL)		return -ENODEV;	cfg = s3c24xx_dev_to_cfg(&platdev->dev);	if (port->mapbase != 0)		return 0;	if (cfg->hwport > 3)		return -EINVAL;	/* setup info for port */	port->dev	= &platdev->dev;	ourport->info	= info;	/* copy the info in from provided structure */	ourport->port.fifosize = info->fifosize;	dbg("s3c24xx_serial_init_port: %p (hw %d)...\n", port, cfg->hwport);	port->uartclk = 1;	if (cfg->uart_flags & UPF_CONS_FLOW) {		dbg("s3c24xx_serial_init_port: enabling flow control\n");		port->flags |= UPF_CONS_FLOW;	}	/* sort our the physical and virtual addresses for each UART */	res = platform_get_resource(platdev, IORESOURCE_MEM, 0);	if (res == NULL) {		printk(KERN_ERR "failed to find memory resource for uart\n");		return -EINVAL;	}	dbg("resource %p (%lx..%lx)\n", res, res->start, res->end);	port->mapbase	= res->start;	port->membase	= S3C24XX_VA_UART + (res->start - S3C24XX_PA_UART);	port->irq	= platform_get_irq(platdev, 0);	if (port->irq < 0)		port->irq = 0;	ourport->clk	= clk_get(&platdev->dev, "uart");	dbg("port: map=%08x, mem=%08x, irq=%d, clock=%ld\n",	    port->mapbase, port->membase, port->irq, port->uartclk);	/* reset the fifos (and setup the uart) */	s3c24xx_serial_resetport(port, cfg);	return 0;}/* Device driver serial port probe */static int probe_index = 0;static int s3c24xx_serial_probe(struct platform_device *dev,				struct s3c24xx_uart_info *info){	struct s3c24xx_uart_port *ourport;	int ret;	dbg("s3c24xx_serial_probe(%p, %p) %d\n", dev, info, probe_index);	ourport = &s3c24xx_serial_ports[probe_index];	probe_index++;	dbg("%s: initialising port %p...\n", __FUNCTION__, ourport);	ret = s3c24xx_serial_init_port(ourport, info, dev);	if (ret < 0)		goto probe_err;	dbg("%s: adding port\n", __FUNCTION__);	uart_add_one_port(&s3c24xx_uart_drv, &ourport->port);	platform_set_drvdata(dev, &ourport->port);	return 0; probe_err:	return ret;}static int s3c24xx_serial_remove(struct platform_device *dev){	struct uart_port *port = s3c24xx_dev_to_port(&dev->dev);	if (port)		uart_remove_one_port(&s3c24xx_uart_drv, port);	return 0;}/* UART power management code */#ifdef CONFIG_PMstatic int s3c24xx_serial_suspend(struct platform_device *dev, pm_message_t state){	struct uart_port *port = s3c24xx_dev_to_port(&dev->dev);	if (port)		uart_suspend_port(&s3c24xx_uart_drv, port);	return 0;}static int s3c24xx_serial_resume(struct platform_device *dev){	struct uart_port *port = s3c24xx_dev_to_port(&dev->dev);	struct s3c24xx_uart_port *ourport = to_ourport(port);	if (port) {		clk_enable(ourport->clk);		s3c24xx_serial_resetport(port, s3c24xx_port_to_cfg(port));		clk_disable(ourport->clk);		uart_resume_port(&s3c24xx_uart_drv, port);	}	return 0;}#else#define s3c24xx_serial_suspend NULL#define s3c24xx_serial_resume  NULL#endifstatic int s3c24xx_serial_init(struct platform_driver *drv,			       struct s3c24xx_uart_info *info){	dbg("s3c24xx_serial_init(%p,%p)\n", drv, info);	return platform_driver_register(drv);}/* now comes the code to initialise either the s3c2410 or s3c2440 serial * port information*//* cpu specific variations on the serial port support */#ifdef CONFIG_CPU_S3C2400static int s3c2400_serial_getsource(struct uart_port *port,				    struct s3c24xx_uart_clksrc *clk){	clk->divisor = 1;	clk->name = "pclk";	return 0;}static int s3c2400_serial_setsource(struct uart_port *port,				    struct s3c24xx_uart_clksrc *clk){	return 0;}static int s3c2400_serial_resetport(struct uart_port *port,				    struct s3c2410_uartcfg *cfg){	dbg("s3c2400_serial_resetport: port=%p (%08lx), cfg=%p\n",	    port, port->mapbase, cfg);	wr_regl(port, S3C2410_UCON,  cfg->ucon);	wr_regl(port, S3C2410_ULCON, cfg->ulcon);	/* reset both fifos */	wr_regl(port, S3C2410_UFCON, cfg->ufcon | S3C2410_UFCON_RESETBOTH);	wr_regl(port, S3C2410_UFCON, cfg->ufcon);	return 0;}static struct s3c24xx_uart_info s3c2400_uart_inf = {	.name		= "Samsung S3C2400 UART",	.type		= PORT_S3C2400,	.fifosize	= 16,	.rx_fifomask	= S3C2410_UFSTAT_RXMASK,	.rx_fifoshift	= S3C2410_UFSTAT_RXSHIFT,	.rx_fifofull	= S3C2410_UFSTAT_RXFULL,	.tx_fifofull	= S3C2410_UFSTAT_TXFULL,	.tx_fifomask	= S3C2410_UFSTAT_TXMASK,	.tx_fifoshift	= S3C2410_UFSTAT_TXSHIFT,	.get_clksrc	= s3c2400_serial_getsource,	.set_clksrc	= s3c2400_serial_setsource,	.reset_port	= s3c2400_serial_resetport,};static int s3c2400_serial_probe(struct platform_device *dev){	return s3c24xx_serial_probe(dev, &s3c2400_uart_inf);}static struct platform_driver s3c2400_serial_drv = {	.probe		= s3c2400_serial_probe,	.remove		= s3c24xx_serial_remove,	.suspend	= s3c24xx_serial_suspend,	.resume		= s3c24xx_serial_resume,	.driver		= {		.name	= "s3c2400-uart",		.owner	= THIS_MODULE,	},};static inline int s3c2400_serial_init(void){	return s3c24xx_serial_init(&s3c2400_serial_drv, &s3c2400_uart_inf);}static inline void s3c2400_serial_exit(void){	platform_driver_unregister(&s3c2400_serial_drv);}#define s3c2400_uart_inf_at &s3c2400_uart_inf#elsestatic inline int s3c2400_serial_init(void){	return 0;}static inline void s3c2400_serial_exit(void){}#define s3c2400_uart_inf_at NULL#endif /* CONFIG_CPU_S3C2400 *//* S3C2410 support */#ifdef CONFIG_CPU_S3C2410static int s3c2410_serial_setsource(struct uart_port *port,				    struct s3c24xx_uart_clksrc *clk){	unsigned long ucon = rd_regl(port, S3C2410_UCON);	if (strcmp(clk->name, "uclk") == 0)		ucon |= S3C2410_UCON_UCLK;	else		ucon &= ~S3C2410_UCON_UCLK;	wr_regl(port, S3C2410_UCON, ucon);	return 0;}static int s3c2410_serial_getsource(struct uart_port *port,				    struct s3c24xx_uart_clksrc *clk){	unsigned long ucon = rd_regl(port, S3C2410_UCON);	clk->divisor = 1;	clk->name = (ucon & S3C2410_UCON_UCLK) ? "uclk" : "pclk";	return 0;}static int s3c2410_serial_resetport(struct uart_port *port,				    struct s3c2410_uartcfg *cfg)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩国产精品91| 亚洲色图19p| 极品美女销魂一区二区三区免费| 51精品秘密在线观看| 麻豆精品精品国产自在97香蕉| 337p亚洲精品色噜噜噜| 极品少妇一区二区| 久久久99精品免费观看不卡| 成人午夜私人影院| 亚洲日本免费电影| 7777精品伊人久久久大香线蕉经典版下载 | 日本麻豆一区二区三区视频| 日韩一区国产二区欧美三区| 精品一区二区在线观看| 中文字幕成人av| 欧美中文一区二区三区| 久久国产麻豆精品| 中文字幕一区二区日韩精品绯色| 欧美偷拍一区二区| 韩日av一区二区| 亚洲精品日日夜夜| 日韩欧美一二三四区| 成人理论电影网| 亚洲午夜成aⅴ人片| 精品久久久久久久人人人人传媒| va亚洲va日韩不卡在线观看| 亚洲电影中文字幕在线观看| 精品久久人人做人人爰| 91免费在线看| 久久99精品久久久久久动态图| 亚洲私人影院在线观看| 日韩欧美一区中文| 91在线视频官网| 国产一区二区不卡在线| 亚洲韩国精品一区| 日本一区二区免费在线观看视频| 欧美视频中文一区二区三区在线观看| 久久er99热精品一区二区| 亚洲男帅同性gay1069| 亚洲精品在线三区| 欧美日韩中文另类| 99re视频精品| 国产精品资源在线| 日日夜夜精品视频免费| 亚洲欧美一区二区视频| 久久综合五月天婷婷伊人| 欧美在线观看视频一区二区| 福利91精品一区二区三区| 免费的国产精品| 婷婷六月综合网| 亚洲精品国产高清久久伦理二区| 久久嫩草精品久久久精品| 欧美群妇大交群的观看方式| 色综合久久久久综合99| 韩国成人在线视频| 美女视频黄频大全不卡视频在线播放| 亚洲久草在线视频| 国产精品欧美精品| 国产午夜久久久久| 欧美精品一区二区三| 7777精品久久久大香线蕉| 欧美系列一区二区| 日本精品视频一区二区三区| 99久久综合99久久综合网站| 国产成人精品免费看| 国产成人久久精品77777最新版本| 日本一不卡视频| 偷拍一区二区三区四区| 视频一区二区中文字幕| 五月婷婷综合网| 日韩成人av影视| 丝袜诱惑制服诱惑色一区在线观看 | 狠狠色综合日日| 蜜桃视频在线一区| 蜜桃视频在线一区| 免费人成网站在线观看欧美高清| 亚洲mv在线观看| 午夜视频一区二区| 日韩制服丝袜av| 日韩va欧美va亚洲va久久| 日韩av在线播放中文字幕| 免费欧美日韩国产三级电影| 日精品一区二区三区| 免费视频一区二区| 国产精品综合久久| 国产精品一区二区在线看| 国产成人免费av在线| 99re视频精品| 欧美日韩免费电影| 欧美一区二区三区在线| 欧美v国产在线一区二区三区| 久久天天做天天爱综合色| 中文字幕欧美激情一区| 国产精品色眯眯| 一区二区久久久| 亚洲成人激情综合网| 捆绑调教一区二区三区| 丁香激情综合国产| 色综合咪咪久久| 欧美久久久久久蜜桃| 久久理论电影网| 国产精品第四页| 日韩高清不卡一区二区三区| 国产一区二区三区日韩 | 亚洲高清免费在线| 蜜桃视频在线观看一区| 床上的激情91.| 欧美主播一区二区三区| 欧美大片顶级少妇| 最新高清无码专区| 免费在线一区观看| aaa欧美色吧激情视频| 欧美美女一区二区三区| 精品处破学生在线二十三| 亚洲精品美国一| 久久爱www久久做| 色综合天天天天做夜夜夜夜做| 91精品国产综合久久小美女| 日本一区二区三区四区在线视频| 一区二区三区精密机械公司| 黄色资源网久久资源365| 色婷婷av久久久久久久| 久久综合国产精品| 亚洲一区日韩精品中文字幕| 国产剧情一区在线| 欧美精品久久99| 综合欧美一区二区三区| 国产一区二区免费看| 欧美日韩一级黄| 国产精品久久久久aaaa| 久久电影网电视剧免费观看| 在线观看日韩电影| 亚洲欧美自拍偷拍色图| 韩国av一区二区三区四区| 欧美情侣在线播放| 亚洲女人的天堂| 成人午夜看片网址| 精品国产一区二区三区久久久蜜月| 一区二区三区免费| 99视频精品全部免费在线| 国产人妖乱国产精品人妖| 另类小说综合欧美亚洲| 欧美日本韩国一区二区三区视频| 国产精品久久久久四虎| 国产精品中文字幕日韩精品| 91精品麻豆日日躁夜夜躁| 亚洲小少妇裸体bbw| 99国产精品久久久久久久久久久| 欧美mv日韩mv亚洲| 日韩av一区二区三区| 欧美日韩国产精品成人| 亚洲精品欧美专区| 成人免费毛片aaaaa**| 久久久精品中文字幕麻豆发布| 久久99精品一区二区三区| 日韩一级黄色片| 免费看精品久久片| 日韩欧美一级在线播放| 日本三级韩国三级欧美三级| 欧美理论在线播放| 午夜私人影院久久久久| 欧美另类z0zxhd电影| 天堂午夜影视日韩欧美一区二区| 欧美日韩一级片网站| 丝袜美腿高跟呻吟高潮一区| 在线中文字幕不卡| 亚洲成人免费在线观看| 欧美年轻男男videosbes| 日日夜夜免费精品视频| 精品欧美黑人一区二区三区| 久久成人久久鬼色| 国产视频在线观看一区二区三区| 国产主播一区二区| 国产欧美日韩另类视频免费观看| 国产精品99久久久久久宅男| 亚洲国产成人午夜在线一区| 99国产精品久久久久久久久久久| 亚洲精品视频在线观看网站| 欧美伊人久久大香线蕉综合69 | 国产欧美日本一区视频| 国产成人aaa| 日韩一区中文字幕| 欧美色图12p| 蜜臀av一区二区在线免费观看| 久久亚洲一区二区三区四区| av成人免费在线观看| 亚洲图片欧美色图| 日韩精品中文字幕在线一区| 国产成人精品一区二区三区四区| 国产精品美女久久久久久久| 欧美色视频在线观看| 国产综合久久久久久久久久久久| 中文子幕无线码一区tr| 在线一区二区观看| 另类欧美日韩国产在线| 国产亚洲婷婷免费| 欧美日韩亚洲高清一区二区| 国产一区不卡视频| 亚洲最新在线观看| 国产亚洲人成网站|