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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? serial_ks8695.c

?? linux 內(nèi)核源代碼
?? C
字號:
/* *  drivers/serial/serial_ks8695.c * *  Driver for KS8695 serial ports * *  Based on drivers/serial/serial_amba.c, by Kam Lee. * *  Copyright 2002-2005 Micrel 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. * */#include <linux/module.h>#include <linux/tty.h>#include <linux/ioport.h>#include <linux/init.h>#include <linux/serial.h>#include <linux/console.h>#include <linux/sysrq.h>#include <linux/device.h>#include <asm/io.h>#include <asm/irq.h>#include <asm/mach/irq.h>#include <asm/arch/regs-uart.h>#include <asm/arch/regs-irq.h>#if defined(CONFIG_SERIAL_KS8695_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)#define SUPPORT_SYSRQ#endif#include <linux/serial_core.h>#define SERIAL_KS8695_MAJOR	204#define SERIAL_KS8695_MINOR	16#define SERIAL_KS8695_DEVNAME	"ttyAM"#define SERIAL_KS8695_NR	1/* * Access macros for the KS8695 UART */#define UART_GET_CHAR(p)	(__raw_readl((p)->membase + KS8695_URRB) & 0xFF)#define UART_PUT_CHAR(p, c)	__raw_writel((c), (p)->membase + KS8695_URTH)#define UART_GET_FCR(p)		__raw_readl((p)->membase + KS8695_URFC)#define UART_PUT_FCR(p, c)	__raw_writel((c), (p)->membase + KS8695_URFC)#define UART_GET_MSR(p)		__raw_readl((p)->membase + KS8695_URMS)#define UART_GET_LSR(p)		__raw_readl((p)->membase + KS8695_URLS)#define UART_GET_LCR(p)		__raw_readl((p)->membase + KS8695_URLC)#define UART_PUT_LCR(p, c)	__raw_writel((c), (p)->membase + KS8695_URLC)#define UART_GET_MCR(p)		__raw_readl((p)->membase + KS8695_URMC)#define UART_PUT_MCR(p, c)	__raw_writel((c), (p)->membase + KS8695_URMC)#define UART_GET_BRDR(p)	__raw_readl((p)->membase + KS8695_URBD)#define UART_PUT_BRDR(p, c)	__raw_writel((c), (p)->membase + KS8695_URBD)#define KS8695_CLR_TX_INT()	__raw_writel(1 << KS8695_IRQ_UART_TX, KS8695_IRQ_VA + KS8695_INTST)#define UART_DUMMY_LSR_RX	0x100#define UART_PORT_SIZE		(KS8695_USR - KS8695_URRB + 4)#define tx_enabled(port) ((port)->unused[0])#define rx_enabled(port) ((port)->unused[1])#ifdef SUPPORT_SYSRQstatic struct console ks8695_console;#endifstatic void ks8695uart_stop_tx(struct uart_port *port){	if (tx_enabled(port)) {		disable_irq(KS8695_IRQ_UART_TX);		tx_enabled(port) = 0;	}}static void ks8695uart_start_tx(struct uart_port *port){	if (!tx_enabled(port)) {		enable_irq(KS8695_IRQ_UART_TX);		tx_enabled(port) = 1;	}}static void ks8695uart_stop_rx(struct uart_port *port){	if (rx_enabled(port)) {		disable_irq(KS8695_IRQ_UART_RX);		rx_enabled(port) = 0;	}}static void ks8695uart_enable_ms(struct uart_port *port){	enable_irq(KS8695_IRQ_UART_MODEM_STATUS);}static void ks8695uart_disable_ms(struct uart_port *port){	disable_irq(KS8695_IRQ_UART_MODEM_STATUS);}static irqreturn_t ks8695uart_rx_chars(int irq, void *dev_id){	struct uart_port *port = dev_id;	struct tty_struct *tty = port->info->tty;	unsigned int status, ch, lsr, flg, max_count = 256;	status = UART_GET_LSR(port);		/* clears pending LSR interrupts */	while ((status & URLS_URDR) && max_count--) {		ch = UART_GET_CHAR(port);		flg = TTY_NORMAL;		port->icount.rx++;		/*		 * Note that the error handling code is		 * out of the main execution path		 */		lsr = UART_GET_LSR(port) | UART_DUMMY_LSR_RX;		if (unlikely(lsr & (URLS_URBI | URLS_URPE | URLS_URFE | URLS_URROE))) {			if (lsr & URLS_URBI) {				lsr &= ~(URLS_URFE | URLS_URPE);				port->icount.brk++;				if (uart_handle_break(port))					goto ignore_char;			}			if (lsr & URLS_URPE)				port->icount.parity++;			if (lsr & URLS_URFE)				port->icount.frame++;			if (lsr & URLS_URROE)				port->icount.overrun++;			lsr &= port->read_status_mask;			if (lsr & URLS_URBI)				flg = TTY_BREAK;			else if (lsr & URLS_URPE)				flg = TTY_PARITY;			else if (lsr & URLS_URFE)				flg = TTY_FRAME;		}		if (uart_handle_sysrq_char(port, ch))			goto ignore_char;		uart_insert_char(port, lsr, URLS_URROE, ch, flg);ignore_char:		status = UART_GET_LSR(port);	}	tty_flip_buffer_push(tty);	return IRQ_HANDLED;}static irqreturn_t ks8695uart_tx_chars(int irq, void *dev_id){	struct uart_port *port = dev_id;	struct circ_buf *xmit = &port->info->xmit;	unsigned int count;	if (port->x_char) {		KS8695_CLR_TX_INT();		UART_PUT_CHAR(port, port->x_char);		port->icount.tx++;		port->x_char = 0;		return IRQ_HANDLED;	}	if (uart_tx_stopped(port) || uart_circ_empty(xmit)) {		ks8695uart_stop_tx(port);		return IRQ_HANDLED;	}	count = 16;	/* fifo size */	while (!uart_circ_empty(xmit) && (count-- > 0)) {		KS8695_CLR_TX_INT();		UART_PUT_CHAR(port, xmit->buf[xmit->tail]);		xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);		port->icount.tx++;	}	if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)		uart_write_wakeup(port);	if (uart_circ_empty(xmit))		ks8695uart_stop_tx(port);	return IRQ_HANDLED;}static irqreturn_t ks8695uart_modem_status(int irq, void *dev_id){	struct uart_port *port = dev_id;	unsigned int status;	/*	 * clear modem interrupt by reading MSR	 */	status = UART_GET_MSR(port);	if (status & URMS_URDDCD)		uart_handle_dcd_change(port, status & URMS_URDDCD);	if (status & URMS_URDDST)		port->icount.dsr++;	if (status & URMS_URDCTS)		uart_handle_cts_change(port, status & URMS_URDCTS);	if (status & URMS_URTERI)		port->icount.rng++;	wake_up_interruptible(&port->info->delta_msr_wait);	return IRQ_HANDLED;}static unsigned int ks8695uart_tx_empty(struct uart_port *port){	return (UART_GET_LSR(port) & URLS_URTE) ? TIOCSER_TEMT : 0;}static unsigned int ks8695uart_get_mctrl(struct uart_port *port){	unsigned int result = 0;	unsigned int status;	status = UART_GET_MSR(port);	if (status & URMS_URDCD)		result |= TIOCM_CAR;	if (status & URMS_URDSR)		result |= TIOCM_DSR;	if (status & URMS_URCTS)		result |= TIOCM_CTS;	if (status & URMS_URRI)		result |= TIOCM_RI;	return result;}static void ks8695uart_set_mctrl(struct uart_port *port, u_int mctrl){	unsigned int mcr;	mcr = UART_GET_MCR(port);	if (mctrl & TIOCM_RTS)		mcr |= URMC_URRTS;	else		mcr &= ~URMC_URRTS;	if (mctrl & TIOCM_DTR)		mcr |= URMC_URDTR;	else		mcr &= ~URMC_URDTR;	UART_PUT_MCR(port, mcr);}static void ks8695uart_break_ctl(struct uart_port *port, int break_state){	unsigned int lcr;	lcr = UART_GET_LCR(port);	if (break_state == -1)		lcr |= URLC_URSBC;	else		lcr &= ~URLC_URSBC;	UART_PUT_LCR(port, lcr);}static int ks8695uart_startup(struct uart_port *port){	int retval;	set_irq_flags(KS8695_IRQ_UART_TX, IRQF_VALID | IRQF_NOAUTOEN);	tx_enabled(port) = 0;	rx_enabled(port) = 1;	/*	 * Allocate the IRQ	 */	retval = request_irq(KS8695_IRQ_UART_TX, ks8695uart_tx_chars, IRQF_DISABLED, "UART TX", port);	if (retval)		goto err_tx;	retval = request_irq(KS8695_IRQ_UART_RX, ks8695uart_rx_chars, IRQF_DISABLED, "UART RX", port);	if (retval)		goto err_rx;	retval = request_irq(KS8695_IRQ_UART_LINE_STATUS, ks8695uart_rx_chars, IRQF_DISABLED, "UART LineStatus", port);	if (retval)		goto err_ls;	retval = request_irq(KS8695_IRQ_UART_MODEM_STATUS, ks8695uart_modem_status, IRQF_DISABLED, "UART ModemStatus", port);	if (retval)		goto err_ms;	return 0;err_ms:	free_irq(KS8695_IRQ_UART_LINE_STATUS, port);err_ls:	free_irq(KS8695_IRQ_UART_RX, port);err_rx:	free_irq(KS8695_IRQ_UART_TX, port);err_tx:	return retval;}static void ks8695uart_shutdown(struct uart_port *port){	/*	 * Free the interrupt	 */	free_irq(KS8695_IRQ_UART_RX, port);	free_irq(KS8695_IRQ_UART_TX, port);	free_irq(KS8695_IRQ_UART_MODEM_STATUS, port);	free_irq(KS8695_IRQ_UART_LINE_STATUS, port);	/* disable break condition and fifos */	UART_PUT_LCR(port, UART_GET_LCR(port) & ~URLC_URSBC);	UART_PUT_FCR(port, UART_GET_FCR(port) & ~URFC_URFE);}static void ks8695uart_set_termios(struct uart_port *port, struct ktermios *termios, struct ktermios *old){	unsigned int lcr, fcr = 0;	unsigned long flags;	unsigned int baud, quot;	/*	 * Ask the core to calculate the divisor for us.	 */	baud = uart_get_baud_rate(port, termios, old, 0, port->uartclk/16);	quot = uart_get_divisor(port, baud);	switch (termios->c_cflag & CSIZE) {	case CS5:		lcr = URCL_5;		break;	case CS6:		lcr = URCL_6;		break;	case CS7:		lcr = URCL_7;		break;	default:		lcr = URCL_8;		break;	}	/* stop bits */	if (termios->c_cflag & CSTOPB)		lcr |= URLC_URSB;	/* parity */	if (termios->c_cflag & PARENB) {		if (termios->c_cflag & CMSPAR) {	/* Mark or Space parity */			if (termios->c_cflag & PARODD)				lcr |= URPE_MARK;			else				lcr |= URPE_SPACE;		}		else if (termios->c_cflag & PARODD)			lcr |= URPE_ODD;		else			lcr |= URPE_EVEN;	}	if (port->fifosize > 1)		fcr = URFC_URFRT_8 | URFC_URTFR | URFC_URRFR | URFC_URFE;	spin_lock_irqsave(&port->lock, flags);	/*	 * Update the per-port timeout.	 */	uart_update_timeout(port, termios->c_cflag, baud);	port->read_status_mask = URLS_URROE;	if (termios->c_iflag & INPCK)		port->read_status_mask |= (URLS_URFE | URLS_URPE);	if (termios->c_iflag & (BRKINT | PARMRK))		port->read_status_mask |= URLS_URBI;	/*	 * Characters to ignore	 */	port->ignore_status_mask = 0;	if (termios->c_iflag & IGNPAR)		port->ignore_status_mask |= (URLS_URFE | URLS_URPE);	if (termios->c_iflag & IGNBRK) {		port->ignore_status_mask |= URLS_URBI;		/*		 * If we're ignoring parity and break indicators,		 * ignore overruns too (for real raw support).		 */		if (termios->c_iflag & IGNPAR)			port->ignore_status_mask |= URLS_URROE;	}	/*	 * Ignore all characters if CREAD is not set.	 */	if ((termios->c_cflag & CREAD) == 0)		port->ignore_status_mask |= UART_DUMMY_LSR_RX;	/* first, disable everything */	if (UART_ENABLE_MS(port, termios->c_cflag))		ks8695uart_enable_ms(port);	else		ks8695uart_disable_ms(port);	/* Set baud rate */	UART_PUT_BRDR(port, quot);	UART_PUT_LCR(port, lcr);	UART_PUT_FCR(port, fcr);	spin_unlock_irqrestore(&port->lock, flags);}static const char *ks8695uart_type(struct uart_port *port){	return port->type == PORT_KS8695 ? "KS8695" : NULL;}/* * Release the memory region(s) being used by 'port' */static void ks8695uart_release_port(struct uart_port *port){	release_mem_region(port->mapbase, UART_PORT_SIZE);}/* * Request the memory region(s) being used by 'port' */static int ks8695uart_request_port(struct uart_port *port){	return request_mem_region(port->mapbase, UART_PORT_SIZE,			"serial_ks8695") != NULL ? 0 : -EBUSY;}/* * Configure/autoconfigure the port. */static void ks8695uart_config_port(struct uart_port *port, int flags){	if (flags & UART_CONFIG_TYPE) {		port->type = PORT_KS8695;		ks8695uart_request_port(port);	}}/* * verify the new serial_struct (for TIOCSSERIAL). */static int ks8695uart_verify_port(struct uart_port *port, struct serial_struct *ser){	int ret = 0;	if (ser->type != PORT_UNKNOWN && ser->type != PORT_KS8695)		ret = -EINVAL;	if (ser->irq != port->irq)		ret = -EINVAL;	if (ser->baud_base < 9600)		ret = -EINVAL;	return ret;}static struct uart_ops ks8695uart_pops = {	.tx_empty	= ks8695uart_tx_empty,	.set_mctrl	= ks8695uart_set_mctrl,	.get_mctrl	= ks8695uart_get_mctrl,	.stop_tx	= ks8695uart_stop_tx,	.start_tx	= ks8695uart_start_tx,	.stop_rx	= ks8695uart_stop_rx,	.enable_ms	= ks8695uart_enable_ms,	.break_ctl	= ks8695uart_break_ctl,	.startup	= ks8695uart_startup,	.shutdown	= ks8695uart_shutdown,	.set_termios	= ks8695uart_set_termios,	.type		= ks8695uart_type,	.release_port	= ks8695uart_release_port,	.request_port	= ks8695uart_request_port,	.config_port	= ks8695uart_config_port,	.verify_port	= ks8695uart_verify_port,};static struct uart_port ks8695uart_ports[SERIAL_KS8695_NR] = {	{		.membase	= (void *) KS8695_UART_VA,		.mapbase	= KS8695_UART_VA,		.iotype		= SERIAL_IO_MEM,		.irq		= KS8695_IRQ_UART_TX,		.uartclk	= CLOCK_TICK_RATE * 16,		.fifosize	= 16,		.ops		= &ks8695uart_pops,		.flags		= ASYNC_BOOT_AUTOCONF,		.line		= 0,	}};#ifdef CONFIG_SERIAL_KS8695_CONSOLEstatic void ks8695_console_putchar(struct uart_port *port, int ch){	while (!(UART_GET_LSR(port) & URLS_URTHRE))		barrier();	UART_PUT_CHAR(port, ch);}static void ks8695_console_write(struct console *co, const char *s, u_int count){	struct uart_port *port = ks8695uart_ports + co->index;	uart_console_write(port, s, count, ks8695_console_putchar);}static void __init ks8695_console_get_options(struct uart_port *port, int *baud, int *parity, int *bits){	unsigned int lcr;	lcr = UART_GET_LCR(port);	switch (lcr & URLC_PARITY) {		case URPE_ODD:			*parity = 'o';			break;		case URPE_EVEN:			*parity = 'e';			break;		default:			*parity = 'n';	}	switch (lcr & URLC_URCL) {		case URCL_5:			*bits = 5;			break;		case URCL_6:			*bits = 6;			break;		case URCL_7:			*bits = 7;			break;		default:			*bits = 8;	}	*baud = port->uartclk / (UART_GET_BRDR(port) & 0x0FFF);	*baud /= 16;	*baud &= 0xFFFFFFF0;}static int __init ks8695_console_setup(struct console *co, char *options){	struct uart_port *port;	int baud = 115200;	int bits = 8;	int parity = 'n';	int flow = 'n';	/*	 * Check whether an invalid uart number has been specified, and	 * if so, search for the first available port that does have	 * console support.	 */	port = uart_get_console(ks8695uart_ports, SERIAL_KS8695_NR, co);	if (options)		uart_parse_options(options, &baud, &parity, &bits, &flow);	else		ks8695_console_get_options(port, &baud, &parity, &bits);	return uart_set_options(port, co, baud, parity, bits, flow);}static struct uart_driver ks8695_reg;static struct console ks8695_console = {	.name		= SERIAL_KS8695_DEVNAME,	.write		= ks8695_console_write,	.device		= uart_console_device,	.setup		= ks8695_console_setup,	.flags		= CON_PRINTBUFFER,	.index		= -1,	.data		= &ks8695_reg,};static int __init ks8695_console_init(void){	register_console(&ks8695_console);	return 0;}console_initcall(ks8695_console_init);#define KS8695_CONSOLE	&ks8695_console#else#define KS8695_CONSOLE	NULL#endifstatic struct uart_driver ks8695_reg = {	.owner			= THIS_MODULE,	.driver_name		= "serial_ks8695",	.dev_name		= SERIAL_KS8695_DEVNAME,	.major			= SERIAL_KS8695_MAJOR,	.minor			= SERIAL_KS8695_MINOR,	.nr			= SERIAL_KS8695_NR,	.cons			= KS8695_CONSOLE,};static int __init ks8695uart_init(void){	int i, ret;	printk(KERN_INFO "Serial: Micrel KS8695 UART driver\n");	ret = uart_register_driver(&ks8695_reg);	if (ret)		return ret;	for (i = 0; i < SERIAL_KS8695_NR; i++)		uart_add_one_port(&ks8695_reg, &ks8695uart_ports[0]);	return 0;}static void __exit ks8695uart_exit(void){	int i;	for (i = 0; i < SERIAL_KS8695_NR; i++)		uart_remove_one_port(&ks8695_reg, &ks8695uart_ports[0]);	uart_unregister_driver(&ks8695_reg);}module_init(ks8695uart_init);module_exit(ks8695uart_exit);MODULE_DESCRIPTION("KS8695 serial port driver");MODULE_AUTHOR("Micrel Inc.");MODULE_LICENSE("GPL");

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品亚洲精品国产欧美 | 盗摄精品av一区二区三区| 久久er精品视频| 成人丝袜高跟foot| 欧美www视频| 亚洲国产精品久久艾草纯爱| 国产成人在线网站| 日韩欧美电影一区| 亚洲一区av在线| 不卡一二三区首页| 久久精品亚洲一区二区三区浴池| 亚洲bt欧美bt精品| 99麻豆久久久国产精品免费优播| 久久色在线视频| 性久久久久久久久久久久| a级精品国产片在线观看| 久久久久亚洲综合| 精品在线亚洲视频| 欧美一区二区不卡视频| 亚洲国产精品久久人人爱| 91浏览器在线视频| 国产精品不卡视频| 91亚洲精品久久久蜜桃网站 | 91丝袜国产在线播放| 欧美日本国产视频| 亚洲桃色在线一区| 成人激情小说乱人伦| 久久免费视频色| 精品无人码麻豆乱码1区2区| 日韩三级伦理片妻子的秘密按摩| 亚洲制服欧美中文字幕中文字幕| 一本久久综合亚洲鲁鲁五月天 | 亚洲精品一区在线观看| 日韩成人一级大片| 欧美一区二区三区色| 爽好久久久欧美精品| 91精品综合久久久久久| 天堂午夜影视日韩欧美一区二区| 欧美三级日韩三级国产三级| 一区二区日韩电影| 欧美日韩一级片网站| 亚洲成人在线免费| 制服丝袜av成人在线看| 日本不卡一区二区三区高清视频| 51久久夜色精品国产麻豆| 日韩国产欧美在线播放| 日韩欧美电影一二三| 国产精品一区二区男女羞羞无遮挡| 久久久亚洲精品一区二区三区 | 激情综合色综合久久| 久久久一区二区| 成人午夜免费av| 17c精品麻豆一区二区免费| 91老师片黄在线观看| 亚洲永久精品大片| 精品少妇一区二区三区日产乱码| 国产伦理精品不卡| 亚洲天堂免费看| 91精品国产91综合久久蜜臀| 国产一区久久久| 国产精品理伦片| 欧美日韩免费在线视频| 国产在线精品一区二区夜色 | 久久久久97国产精华液好用吗| 成人免费看的视频| 亚洲午夜精品在线| 久久精品一区蜜桃臀影院| 色婷婷亚洲精品| 国内精品伊人久久久久av影院| 国产精品久久久久久久久快鸭 | 高清视频一区二区| 亚洲制服丝袜av| 久久久久久一二三区| 91在线丨porny丨国产| 日本不卡视频在线| 伊人性伊人情综合网| 精品国产一区二区三区久久久蜜月 | 豆国产96在线|亚洲| 五月天久久比比资源色| 国产精品毛片高清在线完整版| 欧美久久一二区| 成人美女在线观看| 日韩成人伦理电影在线观看| 亚洲欧洲精品成人久久奇米网| 欧美欧美欧美欧美首页| 99久久国产免费看| 国产在线精品免费av| 午夜视频一区二区三区| 国产精品免费视频网站| 日韩三级.com| 色婷婷久久一区二区三区麻豆| 国产成人一区二区精品非洲| 日本在线不卡一区| 亚洲一区二区黄色| 国产精品福利一区| 国产日韩精品一区二区三区| 7777精品伊人久久久大香线蕉完整版| 成人黄色a**站在线观看| 国产一区美女在线| 老鸭窝一区二区久久精品| 亚洲在线视频免费观看| 亚洲视频在线观看一区| 日本一区二区在线不卡| 精品久久久久久综合日本欧美| 欧洲精品在线观看| 一本大道久久a久久精二百| 不卡视频一二三四| 成人黄色免费短视频| 成人午夜在线免费| 豆国产96在线|亚洲| 丁香婷婷综合色啪| 国产福利一区在线观看| 国产乱码精品1区2区3区| 激情偷乱视频一区二区三区| 狠狠久久亚洲欧美| 激情小说亚洲一区| 久久97超碰色| 激情久久久久久久久久久久久久久久| 蜜臀久久99精品久久久画质超高清 | 91麻豆精品国产自产在线观看一区| 91蜜桃传媒精品久久久一区二区| 不卡影院免费观看| 91久久精品一区二区三区| 91丨九色丨尤物| 色狠狠色狠狠综合| 欧美精品粉嫩高潮一区二区| 91精品婷婷国产综合久久| 日韩亚洲欧美成人一区| 2020日本不卡一区二区视频| 国产欧美一区二区在线| 中文字幕中文字幕在线一区 | 国产精品久久久久影院亚瑟| 亚洲欧洲精品天堂一级| 亚洲一区二区四区蜜桃| 免费美女久久99| 国产乱人伦偷精品视频不卡 | 欧美自拍偷拍一区| 91精品国产免费久久综合| 久久久久久综合| 中文字幕亚洲精品在线观看| 亚洲综合一区在线| 蜜臀久久99精品久久久久宅男| 国产一区999| 91在线视频观看| 欧美一级高清片在线观看| 久久久久国产精品免费免费搜索| 国产精品视频你懂的| 亚洲成人免费在线观看| 韩国成人在线视频| 日本韩国一区二区三区视频| 欧美刺激脚交jootjob| 国产精品高清亚洲| 麻豆精品一区二区三区| caoporn国产一区二区| 日韩一区二区三区视频| 国产精品系列在线| 日本不卡一二三| www.综合网.com| 日韩视频免费直播| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 亚洲一卡二卡三卡四卡无卡久久| 美女一区二区视频| 成人高清视频免费观看| 在线91免费看| 亚洲欧美另类在线| 精品系列免费在线观看| 欧美在线免费观看亚洲| 久久九九国产精品| 日本不卡的三区四区五区| 色综合久久久久综合体| 久久天天做天天爱综合色| 亚洲高清免费观看| 99久久久国产精品免费蜜臀| 精品毛片乱码1区2区3区| 亚洲欧美一区二区久久| 国产高清久久久久| 日韩欧美激情在线| 亚洲妇熟xx妇色黄| 色视频成人在线观看免| 国产精品免费视频网站| 国产成人精品三级| 精品乱人伦一区二区三区| 一区二区三区日韩精品| 不卡的av网站| 久久精品综合网| 国内精品免费**视频| 欧美一区二区三区小说| 午夜久久电影网| 欧美日韩午夜在线视频| 亚洲精品国产a久久久久久| 成人av在线网站| 久久久高清一区二区三区| 狠狠色伊人亚洲综合成人| 欧美一级久久久| 日本不卡一区二区| 日韩一区二区三区电影在线观看| 婷婷成人综合网| 欧美日韩国产精品成人| 三级一区在线视频先锋| 91精品久久久久久久99蜜桃|