日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

imx6 i2c分析

發(fā)布時(shí)間:2023/12/4 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 imx6 i2c分析 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文主要分析:
      1. i2c設(shè)備注冊(cè)
      2. i2c驅(qū)動(dòng)注冊(cè)
      3. 上層調(diào)用過程
參考:
  http://www.cnblogs.com/helloworldtoyou/p/5126618.html

1
. i2c設(shè)備注冊(cè) kernel/arch/arm/mach-mx6/board-mx6q_sabresd.c static void __init mx6_sabresd_board_init(void) { mxc_iomux_v3_setup_multiple_pads(mx6q_sabresd_pads, ---------------+ ARRAY_SIZE(mx6q_sabresd_pads)); | ... ... | strcpy(mxc_i2c0_board_info[0].type, "wm8962"); | mxc_i2c0_board_info[0].platform_data = &wm8962_config_data; | | //注冊(cè)i2c總線 | imx6q_add_imx_i2c(0, &mx6q_sabresd_i2c_data); ------------+ | imx6q_add_imx_i2c(1, &mx6q_sabresd_i2c_data); ----+ | | imx6q_add_imx_i2c(2, &mx6q_sabresd_i2c_data); | | | | | | i2c_register_board_info(0, mxc_i2c0_board_info, ----------------+ | ARRAY_SIZE(mxc_i2c0_board_info)); | | | | i2c_register_board_info(1, mxc_i2c1_board_info, | | | | ARRAY_SIZE(mxc_i2c1_board_info)); | | | | i2c_register_board_info(2, mxc_i2c2_board_info, | | | | ARRAY_SIZE(mxc_i2c2_board_info)); | | | | ... ... | | | | } | | | | | | | | static iomux_v3_cfg_t mx6q_sabresd_pads[] = { <----------|-----|--+ /* I2C1, WM8958 */ | | | MX6Q_PAD_CSI0_DAT8__I2C1_SDA, | | | MX6Q_PAD_CSI0_DAT9__I2C1_SCL, | | | | | | /* I2C2, Camera, MIPI */ | | | MX6Q_PAD_KEY_COL3__I2C2_SCL, | | | MX6Q_PAD_KEY_ROW3__I2C2_SDA, | | | | | | #ifdef CONFIG_MX6_ENET_IRQ_TO_GPIO | | | MX6Q_PAD_GPIO_6__OBSERVE_MUX_OBSRV_INT_OUT1, | | | #else | | | /* I2C3 */ | | | MX6Q_PAD_GPIO_3__I2C3_SCL, /* GPIO1[3] */ | | | MX6Q_PAD_GPIO_6__I2C3_SDA, | | | #endif | | | }; | | | | | | //總線速率 V | | static struct imxi2c_platform_data mx6q_sabresd_i2c_data = { | | .bitrate = 100000, | | }; | | | | #define imx6q_add_imx_i2c(id, pdata) \ <-----------+ | imx_add_imx_i2c(&imx6q_imx_i2c_data[id], pdata) | | | | struct platform_device *__init imx_add_imx_i2c( <-----------+ | const struct imx_imx_i2c_data *data, | const struct imxi2c_platform_data *pdata) | { | struct resource res[] = { | { | .start = data->iobase, | .end = data->iobase + data->iosize - 1, | .flags = IORESOURCE_MEM, | }, { | .start = data->irq, | .end = data->irq, | .flags = IORESOURCE_IRQ, | }, | }; | | return imx_add_platform_device("imx-i2c", data->id, | res, ARRAY_SIZE(res), | pdata, sizeof(*pdata)); | } | | //指定i2c鏈接設(shè)備的名稱,和地址 | static struct i2c_board_info mxc_i2c0_board_info[] __initdata = { <-+ { | I2C_BOARD_INFO("wm89**", 0x1a), | }, | /* | { | I2C_BOARD_INFO("ov564x", 0x3c), | .platform_data = (void *)&camera_data, | }, | { | I2C_BOARD_INFO("mma8451", 0x1d), | .platform_data = (void *)&mma8451_position, | }, | { | I2C_BOARD_INFO("isl1208", 0x6f), | }, | */ | }; | | int __init | i2c_register_board_info(int busnum, <------------------+ struct i2c_board_info const *info, unsigned len) { int status; down_write(&__i2c_board_lock); //動(dòng)態(tài)更新總線個(gè)數(shù) /* dynamic bus numbers will be assigned after the last static one */ if (busnum >= __i2c_first_dynamic_bus_num) __i2c_first_dynamic_bus_num = busnum + 1; //將同一個(gè)i2c接口的所有設(shè)備都添加到一個(gè)鏈表中 for (status = 0; len; len--, info++) { struct i2c_devinfo *devinfo; devinfo = kzalloc(sizeof(*devinfo), GFP_KERNEL); if (!devinfo) { pr_debug("i2c-core: can't register boardinfo!\n"); status = -ENOMEM; break; } devinfo->busnum = busnum; devinfo->board_info = *info; list_add_tail(&devinfo->list, &__i2c_board_list); } up_write(&__i2c_board_lock); return status; } 2. i2c驅(qū)動(dòng)注冊(cè) kernel/drivers/i2c/busses/i2c-imx.c static int __init i2c_adap_imx_init(void) { return platform_driver_probe(&i2c_imx_driver, i2c_imx_probe); ----------+ } | | int __init_or_module platform_driver_probe(struct platform_driver *drv, | int (*probe)(struct platform_device *)) | { | int retval, code; | | drv->driver.suppress_bind_attrs = true; | //指定驅(qū)動(dòng)的probe函數(shù) | drv->probe = probe; | //注冊(cè)平臺(tái)驅(qū)動(dòng) | retval = code = platform_driver_register(drv); | | spin_lock(&drv->driver.bus->p->klist_drivers.k_lock); | drv->probe = NULL; | if (code == 0 && list_empty(&drv->driver.p->klist_devices.k_list)) | retval = -ENODEV; | drv->driver.probe = platform_drv_probe_fail; | spin_unlock(&drv->driver.bus->p->klist_drivers.k_lock); | | if (code != retval) | platform_driver_unregister(drv); | return retval; | } | EXPORT_SYMBOL_GPL(platform_driver_probe); | | static struct platform_driver i2c_imx_driver = { <-----------------+ .remove = __exit_p(i2c_imx_remove), | .driver = { | .name = DRIVER_NAME, // "imx-i2c" | .owner = THIS_MODULE, | } | }; | | static int __init i2c_imx_probe(struct platform_device *pdev) <---------+ { struct imx_i2c_struct *i2c_imx; struct resource *res; struct imxi2c_platform_data *pdata; void __iomem *base; resource_size_t res_size; int irq; int ret; dev_dbg(&pdev->dev, "<%s>\n", __func__); //獲得i2c寄存器地址的信息 res = platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) { dev_err(&pdev->dev, "can't get device resources\n"); return -ENOENT; } irq = platform_get_irq(pdev, 0); if (irq < 0) { dev_err(&pdev->dev, "can't get irq number\n"); return -ENOENT; } pdata = pdev->dev.platform_data; if (pdata && pdata->init) { ret = pdata->init(&pdev->dev); if (ret) return ret; } res_size = resource_size(res); if (!request_mem_region(res->start, res_size, DRIVER_NAME)) { ret = -EBUSY; goto fail0; } base = ioremap(res->start, res_size); if (!base) { dev_err(&pdev->dev, "ioremap failed\n"); ret = -EIO; goto fail1; } i2c_imx = kzalloc(sizeof(struct imx_i2c_struct), GFP_KERNEL); if (!i2c_imx) { dev_err(&pdev->dev, "can't allocate interface\n"); ret = -ENOMEM; goto fail2; } /* Setup i2c_imx driver structure */ strcpy(i2c_imx->adapter.name, pdev->name); i2c_imx->adapter.owner = THIS_MODULE; i2c_imx->adapter.algo = &i2c_imx_algo; // i2c算法 ---------------+i2c_imx->adapter.dev.parent = &pdev->dev; | i2c_imx->adapter.nr = pdev->id; | i2c_imx->irq = irq; | i2c_imx->base = base; | i2c_imx->res = res; | | /* Get I2C clock */ | i2c_imx->clk = clk_get(&pdev->dev, "i2c_clk"); | if (IS_ERR(i2c_imx->clk)) { | ret = PTR_ERR(i2c_imx->clk); | dev_err(&pdev->dev, "can't get I2C clock\n"); | goto fail3; | } | | /* Request IRQ */ | ret = request_irq(i2c_imx->irq, i2c_imx_isr, 0, pdev->name, i2c_imx); | if (ret) { | dev_err(&pdev->dev, "can't claim irq %d\n", i2c_imx->irq); | goto fail4; | } | | /* Init queue */ | init_waitqueue_head(&i2c_imx->queue); | | /* Set up adapter data */ | i2c_set_adapdata(&i2c_imx->adapter, i2c_imx); | | /* Set up clock divider */ | if (pdata && pdata->bitrate) | i2c_imx_set_clk(i2c_imx, pdata->bitrate); | else | i2c_imx_set_clk(i2c_imx, IMX_I2C_BIT_RATE); | | /* Set up chip registers to defaults */ | writeb(0, i2c_imx->base + IMX_I2C_I2CR); | writeb(0, i2c_imx->base + IMX_I2C_I2SR); | //添加adapter,一個(gè)i2c對(duì)應(yīng)一個(gè)adapter | /* Add I2C adapter */ | ret = i2c_add_numbered_adapter(&i2c_imx->adapter); -----------------+ | if (ret < 0) { | | dev_err(&pdev->dev, "registration failed\n"); | | goto fail5; | | } | | | | /* Set up platform driver data */ | | platform_set_drvdata(pdev, i2c_imx); | | | | dev_dbg(&i2c_imx->adapter.dev, "claimed irq %d\n", i2c_imx->irq); | | dev_dbg(&i2c_imx->adapter.dev, "device resources from 0x%x to 0x%x\n",| | i2c_imx->res->start, i2c_imx->res->end); | | dev_dbg(&i2c_imx->adapter.dev, "allocated %d bytes at 0x%x \n", | | res_size, i2c_imx->res->start); | | dev_dbg(&i2c_imx->adapter.dev, "adapter name: \"%s\"\n", | | i2c_imx->adapter.name); | | dev_dbg(&i2c_imx->adapter.dev, "IMX I2C adapter registered\n"); | | | | return 0; /* Return OK */ | | | | fail5: | | free_irq(i2c_imx->irq, i2c_imx); | | fail4: | | clk_put(i2c_imx->clk); | | fail3: | | kfree(i2c_imx); | | fail2: | | iounmap(base); | | fail1: | | release_mem_region(res->start, resource_size(res)); | | fail0: | | if (pdata && pdata->exit) | | pdata->exit(&pdev->dev); | | return ret; /* Return error number */ | | } | |
| | kernel/drivers/i2c/i2c-core.c | | int i2c_add_numbered_adapter(struct i2c_adapter *adap) <----------+ | { | int id; | int status; | | if (adap->nr & ~MAX_ID_MASK) | return -EINVAL; | | retry: | if (idr_pre_get(&i2c_adapter_idr, GFP_KERNEL) == 0) | return -ENOMEM; | | mutex_lock(&core_lock); | /* "above" here means "above or equal to", sigh; | * we need the "equal to" result to force the result | */ | status = idr_get_new_above(&i2c_adapter_idr, adap, adap->nr, &id); | if (status == 0 && id != adap->nr) { | status = -EBUSY; | idr_remove(&i2c_adapter_idr, id); | } | mutex_unlock(&core_lock); | if (status == -EAGAIN) | goto retry; | | if (status == 0) | status = i2c_register_adapter(adap); ---------------+ | return status; | | } | | EXPORT_SYMBOL_GPL(i2c_add_numbered_adapter); | | | | static int i2c_register_adapter(struct i2c_adapter *adap) <--+ | { | int res = 0; | | /* Can't register until after driver model init */ | if (unlikely(WARN_ON(!i2c_bus_type.p))) { | res = -EAGAIN; | goto out_list; | } | | /* Sanity checks */ | if (unlikely(adap->name[0] == '\0')) { | pr_err("i2c-core: Attempt to register an adapter with " | "no name!\n"); | return -EINVAL; | } | if (unlikely(!adap->algo)) { | pr_err("i2c-core: Attempt to register adapter '%s' with " | "no algo!\n", adap->name); | return -EINVAL; | } | | rt_mutex_init(&adap->bus_lock); | mutex_init(&adap->userspace_clients_lock); | INIT_LIST_HEAD(&adap->userspace_clients); | | /* Set default timeout to 1 second if not already set */ | if (adap->timeout == 0) | adap->timeout = HZ; | //設(shè)置設(shè)備名,這里就是/dev顯示的 /dev/i2c-1, /dev/i2c-2... | dev_set_name(&adap->dev, "i2c-%d", adap->nr); | adap->dev.bus = &i2c_bus_type; | adap->dev.type = &i2c_adapter_type; | res = device_register(&adap->dev); | if (res) | goto out_list; | | dev_dbg(&adap->dev, "adapter [%s] registered\n", adap->name); | | #ifdef CONFIG_I2C_COMPAT | res = class_compat_create_link(i2c_adapter_compat_class, &adap->dev, | adap->dev.parent); | if (res) | dev_warn(&adap->dev, | "Failed to create compatibility class link\n"); | #endif | | /* create pre-declared device nodes */ | if (adap->nr < __i2c_first_dynamic_bus_num) | i2c_scan_static_board_info(adap); | | /* Notify drivers */ | mutex_lock(&core_lock); | bus_for_each_drv(&i2c_bus_type, NULL, adap, __process_new_adapter); | mutex_unlock(&core_lock); | | return 0; | | out_list: | mutex_lock(&core_lock); | idr_remove(&i2c_adapter_idr, adap->nr); | mutex_unlock(&core_lock); | return res; | } | kernel/driver/i2c/busses/i2c-imx.c | static struct i2c_algorithm i2c_imx_algo = { <--------------------+ .master_xfer = i2c_imx_xfer, ----------------------------------+.functionality = i2c_imx_func, | }; | static u32 i2c_imx_func(struct i2c_adapter *adapter) | { |return I2C_FUNC_I2C | I2C_FUNC_SMBUS_EMUL; | } | //發(fā)送接收會(huì)調(diào)用的函數(shù) | static int i2c_imx_xfer(struct i2c_adapter *adapter, <---------------------+struct i2c_msg *msgs, int num) | { |unsigned int i, temp; |int result; |struct imx_i2c_struct *i2c_imx = i2c_get_adapdata(adapter); ||dev_dbg(&i2c_imx->adapter.dev, "<%s>\n", __func__); ||/* Start I2C transfer */ |result = i2c_imx_start(i2c_imx); |if (result) |goto fail0; ||/* read/write data */ |for (i = 0; i < num; i++) { |if (i) { |dev_dbg(&i2c_imx->adapter.dev, |"<%s> repeated start\n", __func__); |temp = readb(i2c_imx->base + IMX_I2C_I2CR); |temp |= I2CR_RSTA; |writeb(temp, i2c_imx->base + IMX_I2C_I2CR); |result = i2c_imx_bus_busy(i2c_imx, 1); |if (result) |goto fail0; |} |dev_dbg(&i2c_imx->adapter.dev, |"<%s> transfer message: %d\n", __func__, i); |/* write/read data */ | #ifdef CONFIG_I2C_DEBUG_BUS |temp = readb(i2c_imx->base + IMX_I2C_I2CR); |dev_dbg(&i2c_imx->adapter.dev, "<%s> CONTROL: IEN=%d, IIEN=%d, " |"MSTA=%d, MTX=%d, TXAK=%d, RSTA=%d\n", __func__, |(temp & I2CR_IEN ? 1 : 0), (temp & I2CR_IIEN ? 1 : 0), |(temp & I2CR_MSTA ? 1 : 0), (temp & I2CR_MTX ? 1 : 0), |(temp & I2CR_TXAK ? 1 : 0), (temp & I2CR_RSTA ? 1 : 0)); |temp = readb(i2c_imx->base + IMX_I2C_I2SR); |dev_dbg(&i2c_imx->adapter.dev, |"<%s> STATUS: ICF=%d, IAAS=%d, IBB=%d, " |"IAL=%d, SRW=%d, IIF=%d, RXAK=%d\n", __func__, |(temp & I2SR_ICF ? 1 : 0), (temp & I2SR_IAAS ? 1 : 0), |(temp & I2SR_IBB ? 1 : 0), (temp & I2SR_IAL ? 1 : 0), |(temp & I2SR_SRW ? 1 : 0), (temp & I2SR_IIF ? 1 : 0), |(temp & I2SR_RXAK ? 1 : 0)); | #endif |if (msgs[i].flags & I2C_M_RD) |result = i2c_imx_read(i2c_imx, &msgs[i]); |else |result = i2c_imx_write(i2c_imx, &msgs[i]); |if (result) |goto fail0; |} || fail0: |/* Stop I2C transfer */ |i2c_imx_stop(i2c_imx); ||dev_dbg(&i2c_imx->adapter.dev, "<%s> exit with: %s: %d\n", __func__, |(result < 0) ? "error" : "success msg", |(result < 0) ? result : num); |return (result < 0) ? result : num; | } || // i2c_msg記錄了i2c地址 | struct i2c_msg { |__u16 addr; /* slave address */ |__u16 flags; | #define I2C_M_TEN 0x0010 /* this is a ten bit chip address */ | #define I2C_M_RD 0x0001 /* read data, from slave to master */ | #define I2C_M_NOSTART 0x4000 /* if I2C_FUNC_PROTOCOL_MANGLING */ | #define I2C_M_REV_DIR_ADDR 0x2000 /* if I2C_FUNC_PROTOCOL_MANGLING */ | #define I2C_M_IGNORE_NAK 0x1000 /* if I2C_FUNC_PROTOCOL_MANGLING */ | #define I2C_M_NO_RD_ACK 0x0800 /* if I2C_FUNC_PROTOCOL_MANGLING */ | #define I2C_M_RECV_LEN 0x0400 /* length will be first received byte */|__u16 len; /* msg length */ |__u8 *buf; /* pointer to msg data */ | }; ||| 3. 上層應(yīng)用調(diào)用 | kernel/driver/i2c/busses/i2c-dev.c | static int __init i2c_dev_init(void) | { |int res; ||printk(KERN_INFO "i2c /dev entries driver\n"); ||res = register_chrdev(I2C_MAJOR, "i2c", &i2cdev_fops); ------------+ |if (res) | |goto out; | || |i2c_dev_class = class_create(THIS_MODULE, "i2c-dev"); | |if (IS_ERR(i2c_dev_class)) { | |res = PTR_ERR(i2c_dev_class); | |goto out_unreg_chrdev; | |} | || |/* Keep track of adapters which will be added or removed later */ | |res = bus_register_notifier(&i2c_bus_type, &i2cdev_notifier); | |if (res) | |goto out_unreg_class; | || |/* Bind to already existing adapters right away */ | |i2c_for_each_dev(NULL, i2cdev_attach_adapter); | || |return 0; | || | out_unreg_class: | |class_destroy(i2c_dev_class); | | out_unreg_chrdev: | |unregister_chrdev(I2C_MAJOR, "i2c"); | | out: | |printk(KERN_ERR "%s: Driver Initialisation failed\n", __FILE__); | |return res; | | } | | static const struct file_operations i2cdev_fops = { <-------------+ |.owner = THIS_MODULE, |.llseek = no_llseek, |.read = i2cdev_read, ----------+ |.write = i2cdev_write, | |.unlocked_ioctl = i2cdev_ioctl, | |.open = i2cdev_open, | |.release = i2cdev_release, | | }; | |V | static ssize_t i2cdev_read(struct file *file, char __user *buf, size_t count, |loff_t *offset) | { |char *tmp; |int ret; ||struct i2c_client *client = file->private_data; ||if (count > 8192) |count = 8192; ||tmp = kmalloc(count, GFP_KERNEL); |if (tmp == NULL) |return -ENOMEM; ||pr_debug("i2c-dev: i2c-%d reading %zu bytes.\n", |iminor(file->f_path.dentry->d_inode), count); ||ret = i2c_master_recv(client, tmp, count); ---------------+ |if (ret >= 0) | |ret = copy_to_user(buf, tmp, count) ? -EFAULT : ret; | |kfree(tmp); | |return ret; | | } | |V | int i2c_master_recv(const struct i2c_client *client, char *buf, int count) | { |struct i2c_adapter *adap = client->adapter; |struct i2c_msg msg; |int ret; ||msg.addr = client->addr; //地址 | msg.flags = client->flags & I2C_M_TEN; //判斷是否使用10位地址 | msg.flags |= I2C_M_RD; //讀操作 | msg.len = count; //發(fā)送個(gè)數(shù) | msg.buf = buf; //發(fā)送數(shù)據(jù) | |ret = i2c_transfer(adap, &msg, 1); ---------------------------+ || |/* If everything went ok (i.e. 1 msg transmitted), return #bytes | |transmitted, else error code. */ | |return (ret == 1) ? count : ret; | | } | || | int i2c_transfer(struct i2c_adapter *adap, struct i2c_msg *msgs, int num) <--+ | { |unsigned long orig_jiffies; |int ret, try; ||/* REVISIT the fault reporting model here is weak: |* |* - When we get an error after receiving N bytes from a slave, |* there is no way to report "N". |* |* - When we get a NAK after transmitting N bytes to a slave, |* there is no way to report "N" ... or to let the master |* continue executing the rest of this combined message, if |* that's the appropriate response. |* |* - When for example "num" is two and we successfully complete |* the first message but get an error part way through the |* second, it's unclear whether that should be reported as |* one (discarding status on the second message) or errno |* (discarding status on the first one). |*/ |//判斷master_xfer函數(shù)指針是否存在,存在的話就是指向i2c_imx_xfer |if (adap->algo->master_xfer) { <-----------+ #ifdef DEBUG |for (ret = 0; ret < num; ret++) { |dev_dbg(&adap->dev, "master_xfer[%d] %c, addr=0x%02x, " |"len=%d%s\n", ret, (msgs[ret].flags & I2C_M_RD) |? 'R' : 'W', msgs[ret].addr, msgs[ret].len, |(msgs[ret].flags & I2C_M_RECV_LEN) ? "+" : ""); |} | #endif ||if (in_atomic() || irqs_disabled()) { |ret = i2c_trylock_adapter(adap); |if (!ret) |/* I2C activity is ongoing. */ |return -EAGAIN; |} else { |i2c_lock_adapter(adap); |} ||/* Retry automatically on arbitration loss */ |orig_jiffies = jiffies; |for (ret = 0, try = 0; try <= adap->retries; try++) { |//調(diào)用 i2c_imx_xfer函數(shù) | ret = adap->algo->master_xfer(adap, msgs, num); <---------+if (ret != -EAGAIN) break; if (time_after(jiffies, orig_jiffies + adap->timeout)) break; } i2c_unlock_adapter(adap); return ret; } else { dev_dbg(&adap->dev, "I2C level transfers not supported\n"); return -EOPNOTSUPP; } } //同理write函數(shù)也是一樣 static ssize_t i2cdev_write(struct file *file, const char __user *buf, size_t count, loff_t *offset) { int ret; char *tmp; struct i2c_client *client = file->private_data; if (count > 8192) count = 8192; tmp = memdup_user(buf, count); if (IS_ERR(tmp)) return PTR_ERR(tmp); pr_debug("i2c-dev: i2c-%d writing %zu bytes.\n", iminor(file->f_path.dentry->d_inode), count); ret = i2c_master_send(client, tmp, count); -----------+ kfree(tmp); | return ret; | } | V int i2c_master_send(const struct i2c_client *client, const char *buf, int count) { int ret; struct i2c_adapter *adap = client->adapter; struct i2c_msg msg; msg.addr = client->addr; msg.flags = client->flags & I2C_M_TEN; msg.len = count; msg.buf = (char *)buf; ret = i2c_transfer(adap, &msg, 1); /* If everything went ok (i.e. 1 msg transmitted), return #bytes transmitted, else error code. */ return (ret == 1) ? count : ret; }

?

kernel/drivers/i2c/busses/i2c-imx.c

總結(jié)

以上是生活随笔為你收集整理的imx6 i2c分析的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

欧美精品成人在线 | 视频成人永久免费视频 | 亚洲综合成人专区片 | 伊人国产视频 | 婷婷黄色片 | 97超碰在线播放 | 丁香综合五月 | 久久精品导航 | www.色爱 | 久久久久伦理电影 | 国产黄色观看 | 精品国产一区二区三区av性色 | 国产生活一级片 | 日日夜夜婷婷 | 一区二区三区日韩在线 | 99成人精品 | 99视频在线 | 国产小视频免费在线网址 | 天天操人人要 | 成人久久久久 | av官网在线 | 久久精品视频免费观看 | 久久婷婷网| 丁香婷婷色 | 在线观看国产91 | 亚洲免费高清视频 | 久久久久久久久久免费 | 黄色大全免费观看 | 亚洲最新av | 涩涩网站在线观看 | 国产美女免费观看 | 最近2019年日本中文免费字幕 | 精品国产乱码久久久久久久 | 91av视频免费在线观看 | 又湿又紧又大又爽a视频国产 | 五月视频 | 在线免费观看国产视频 | 久草精品电影 | 国产品久精国精产拍 | 综合网伊人 | 人人插人人插 | 亚洲精选在线 | 成人宗合网| 国产成人三级 | 手机色在线 | 人人揉人人揉人人揉人人揉97 | 亚洲 中文 欧美 日韩vr 在线 | 一区二区三区电影 | 亚洲韩国一区二区三区 | 青青色影院 | 国产小视频免费在线网址 | 中文在线中文资源 | 国产精品久久久久免费 | 在线观看国产91 | 97超碰人人澡人人爱学生 | 亚洲精品videossex少妇 | 深夜免费小视频 | 69国产盗摄一区二区三区五区 | 日韩色在线观看 | 国产精品视频永久免费播放 | 欧美日韩在线网站 | 国产一区二区播放 | 草久久久久久 | 91在线公开视频 | 日韩在线播放视频 | 免费看日韩 | 丝袜制服综合网 | 国产一级片久久 | 在线观看成人小视频 | 97操操 | 久久精品欧美一 | 天天色天天综合网 | 国产一区观看 | 亚洲一二视频 | 日韩啪啪小视频 | 精品亚洲免a | 伊人伊成久久人综合网小说 | 91福利社在线观看 | 99成人在线视频 | 高潮毛片无遮挡高清免费 | 成人一级在线观看 | 久久成人18免费网站 | 免费电影一区二区三区 | 久久国产品 | 亚州精品在线视频 | 亚洲日本一区二区在线 | 91丨九色丨国产女 | 免费看av在线 | 亚洲精品美女久久 | 国产黄色播放 | 精品视频123区在线观看 | 中文字幕日韩高清 | 日韩国产在线观看 | 中文字幕视频一区二区 | 国产69久久精品成人看 | 免费观看全黄做爰大片国产 | 精品国产欧美 | 91av手机在线观看 | 日韩精品一区二区三区不卡 | www.在线观看av | 欧美日韩高清在线观看 | 欧美精品久久久久久 | 91麻豆精品国产自产在线游戏 | 国产小视频国产精品 | 国产精品久久久久久久99 | 免费97视频| 久久激情影院 | 国产精品一区二区免费视频 | 久草香蕉在线 | 国产亚洲情侣一区二区无 | 在线www色| 久久精品3 | 日日躁夜夜躁aaaaxxxx | 99热这里只有精品在线观看 | 午夜精品电影 | 人人澡视频 | 麻豆91在线观看 | 夜色.com | 精品二区久久 | 色资源网在线观看 | 狠狠操狠狠干天天操 | 国产亚洲精品久久久久5区 成人h电影在线观看 | 少妇性bbb搡bbb爽爽爽欧美 | 欧美激情精品久久 | 人人揉人人揉人人揉人人揉97 | 国产精彩视频一区 | 亚洲精品ww | 天天天天天天干 | 国产手机精品视频 | 日操操 | 久久不卡日韩美女 | 成人黄色av免费在线观看 | 日韩电影中文字幕 | 成人在线超碰 | 国产97在线视频 | 综合精品久久久 | 日韩激情网 | 亚洲伊人av| 97成人在线视频 | 在线日韩中文字幕 | 国产精品毛片一区二区 | 色综合久久综合网 | 久久视频在线视频 | 91福利区一区二区三区 | 麻豆一区二区 | 国产精品久久久久久久7电影 | 超碰公开97| 超碰国产人人 | 色偷偷网站视频 | 黄色大全免费网站 | 天天色综合1 | 欧美午夜激情网 | 亚洲免费av一区二区 | av中文字幕不卡 | 97国产超碰| 激情婷婷久久 | 久久精品视频18 | 欧美动漫一区二区三区 | 欧美激情第八页 | 99精品欧美一区二区三区 | 国产成人99av超碰超爽 | 小草av在线播放 | 99色免费| 97天堂 | 国产日产在线观看 | 欧美日韩精品久久久 | 天天·日日日干 | 激情五月综合 | 波多野结衣视频一区二区 | 久99久中文字幕在线 | 一区二区 不卡 | 日韩视频一二三区 | 日韩免费电影网站 | 超黄视频网站 | 欧美福利片在线观看 | 美女啪啪图片 | 日韩免费视频观看 | 一区二区三区精品在线视频 | 黄色免费高清视频 | 国产精品久久久av | 欧美日韩精品在线免费观看 | 91污污视频在线观看 | 日本韩国精品一区二区在线观看 | 奇米影视四色8888 | 不卡的av在线 | 亚洲春色奇米影视 | 国产成人久久av免费高清密臂 | 四虎在线观看精品视频 | 久久视频精品在线 | 久久免费a| 日韩三级久久 | 久久好看免费视频 | 四川妇女搡bbbb搡bbbb搡 | 欧美在线观看视频一区二区 | 一区二区伦理电影 | 久久精品国产精品亚洲 | 国产成人61精品免费看片 | 成人中文字幕在线 | 久久久久亚洲精品 | 久热电影 | 一级片视频免费观看 | 色就干| 亚洲国产精久久久久久久 | 黄色福利网 | av在线播放免费 | 欧美精品xx| 日本性视频 | 超碰成人网 | 国产在线视频一区二区 | 亚洲丝袜中文 | 69精品久久久 | 96国产精品视频 | 成人黄色大片在线免费观看 | 国产一区二区午夜 | 91天堂素人约啪 | 中文字幕亚洲情99在线 | 三级免费黄色 | 国产va在线观看免费 | 精品福利在线视频 | 久草视频在线免费看 | 国产一区国产精品 | 91九色精品 | 一级a毛片高清视频 | 免费在线观看中文字幕 | 欧美地下肉体性派对 | 99久久www免费 | 精品国产欧美一区二区三区不卡 | 国产午夜精品一区二区三区嫩草 | 国语黄色片 | 99久久久久免费精品国产 | 狠狠久久 | 亚洲久在线 | 99久久婷婷| 亚洲精品视频在线免费播放 | 天天摸夜夜添 | 久久精品99国产精品亚洲最刺激 | 免费黄色在线网站 | 国产亚洲视频在线观看 | 国产精品免费观看久久 | 国产福利在线免费 | 亚洲无毛专区 | 午夜久久久影院 | 欧美精品亚州精品 | 波多野结衣亚洲一区二区 | 中文字幕免费一区 | 91看片成人 | www狠狠操 | avhd高清在线谜片 | av中文天堂在线 | 九九久久影视 | 国产一级淫片在线观看 | 99re久久精品国产 | 在线观看www91 | 精品在线观 | 久久国产香蕉视频 | 亚洲理论在线观看 | 一区免费在线 | 欧美性生活免费 | 欧美日韩精品在线免费观看 | 色综合婷婷久久 | 99久久精品免费看 | 三级av黄色| 成人免费av电影 | 精品黄色在线 | 日韩免费| 免费福利片2019潦草影视午夜 | 亚洲免费av在线 | 一区二区不卡高清 | 黄污视频网站大全 | 亚洲一区美女视频在线观看免费 | 中文字幕在线观看一区二区 | 欧美人人 | 日日夜夜婷婷 | 国产精品视频最多的网站 | 五月婷婷狠狠 | 韩国一区二区av | 一区二区三区国 | 新av在线 | 在线观看网站av | 最新午夜| 特级西西444www大精品视频免费看 | 成人a v视频 | 在线观看黄| 久久精品精品电影网 | 开心丁香婷婷深爱五月 | av网站在线观看免费 | 成年人视频免费在线播放 | 国产精品美女999 | 91精品啪在线观看国产线免费 | 久草线 | 国产美女精品人人做人人爽 | 欧美国产日韩一区二区三区 | 亚洲最大激情中文字幕 | 999国内精品永久免费视频 | 精品亚洲男同gayvideo网站 | 亚洲精品免费在线观看 | 国产三级午夜理伦三级 | 香蕉视频在线网站 | 天天五月天色 | 免费高清看电视网站 | 成人国产电影在线观看 | 国产中文字幕视频在线 | 欧美激情视频一二三区 | 看黄色.com | 在线观看免费一级片 | 欧美亚洲另类在线视频 | 国产又粗又猛又爽 | 中文字幕高清视频 | 四虎4hu永久免费 | 亚洲专区一二三 | 亚洲日本va在线观看 | 国产一区高清在线观看 | 国产精品中文字幕在线播放 | 国产高清久久久 | 亚洲精品玖玖玖av在线看 | 国产成人a v电影 | 精品国产中文字幕 | 天天色天| 日韩激情中文字幕 | 国产黄色大片 | 久久久免费精品国产一区二区 | 久久久精品日本 | 久久99久久精品 | 中文字幕精品久久 | 91激情视频在线观看 | 99爱精品在线 | 久久99最新地址 | 中文字幕视频一区 | 色婷婷久久久 | 日韩精品久久久久久久电影99爱 | zzijzzij亚洲成熟少妇 | 综合网伊人 | 麻豆影视在线观看 | 免费观看一级特黄欧美大片 | 四虎成人精品在永久免费 | 成人免费在线电影 | 在线观看免费一级片 | 日韩高清免费在线观看 | 丁香视频| 五月婷婷播播 | 色悠悠久久综合 | 国产精品门事件 | 在线精品视频免费播放 | 国产在线永久 | 亚洲网站在线看 | 国内揄拍国内精品 | 成人免费观看网站 | 亚洲精品午夜一区人人爽 | 手机av资源 | 日韩在线视 | 在线视频你懂 | 日本中出在线观看 | 91尤物在线播放 | 亚洲第一久久久 | 久久精品草 | 日日夜操 | 日本黄色大片免费 | 亚洲精品视频播放 | 一级性av | 狠狠躁日日躁狂躁夜夜躁av | 国产精品一区二区三区观看 | 久久艹在线观看 | 香蕉在线观看视频 | 欧美在线a视频 | 国产黑丝一区二区三区 | 国产一级h | 免费看国产一级片 | a级一a一级在线观看 | 国产97在线视频 | 激情视频综合网 | 亚洲欧美国产精品18p | 中文字幕中文字幕在线中文字幕三区 | 波多野结衣在线中文字幕 | 国内精品久久久久影院优 | 亚洲三级在线 | 在线观看www91| 五月开心六月伊人色婷婷 | 激情五月五月婷婷 | 97在线资源 | 日韩一二三在线 | 色之综合网 | 91精品国产麻豆国产自产影视 | 中文字幕资源在线 | 国产成人高清av | 欧美激情综合色综合啪啪五月 | 亚洲一区 影院 | 日韩欧美91 | 久久精品一区二区三区四区 | 亚洲免费观看视频 | 九色精品免费永久在线 | 黄色在线观看www | 国产免费一区二区三区最新6 | 国产成人一区二区精品非洲 | 亚洲精品影院在线观看 | 天天操天天干天天 | 日日夜夜精品视频 | 午夜视频在线观看一区二区三区 | 特级西西www44高清大胆图片 | 日韩欧美高清一区二区 | 国产99亚洲| 在线免费观看不卡av | 日韩欧美一区二区三区视频 | 成人av视屏 | 岛国大片免费视频 | 精品久久久久久国产 | 91精品办公室少妇高潮对白 | 成人日批视频 | 超碰av免费 | 欧美一级电影免费观看 | 久久成人资源 | 久久视奸 | 福利视频精品 | 欧美一级片免费播放 | 国产亚洲精品久久久久久移动网络 | 国产高清免费观看 | 免费h漫在线观看 | 99精品国产视频 | 国产小视频你懂的在线 | 色老板在线 | 久久九精品 | 国产高清视频免费最新在线 | 国语精品视频 | 日日摸日日碰 | 麻豆视频观看 | 五月天婷婷在线视频 | 精品自拍网 | 亚洲人人av| 久久精品网站免费观看 | 一区在线观看视频 | 精品一区二区免费在线观看 | 国产黄色片免费 | 黄色精品一区 | 久久久综合香蕉尹人综合网 | 日韩欧美综合在线视频 | 99色在线 | 久久精品美女视频 | 日韩高清激情 | 97超视频在线观看 | 精品亚洲一区二区 | 中文字幕视频在线播放 | 九九色网 | 久热这里有精品 | 四虎在线免费视频 | 欧美伦理电影一区二区 | 中文字幕在线看视频国产中文版 | 深爱激情站 | 8090yy亚洲精品久久 | 国产精品一区二区久久 | 欧美日韩一区二区三区免费视频 | 91中文字幕一区 | 国产高清小视频 | 最近中文字幕大全中文字幕免费 | 国产成人在线免费观看 | 91亚洲夫妻 | 日韩午夜视频在线观看 | www视频免费在线观看 | 色婷婷www| 日韩艹| 免费视频成人 | 操操操日日日干干干 | 国产最新在线观看 | 成人9ⅰ免费影视网站 | 亚洲欧美在线视频免费 | 日本中文字幕在线 | 六月天综合网 | 久久视频精品 | 国产日韩一区在线 | 91久久久久久久一区二区 | 在线国产激情视频 | 超碰999| 久久综合婷婷综合 | 国产二区免费视频 | 欧美巨大荫蒂茸毛毛人妖 | 九九九电影免费看 | 最新成人在线 | 亚洲日本va中文字幕 | 欧美极品xxx| 看片的网址 | 国产又粗又硬又长又爽的视频 | 亚洲深夜影院 | 亚洲综合视频在线 | 亚洲永久精品在线观看 | 日韩大片免费在线观看 | 日韩欧美一区二区三区在线观看 | 国产麻豆视频免费观看 | 综合久久网 | 成人高清av在线 | 亚洲精品高清视频 | 亚洲经典视频 | 日韩在线字幕 | 91免费高清观看 | 一区二区 久久 | 激情图片久久 | 激情久久久久 | 成人国产精品免费观看 | 久久老司机精品视频 | 日韩在线大片 | 手机在线看片日韩 | 国产亚洲成人精品 | 亚洲精品tv久久久久久久久久 | 久久99九九99精品 | 香蕉网址 | 99精品亚洲 | 六月丁香婷婷久久 | 久久这里只有精品视频99 | 91精品在线免费观看视频 | 日本久久中文字幕 | 深爱激情五月综合 | 永久免费观看视频 | 五月丁香 | 久久人操| 欧美午夜理伦三级在线观看 | 日韩高清在线一区二区三区 | 国产一级免费视频 | 成年人免费在线观看 | 在线日韩中文字幕 | 福利一区在线 | 免费h在线观看 | 中文字幕 在线看 | 欧美少妇xxxxxx | 最新日韩在线观看视频 | 91色偷偷| 狠狠狠狠狠操 | 欧美精品久久久久 | 中文字幕中文字幕中文字幕 | 午夜精品视频在线 | 国产1区2区| 日韩精品一区二区电影 | 天天干天天摸 | aav在线| 丁香花在线视频观看免费 | 91伊人影院 | 91精品影视| 久久精品久久综合 | 久久久精品免费看 | 啪啪动态视频 | 精品久久久免费 | 色综合久久88色综合天天免费 | 亚洲精品777 | 久久精品视频一 | 国产视频精品视频 | 久久国产精品99久久久久久老狼 | 国产黄色在线网站 | 玖玖精品在线 | 国产精品毛片久久久久久久久久99999999 | 天天天天天天天操 | 91最新视频在线观看 | 偷拍区另类综合在线 | www免费网站在线观看 | 一色屋精品视频在线观看 | 亚洲欧洲精品久久 | 国产精品99在线播放 | 欧美午夜a| 日韩美视频 | 九色精品免费永久在线 | 91污污| 69av视频在线观看 | 国产亚洲久一区二区 | 久久久亚洲国产精品麻豆综合天堂 | 亚洲欧美视频一区二区三区 | 国内丰满少妇猛烈精品播 | 伊人视频 | 一级片视频在线 | 狠狠久久婷婷 | 天天超碰 | 亚洲丝袜中文 | 免费91在线 | 欧美日韩国产一区二区在线观看 | 亚洲毛片在线观看. | 中文字幕免费观看视频 | 在线视频精品播放 | 四虎4hu永久免费 | 欧美日韩精品免费观看视频 | 亚洲乱码久久 | 亚洲成人中文在线 | 五月香婷 | 国产精品久久久久四虎 | 特级西西444www大胆高清无视频 | 亚洲国产一二三 | 麻豆视频网址 | av看片网址 | 黄色三级网站 | www.色午夜| 久久综合成人网 | 天天操天天摸天天干 | 日韩精品久久久久久中文字幕8 | 日日夜夜精品 | 免费黄色小网站 | 一区二区三区四区在线 | 久久精品香蕉视频 | 久久99国产精品久久99 | 国产精品少妇 | av在线播放国产 | 成人在线观看影院 | 欧洲精品一区二区 | 超碰人人99 | 久久久久中文字幕 | 色噜噜日韩精品欧美一区二区 | 久久任你操| 在线免费视频一区 | 久草在线免 | 免费亚洲视频 | 成人在线免费视频 | 探花国产在线 | 久久久久国产精品免费网站 | 国产精品video爽爽爽爽 | 九九久久精品视频 | 色综合天天天天做夜夜夜夜做 | 中文有码在线 | 欧美成人高清 | 色多视频在线观看 | 美女国产在线 | 婷婷综合久久 | 日韩大片免费在线观看 | 国产91精品久久久久 | 国产日韩精品一区二区三区 | 精品久久久久久亚洲综合网 | 久久国产区 | 色婷婷在线观看视频 | 激情综合亚洲精品 | 国产做aⅴ在线视频播放 | 免费观看性生交大片3 | 亚洲免费资源 | 久久久国产日韩 | 午夜体验区 | 在线日本看片免费人成视久网 | 欧美另类重口 | 日本三级全黄少妇三2023 | 久久精品99久久 | 中文字幕欧美三区 | 一区二区视频在线播放 | 日韩乱理 | 日韩三级.com| 久久久精品国产一区二区三区 | 亚洲电影免费 | 日韩午夜大片 | 日韩黄色一级电影 | 1区2区3区在线观看 三级动图 | 精品国产免费一区二区三区五区 | 九九有精品 | 国产人在线成免费视频 | 91香蕉视频色版 | av在线之家电影网站 | 免费美女av| 九九有精品 | 91探花视频 | 国产无遮挡猛进猛出免费软件 | 69精品| 国产精品嫩草影院123 | 高清不卡毛片 | 国产精品一区在线 | 日本精品中文字幕在线观看 | a级片韩国 | 综合激情久久 | 啪啪av在线 | 久久黄色片子 | 久久视频网址 | 成人午夜黄色 | 99久久久久国产精品免费 | 婷婷色婷婷 | 久久免费黄色大片 | 亚洲精品综合久久 | 国产精品午夜在线观看 | 51久久成人国产精品麻豆 | 在线观看v片 | av三级在线免费观看 | 色吊丝在线永久观看最新版本 | 日韩电影在线视频 | 五月天久久狠狠 | 欧美精品久久久久久久免费 | 亚洲成av人片一区二区梦乃 | 国产精品原创在线 | 国产一二三四在线观看视频 | 黄色一级在线免费观看 | 91一区啪爱嗯打偷拍欧美 | 欧美精品在线免费 | 2023年中文无字幕文字 | 最新日本中文字幕 | 国产999久久久 | 久久综合狠狠综合 | 亚洲午夜精品在线观看 | 国产精品成人免费一区久久羞羞 | 狠狠综合网 | 日本激情视频中文字幕 | 91av在线免费看 | 91麻豆精品国产91久久久使用方法 | 亚洲极色| av电影在线播放 | 精品色999| 成人欧美在线 | www.久草视频| www.天天草| 日本在线观看中文字幕 | 在线看小早川怜子av | 99精品欧美一区二区 | 日韩av片无码一区二区不卡电影 | 日韩综合在线观看 | 精品久久久久久久 | 欧美一级片在线免费观看 | 91精品一区二区三区蜜臀 | 日韩欧美视频免费观看 | 国产精品video爽爽爽爽 | 香蕉久久久久久av成人 | 五月婷婷毛片 | 中文字幕在线观看你懂的 | 国产精品久久久久久久7电影 | 美女视频黄频大全免费 | 精品二区久久 | 国产精品欧美久久久久无广告 | 国产精品99久久久久人中文网介绍 | 人人爽人人爽人人爽学生一级 | 久久99国产精品免费网站 | 香蕉蜜桃视频 | 日日干天夜夜 | 女人18片毛片90分钟 | 色就是色综合 | 免费午夜网站 | 尤物一区二区三区 | 免费观看国产精品视频 | 特级毛片爽www免费版 | 在线观看中文字幕第一页 | 国产在线播放观看 | 国产黄色在线看 | 国产a级免费 | 精品久久久久久久久久久久久 | 四虎影视成人永久免费观看亚洲欧美 | 在线观看日韩av | 中文字幕丝袜一区二区 | 91欧美日韩国产 | 亚洲精品视频二区 | www激情网| 激情图片qvod | 国产午夜一级毛片 | 日本黄色大片免费看 | 免费av观看 | 9999在线视频 | 久久久精品视频网站 | 国产视频在线观看一区二区 | 日本黄色免费网站 | 国产精品2019 | 激情综合网婷婷 | av高清一区二区三区 | 国产在线欧美日韩 | 激情欧美一区二区三区免费看 | 国产免费一区二区三区网站免费 | 色噜噜日韩精品一区二区三区视频 | 成人av中文字幕 | 久久久蜜桃 | a视频在线观看 | 777奇米四色 | 精品国产诱惑 | 色婷婷导航 | 性色av一区二区 | 欧美激情精品 | 色亚洲网| 精品视频中文字幕 | 六月天综合网 | 国产成人三级一区二区在线观看一 | 日日碰狠狠添天天爽超碰97久久 | 欧美日韩电影在线播放 | 午夜狠狠干 | 久久精品国产99国产 | 久久综合色影院 | 中文字幕乱在线伦视频中文字幕乱码在线 | 欧美日韩精品区 | 午夜精品久久久久久 | 成人在线视频免费观看 | 久久国产网 | 日韩丝袜视频 | 在线草 | 九九视频在线 | 国产精品久久久久久久久久久久午夜 | 国产精品久久久久久久免费 | av电影在线不卡 | 欧美坐爱视频 | 亚州av成人| 久久久久久久亚洲精品 | 丁香婷婷电影 | 久久综合一本 | 国产成人福利在线 | wwwww.国产| 美女搞黄国产视频网站 | 人人干人人干人人干 | 国产黄色大片免费看 | 久久影院中文字幕 | 国产高清视频在线观看 | 久久精品艹 | 美女久久一区 | 麻花传媒mv免费观看 | 国产v亚洲v | 国产高清在线精品 | 亚洲精品乱码白浆高清久久久久久 | 日韩在线精品一区 | 免费国产在线观看 | 999国内精品永久免费视频 | 国产精品一区二区视频 | 热re99久久精品国产66热 | 久久视频在线免费观看 | 中文字幕一区二区三区久久 | 午夜私人影院 | 九九欧美| 超碰97人人干| 午夜黄色一级片 | av免费电影在线观看 | 欧美不卡视频在线 | 日韩丝袜在线 | 精品视频免费观看 | 97综合在线 | 亚洲国产美女久久久久 | 欧美激情视频一区二区三区免费 | 91精品国自产在线观看 | 狠狠色丁香久久婷婷综合五月 | 久久久久久久久电影 | 成人av资源网站 | 中文字幕一区二区在线播放 | 国产午夜免费视频 | 成年人免费电影 | 午夜国产福利视频 | 久久精品免费 | 狠狠色狠狠色综合日日小说 | 91福利视频一区 | 日韩美女av在线 | 日本成址在线观看 | 91视频观看免费 | 99久久久久国产精品免费 | www.777奇米 | 粉嫩av一区二区三区入口 | 亚洲波多野结衣 | 正在播放亚洲精品 | 久久久网页 | av在线最新 | 国产精品不卡在线 | 国产日产精品久久久久快鸭 | 青草草在线 | av看片在线| 久久久久亚洲精品中文字幕 | 久久亚洲综合色 | 久久久免费精品 | 日韩免费电影网站 | 国产视频不卡一区 | 久久国产精品免费观看 | 欧美在线视频精品 | 日韩中文字幕亚洲一区二区va在线 | 97人人射| 狠狠操精品 | 国产精品va在线观看入 | 91精品国产91久久久久久三级 | 久久国产成人午夜av影院潦草 | 在线观看视频一区二区三区 | 国产精品美女久久久久久久网站 | 黄色在线免费观看网站 | 久久久久国产一区二区三区四区 | 热久久国产精品 | 国产精品 中文字幕 亚洲 欧美 | 欧美大片第1页 | 国产99久| 日韩大片免费在线观看 | 91尤物国产尤物福利在线播放 | 国产一区久久 | 国产特级毛片aaaaaa毛片 | 91精品国产99久久久久 | 国产精品大片在线观看 | 成人综合婷婷国产精品久久免费 | 日韩网站中文字幕 | 午夜精品福利在线 | 成 人 黄 色 免费播放 | 亚洲精品tv| 日本中出在线观看 | 在线欧美日韩 | av成人在线播放 | 国内视频在线观看 | 麻豆激情电影 | 亚洲精品婷婷 | 一区二区不卡高清 | 久久综合九色综合97婷婷女人 | 欧美激情综合五月色丁香 | 99久久精品免费看国产一区二区三区 | www.天堂av| 欧美精品免费视频 | 国产视频在线观看免费 | 亚洲天堂网站视频 | 日韩欧美电影在线观看 | 中文字幕亚洲欧美日韩 | 亚洲成人国产精品 | 亚洲国产日韩一区 | 天天综合导航 | 中文久久精品 | 欧美精品在线一区二区 | 免费观看视频的网站 | 99超碰在线播放 | 最新av网址在线观看 | 国色天香av | 最新真实国产在线视频 | 久久夜色精品国产亚洲aⅴ 91chinesexxx | av在线8| 日本爱爱片 | 久久精品中文字幕 | 激情影院在线观看 | 九九免费在线看完整版 | 中文字幕中文字幕在线中文字幕三区 | 99久热在线精品视频 | 色偷偷88888欧美精品久久久 | av中文字幕在线观看网站 | 日韩一级成人av | 亚洲精品高清一区二区三区四区 | 伊人五月天综合 | 激情在线免费视频 | 深爱婷婷网 | 国产精品久久久久久久久免费看 | 色5月婷婷 | 国产色黄网站 | 中文字幕91 | 成片免费观看视频 | 九色自拍视频 | 一区二区中文字幕在线 | 日韩电影中文,亚洲精品乱码 | 亚洲少妇久久 | 国产区在线视频 | 久久精品中文字幕一区二区三区 | 91精品国产综合久久婷婷香蕉 | 日韩精品在线看 | 色婷婷激情电影 | 十八岁以下禁止观看的1000个网站 | 一级黄色大片在线观看 | 天天爽天天爽夜夜爽 | 久久人人做| 国产精品成人一区 | 欧美黄色特级片 | 国产一区国产二区在线观看 | 国产九九精品视频 | 91在线中字 | 国产精品欧美久久久久无广告 | 一区中文字幕电影 | 又黄又爽又无遮挡的视频 | 国产精品美女久久久久久久久久久 | 久久国产精品99精国产 | 午夜视频播放 | 人人超碰免费 | 亚洲国产高清在线 | 日韩视频一二三区 | 国产精品一区二区免费看 | 日本电影久久 | 久99精品| 欧美日产一区 | 国产精品久久久久av福利动漫 | 免费 在线 中文 日本 | 99视 | 黄色三级久久 | 国产专区第一页 | 国产精品久久久久久一区二区 | 国产精品成人av在线 | 在线看国产| 91网站在线视频 | 精品在线观看免费 | 中文字幕一区二区三区久久 | 国产成人精品一区二三区 | 精品国产一区二区三区噜噜噜 | 精品一区二区免费在线观看 | 中文字幕xxxx | 中文字幕在线视频国产 | 国产91免费看 | 草久视频在线 | 在线小视频国产 | 欧美日韩免费观看一区二区三区 | 在线天堂亚洲 | 手机av资源 | 午夜成人免费影院 | 日韩偷拍精品 | 精品免费观看 | 99爱在线观看 | 九九欧美| 青青草国产免费 | 成人免费在线电影 | 久热久草在线 | 99精品视频一区 | 91最新视频在线观看 | 日韩三区在线 | 二区三区精品 | 国产中文字幕网 | 精品一区二区三区四区在线 | 成人播放器 | 国产中文字幕一区 | 97成人精品 | 中文不卡视频 | 日韩在线播放av | 久久99热这里只有精品 | 久久精品中文字幕 | 久草精品在线观看 | 一区二区三区四区免费视频 | 欧美贵妇性狂欢 | 黄色大片日本 | 国产精品一二三 | 激情图片qvod | 日韩三级视频在线看 | www四虎影院 | 免费网站看v片在线a | 国产亚洲精品久久久网站好莱 | 四虎国产精品永久在线国在线 |