精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

手把手教你中斷喚醒系統

系統 Linux
中斷喚醒系統和普通的驅動區別在于,多了兩個函數:suspend 和 resume,在 suspend 函數中,調用 enable_irq_wake,表示該中斷號在系統休眠時也是 enable 狀態,可以觸發中斷。

[[442463]]

在消費類電子中,功耗是很重要的,甚至項目后期一直在調功耗,看看哪里還可以再省電。由此就有了 Linux 電源管理子系統,該子系統包含很多方面:什么時候可以降幀、什么時候可以關掉其他 CPU core、系統運行時如果某外設很少用需要讓它運行時休眠、系統休眠時要保證哪些外設可以喚醒系統。

博主今天要討論的,就是一個按鍵如何喚醒系統,類似于手機的電源鍵。

這個功能并不是新功能,所以 Linux 內部有一個 demo 可以使用,先教大家如何使用該 demo,然后較大家如何撰寫中斷喚醒系統驅動。

官方 demo

demo 目錄:/kernel4.14/drivers/input/keyboard/gpio_keys.c

該驅動是專門為按鍵準備的,是一個身經百戰的驅動,任何時候測試按鍵中斷或者中斷喚醒系統都可以用它,很多時候比自己寫的驅動靠譜。

要想使用該驅動,首先在該目錄的 Makefile 中增加:

  1. obj-y  += gpio_keys.o 

設備樹中增加:

  1. gpio-keys { 
  2.   compatible = "gpio-keys"
  3.   #address-cells = <1>; 
  4.   #size-cells = <0>; 
  5.   autorepeat; 
  6.   key0 { 
  7.    label = "GPIO Key Enter"
  8.    linux,code = <KEY_ENTER>; 
  9.    gpios = <&gpio1 18 GPIO_ACTIVE_LOW>; 
  10.    gpio-key,wakeup; 
  11.   }; 
  12. }; 

compatible 屬性是 “gpio-keys”,gpio_keys.c 文件的674行會匹配這個屬性,匹配到了該驅動就會運行。

linux,code 屬性是按鍵值,Linux 對所有按鍵事件都有編號,所以KEY_ENTER 實際是一個數字,是驅動向上層報告的一個按鍵值。

gpios 屬性是標明哪一個 GPIO 口,低電平觸發,大家可以自己選一個 GPIO。

gpio-key,wakeup 是代表此GPIO支持中斷喚醒,你也可以寫成:wakeup-source。新老版本而已。

修改就是這么簡單,不過語法要符合各位手中的開發板平臺。然后編譯出內核和設備樹文件,下載到板子中。(Linux 內核根目錄會有 .config 文件,確保 CONFIG_PM_SLEEP=y 有打開)

如果驅動加載成功,在 /proc/interrupts 中可以看到:

從左往右第一列是軟件中斷號(唯一)。

第二列是 CPU,表示該中斷在該CPU上觸發了多少次,多核會有多列。

第三列是中斷控制器,imx6ull開發板根中斷控制器是GPC,外部中斷控制器是gpio-mxc,兩者是級聯關系。

第四列是硬件中斷號,也就是GPIO口編號。

第五列表示該中斷是邊沿觸發還是電平觸發。

第六列是中斷名稱,可以找到一個 GPIO Key Enter,如果驅動加載成功就能看到,如果失敗就看不到。

驗證方法

在內核中,休眠方式有很多種,可以通過下面命令查看

  1. # cat /sys/power/state 

常用的休眠方式有freeze、standby、mem、disk

freeze:凍結I/O設備,將它們置于低功耗狀態,使處理器進入空閑狀態,喚醒最快,耗電比其它standby, mem, disk方式高

standby:除了凍結I/O設備外,還會暫停系統,喚醒較快,耗電比其它 mem, disk方式高

mem:將運行狀態數據存到內存,并關閉外設,進入等待模式,喚醒較慢,耗電比disk方式高

disk:將運行狀態數據存到硬盤,然后關機,喚醒最慢

示例:

  1. # echo mem > /sys/power/state 

系統進入睡眠后,基本都會停掉UI、停掉串口,串口無法操作,如圖:

按下按鍵,系統恢復:

當然這里的 log 并不完整,輸入 dmesg 可以看到完整 log:

PM:power manager

具體干了什么,圖中有解釋,分為 suspend 過程和 resume 過程。

其實一個中斷讓它支持喚醒系統,最主要是多了兩個函數:suspend、resume。

suspend 函數在系統整體 suspend 的時候,會調用每個外設注冊的 suspend,我們在這個函數中調用 enable_irq_wake,表示該中斷在系統休眠時是 enable 狀態。

resume 函數在系統整體 resume 的時候,會調用每個外設注冊的 resume 函數,在 resume 函數中調用 disable_irq_wake ,表示該中斷在系統運行時不需要。兩者成對使用。

具體參看下面文章,寫的很好:

http://www.wowotech.net/irq_subsystem/irq_handle_procedure.html

大家也可以研究一下 gpio_keys.c,該驅動看起來比較復雜,但是很完善,畢竟身經百戰,什么因素都考慮到了,測試就用它!

博主寫的 demo

博主下面給的是簡化版,并且自測OK,分享給大家,以后如果需要可以copy

xxx.c

  1. #include <linux/module.h> 
  2. #include <linux/i2c.h> 
  3. #include <linux/interrupt.h> 
  4. #include <linux/delay.h> 
  5. #include <linux/uaccess.h> 
  6. #include <linux/pm.h> 
  7. #include <linux/slab.h> 
  8. #include <linux/sysctl.h> 
  9. #include <linux/proc_fs.h> 
  10. #include <linux/delay.h> 
  11. #include <linux/platform_device.h> 
  12. #include <linux/input.h> 
  13. #include <linux/gpio_keys.h> 
  14. #include <linux/workqueue.h> 
  15. #include <linux/gpio.h> 
  16. #include <linux/of.h> 
  17. #include <linux/of_platform.h> 
  18. #include <linux/of_gpio.h> 
  19. #include <linux/of_irq.h> 
  20. #include <linux/spinlock.h> 
  21. #include <linux/cdev.h> 
  22.  
  23. static int gpionum = 0; 
  24. static int irqnum = 0; 
  25.  
  26. static irqreturn_t my_handler(int irq, void *dev_id) 
  27.  printk("%s\r\n",__FUNCTION__); 
  28.  return IRQ_HANDLED; 
  29.  
  30. static int gpio_keys_probe(struct platform_device *pdev) 
  31.  int ret = 0; 
  32.  struct device_node *node = NULL;; /* 設備節點*/ 
  33.   
  34.  node = of_find_compatible_node(NULL,NULL,"atkalpha-key"); 
  35.  if (node == NULL){ 
  36.   printk("%s:atkalpha-key node not find!\r\n",__FUNCTION__); 
  37.   return -EINVAL; 
  38.  } 
  39.   
  40.  /* 提取 GPIO */ 
  41.  gpionum = of_get_named_gpio(node,"key-gpio", 0); 
  42.  if (gpionum < 0) { 
  43.    printk("of_get_named_gpio can't get key\r\n"); 
  44.  } 
  45.   
  46.  /* 初始化 key 所使用的 IO,并且設置成中斷模式 */ 
  47.  gpio_request(gpionum, "key-gpio"); 
  48.  gpio_direction_input(gpionum);  
  49.   
  50.  irqnum = gpio_to_irq(gpionum); 
  51.   
  52.  ret = request_irq(irqnum,my_handler, IRQF_TRIGGER_FALLING|IRQF_TRIGGER_RISING, "my-key"NULL); 
  53.  if(ret < 0){ 
  54.   printk("irq %d request failed!\r\n", irqnum); 
  55.   return -EFAULT; 
  56.  } 
  57.  return 0; 
  58.  
  59.  
  60. static const struct of_device_id gpio_keys_of_match[] = { 
  61.  { .compatible = "atkalpha-key", }, 
  62.  { }, 
  63. }; 
  64. MODULE_DEVICE_TABLE(of, gpio_keys_of_match); 
  65.  
  66. static int gpio_keys_remove(struct platform_device *pdev) 
  67.  return 0; 
  68.  
  69. static int gpio_keys_suspend(struct device *dev) 
  70.  printk("%s\r\n",__FUNCTION__); 
  71.  enable_irq_wake(irqnum); 
  72.  return 0; 
  73.  
  74. static int gpio_keys_resume(struct device *dev) 
  75.  printk("%s\r\n",__FUNCTION__); 
  76.  disable_irq_wake(irqnum); 
  77.  return 0; 
  78.  
  79. static SIMPLE_DEV_PM_OPS(gpio_keys_pm_ops, gpio_keys_suspend, gpio_keys_resume); 
  80.  
  81. static struct platform_driver gpio_keys_device_driver = { 
  82.  .probe  = gpio_keys_probe, 
  83.  .remove  = gpio_keys_remove, 
  84.  .driver  = { 
  85.   .name = "my-key"
  86.   .pm = &gpio_keys_pm_ops, 
  87.   .of_match_table = of_match_ptr(gpio_keys_of_match), 
  88.  } 
  89. }; 
  90.  
  91. static int __init gpio_keys_init(void) 
  92.  return platform_driver_register(&gpio_keys_device_driver); 
  93.  
  94. static void __exit gpio_keys_exit(void) 
  95.  platform_driver_unregister(&gpio_keys_device_driver); 
  96.  
  97. module_init(gpio_keys_init); 
  98. module_exit(gpio_keys_exit); 
  99.  
  100. MODULE_LICENSE("GPL"); 
  101. MODULE_AUTHOR("Jason"); 
  102. MODULE_DESCRIPTION("Keyboard driver for GPIOs"); 
  103. MODULE_ALIAS("platform:gpio-keys"); 

xxx.dts

  1. key { 
  2.   #address-cells = <1>; 
  3.   #size-cells = <1>; 
  4.   compatible = "atkalpha-key"
  5.   key-gpio = <&gpio1 18 GPIO_ACTIVE_LOW>; /* KEY0 */ 
  6.   interrupt-parent = <&gpio1>; 
  7.   interrupts = <18 IRQ_TYPE_EDGE_BOTH>; /* FALLING RISING */ 
  8.   gpio-key,wakeup; 
  9.   status = "okay"
  10. }; 

最后再總結一下:中斷喚醒系統和普通的驅動區別在于,多了兩個函數:suspend 和 resume,在 suspend 函數中,調用 enable_irq_wake,表示該中斷號在系統休眠時也是 enable 狀態,可以觸發中斷。在 resume 函數中,調用 disable_irq_wake ,恢復原始的中斷觸發路徑。

然后使用 SIMPLE_DEV_PM_OPS 宏將 suspend 和 resume 函數注冊到 gpio_keys_pm_ops 操作集,最終由 platform 注冊到系統中。這樣完成后,系統休眠過程中就會調用到設備注冊的 suspend,系統喚醒過程中就會調用設備注冊的 resume 函數。

至于 probe 函數的書寫,我在 GPIO 子系統和中斷子系統系列文章都講過這些函數的使用,大家可以去我的網站查看:

http://www.linuxer.vip

note:該 demo 只用來喚醒系統,如果你的中斷是在 I2C 等設備驅動中,喚醒系統后要立刻在中斷處理函數中進行 I2C 通信,寫法不太一樣,但是框架相同。

另外,該驅動的中斷處理函數中沒做什么東西,因此喚醒后執行完中斷處理函數后又會睡過去。如果你想要該中斷喚醒系統后讓系統一直處于喚醒狀態,請在中斷處理函數中使用 __pm_stay_awake() 和 __pm_relax()函數。

 

責任編輯:姜華 來源: 嵌入式Linux系統開發
相關推薦

2022-01-08 20:04:20

攔截系統調用

2021-07-14 09:00:00

JavaFX開發應用

2011-05-03 15:59:00

黑盒打印機

2025-05-07 00:31:30

2011-01-10 14:41:26

2021-12-15 08:49:21

gpio 子系統pinctrl 子系統API

2023-04-26 12:46:43

DockerSpringKubernetes

2022-12-07 08:42:35

2022-03-14 14:47:21

HarmonyOS操作系統鴻蒙

2022-07-27 08:16:22

搜索引擎Lucene

2021-02-26 11:54:38

MyBatis 插件接口

2011-02-22 13:46:27

微軟SQL.NET

2009-07-19 15:02:56

2021-09-22 08:51:34

Android

2024-04-02 08:58:13

2024-03-05 18:27:43

2010-09-16 14:08:13

無線雙網

2021-08-02 07:35:19

Nacos配置中心namespace

2021-09-18 14:26:49

Linux Linux 啟動流程Linux 系統

2021-07-01 09:31:50

MySQL SQL 語句數據庫
點贊
收藏

51CTO技術棧公眾號

国产美女视频一区二区三区| 亚洲第一在线播放| 电影一区中文字幕| 亚洲一区中文在线| 久久一区免费| 一级成人免费视频| 欧美色图首页| 亚洲午夜av电影| 国产性生活一级片| 悠悠资源网亚洲青| 国产精品久久久久久久久图文区| 95av在线视频| 精品人妻一区二区色欲产成人| 日韩欧美视频在线播放| 亚洲成色777777女色窝| 超碰在线播放91| 超碰97免费在线| 国产精品免费视频一区| 国产精品一区二区你懂得| 五月婷婷六月婷婷| 激情欧美国产欧美| 日韩视频亚洲视频| 人妻精品久久久久中文字幕| 日本成人精品| 欧美午夜片在线看| 免费观看国产精品视频| 国产黄色在线观看| 国产欧美日韩视频在线观看| 国产精品高清一区二区三区| 国产又黄又粗又硬| 视频一区二区中文字幕| 97色在线观看| 欧美激情精品久久| 99精品视频在线观看播放| 日韩成人在线网站| 日韩成人av影院| 国产不卡精品在线| 欧美日韩综合不卡| 久久9精品区-无套内射无码| 免费网站在线观看人| 亚洲人成影院在线观看| 亚洲欧美久久久久一区二区三区| 亚洲三区在线播放| av一二三不卡影片| 国产精品三区www17con| japanese国产| 国产精品影视在线观看| 成人精品一区二区三区电影黑人| 波多野结衣一二区| 巨乳诱惑日韩免费av| 欧美中在线观看| www.国产成人| 中文日韩在线| 欧美又大又粗又长| 黄色大片网站在线观看| 亚洲久久在线| 91av国产在线| 97免费在线观看视频| 影音先锋亚洲一区| 性色av香蕉一区二区| 日韩欧美激情视频| 亚洲片区在线| 2019中文在线观看| 六月丁香婷婷综合| 久久精品综合| 国产成人涩涩涩视频在线观看| 国产精品久久久久久久久久久久久久久久久| 99国产精品私拍| 奇米四色中文综合久久| 7799精品视频天天看| 日日噜噜夜夜狠狠视频欧美人| 国产成人短视频| 中文字幕永久在线视频| 精品一区二区免费| 91久久精品www人人做人人爽| 国产99对白在线播放| 成人亚洲一区二区一| 久久久久天天天天| 粉嫩av在线播放| 日韩理论片网站| 婷婷五月综合缴情在线视频| 中文字幕在线免费观看视频| 精品视频在线免费| 欧美日韩理论片| 猫咪成人在线观看| 在线视频免费一区二区| 麻豆天美蜜桃91| 亚洲第一精品影视| 国产成人精品综合久久久| 国产精品天天操| 97精品久久久久中文字幕| 日韩国产高清一区| 色呦呦在线看| 日韩欧美一区二区在线| 中文字幕免费高清在线| 白嫩白嫩国产精品| 自拍偷拍亚洲精品| 精品亚洲永久免费| 日韩和欧美的一区| 成人在线视频网址| 成年网站在线| 亚洲午夜久久久久久久久久久| 男人天堂成人在线| 亚洲视频国产| 在线看片第一页欧美| 日韩 欧美 精品| 加勒比av一区二区| 久久99精品久久久久久秒播放器 | 亚洲精品国产精品自产a区红杏吧| 免费看污片网站| 欧美精品一线| 国产精品一二三在线| 天堂网在线观看视频| 中文字幕一区二区三区不卡 | 欧美大片国产精品| 国产精品高清无码在线观看| 欧美 日韩 国产 一区| 国产成人免费91av在线| 天堂在线视频网站| 亚洲精品乱码久久久久| 免费激情视频在线观看| 久久人人爽人人爽人人片av不| 日韩中文字幕在线播放| 黑人精品无码一区二区三区AV| 国产馆精品极品| 综合一区中文字幕| 色猫猫成人app| 亚洲国模精品私拍| 免费一级黄色大片| 国产一区二区看久久| 婷婷久久青草热一区二区| 日本蜜桃在线观看视频| 精品久久国产字幕高潮| 美女的奶胸大爽爽大片| 精品一区二区综合| 神马一区二区影院| 欧美日韩视频免费观看| 亚洲精品国产成人| 日本少妇吞精囗交| 粉嫩av一区二区三区粉嫩 | 99pao成人国产永久免费视频| 91免费版网站入口| 日本在线免费网| 欧美色图在线观看| av电影在线不卡| 狂野欧美一区| 色播亚洲婷婷| 久久免费资源| 中文字幕视频在线免费欧美日韩综合在线看 | 蝌蚪视频在线播放| 一本久久精品一区二区| 波多野结衣福利| 久久精品人人| 欧美久久在线| 国产亚洲一区二区手机在线观看 | 国产精品白丝jk白祙| 韩国成人免费视频| 亚洲精品98久久久久久中文字幕| 麻豆chinese极品少妇| 大尺度一区二区| 国产精品一区二区免费在线观看| 久久精品色综合| 6080yy精品一区二区三区| 四虎电影院在线观看| 色网综合在线观看| 免费一级特黄3大片视频| 免费观看日韩av| 黄色影视在线观看| jizzjizzjizz欧美| 欧美在线观看网址综合| 77导航福利在线| 欧美精品在欧美一区二区少妇| 糖心vlog免费在线观看| 国产成人99久久亚洲综合精品| 日韩在线视频在线| 欧洲在线一区| 国产精品一区二区3区| 高潮毛片在线观看| 亚洲第一福利网站| 国产日韩在线免费观看| 亚洲欧美偷拍三级| 精品国产av色一区二区深夜久久| 久久先锋资源| 在线观看污视频| 日韩精品a在线观看91| 国产精品久久久久秋霞鲁丝| av在线下载| 精品呦交小u女在线| 一级片在线观看视频| 亚洲永久免费视频| 精品欧美一区二区久久久| 国产一区二区三区四区五区美女 | 另类一区二区三区| 欧美日韩xxxxx| 激情福利在线| 欧美一区二区三区色| 亚洲男人的天堂在线视频| 色域天天综合网| 中文字幕不卡av| 国产又粗又黄又爽视频| 性久久久久久久久久久久| 国产精久久一区二区三区| 国产伦精品一区二区三区免费迷 | 欧美一区二区久久| 国产性猛交╳xxx乱大交| 国产精品久久久久一区二区三区| 日批免费观看视频| 麻豆国产精品官网| 黄色国产精品视频| 欧美a级一区| 亚洲自拍的二区三区| 欧美一区二区三区久久| 亚洲a一级视频| 蜜桃视频成人m3u8| 午夜精品久久久久久久99热| av香蕉成人| 一区二区日韩精品| 天天插天天干天天操| 欧美一区二区三区播放老司机| 亚洲婷婷综合网| 亚洲一区二区成人在线观看| 三级黄色录像视频| 日本一区二区三区在线观看| 成人免费无码大片a毛片| 国产精品66部| 超碰中文字幕在线观看| 欧美中文字幕| 久久久性生活视频| 欧美三级小说| 日韩欧美一级在线| 亚洲乱码电影| 中文字幕制服丝袜在线| 欧美一区电影| 日本一区二区精品| 亚洲综合图色| 免费在线观看一区二区| 欧洲精品一区| 免费在线成人av| 神马久久av| 久中文字幕一区| 日韩成人一级| 久久伊人资源站| 亚洲第一福利专区| 免费在线成人av| 免费成人av| 日本日本精品二区免费| 国产一区二区三区网| 日韩精品国内| 欧美成人激情| 99re99热| 欧美午夜免费影院| 欧洲精品一区二区三区久久| 激情综合自拍| 免费黄色日本网站| 丝袜美腿成人在线| 超碰在线公开97| 久久91精品国产91久久小草| 亚洲理论中文字幕| 大桥未久av一区二区三区中文| 男男一级淫片免费播放| 91香蕉国产在线观看软件| 国产又爽又黄无码无遮挡在线观看| 91浏览器在线视频| www.99热| 亚洲另类一区二区| 国产精品a成v人在线播放| 午夜精品久久久久久久久久久 | 亚洲综合影视| 久久久久久久久久国产精品| 密臀av在线播放| 国产精品久在线观看| 国产精品一级在线观看| 国产精品一区二区a| 国产亚洲欧美日韩在线观看一区二区| 亚洲精品国产精品久久| 91精品国产视频| 男人添女人下部高潮视频在观看| 久久久久看片| 中文字幕在线视频精品| 成人免费视频国产在线观看| 久操视频免费看| 亚洲免费视频中文字幕| 香蕉视频一区二区| 在线观看成人小视频| 国产精品一区二区黑人巨大| 亚洲国产三级网| 亚洲s色大片| 韩国美女主播一区| 91天天综合| 国产精品三区四区| 久久视频国产| 女性女同性aⅴ免费观女性恋 | 男人的天堂影院| 国产免费久久精品| 日本少妇性生活| 欧美日韩亚洲综合一区| 欧美熟妇另类久久久久久不卡 | 欧美成人aa大片| 国产日韩精品在线看| 欧美裸体男粗大视频在线观看| 成人免费看黄| 动漫3d精品一区二区三区| 欧美日韩播放| 青青青在线视频播放| 久久99国内精品| 亚洲成人网在线播放| 亚洲卡通动漫在线| 97人妻精品视频一区| 亚洲国产小视频在线观看| 老司机99精品99| 国产精品吊钟奶在线| 噜噜噜天天躁狠狠躁夜夜精品| 桥本有菜av在线| 日韩精品亚洲一区二区三区免费| 老司机午夜免费福利| 亚洲欧美电影院| 一级黄色a视频| 亚洲欧洲免费视频| а√天堂8资源在线| 成人免费视频网站| 亚洲91久久| 伊人色在线观看| 国产精品少妇自拍| 日本精品入口免费视频| 亚洲精品xxx| 96av在线| 国产精品区一区二区三在线播放| 欧美伊人久久| 在线一区二区不卡| 亚洲欧洲成人自拍| 中文字字幕在线中文乱码| 亚洲日本中文字幕免费在线不卡| 理论片午夜视频在线观看| 高清av免费一区中文字幕| 综合一区二区三区| 五月天视频在线观看| 国产精品萝li| 一炮成瘾1v1高h| 日韩在线观看免费高清| 国外成人福利视频| 亚洲精品tv久久久久久久久| 蜜桃在线一区二区三区| 东方伊人免费在线观看| 欧美亚洲国产一区二区三区| 成人性爱视频在线观看| 国产精品视频地址| 水蜜桃久久夜色精品一区| 日本不卡一区二区在线观看| 亚洲丝袜美腿综合| 国产模特av私拍大尺度 | 欧美a级在线观看| 极品尤物一区二区三区| 国产精品一区毛片| 久久丫精品国产亚洲av不卡| 欧美视频精品一区| 美州a亚洲一视本频v色道| 国产99久久久欧美黑人| 成人黄色av| 亚洲天堂一区二区在线观看| 伊人一区二区三区| 亚洲乱码在线观看| 91国产视频在线| 国内精品久久久久久久久电影网 | 99精品久久99久久久久| 青青草免费观看视频| 在线日韩中文字幕| 麻豆精品国产| 亚洲 欧美 日韩 国产综合 在线 | 天堂√在线观看一区二区| 久久精品国产精品青草| 欧美日韩人妻精品一区二区三区| 精品国产乱码91久久久久久网站| 狠狠操一区二区三区| 日韩av大全| 国产精品一二一区| 成人免费看片98欧美| 在线观看欧美日韩| 日韩在线网址| 日韩欧美精品在线观看视频| 国产精品丝袜久久久久久app| 精品久久久无码中文字幕| 26uuu另类亚洲欧美日本老年| 第四色成人网| www.男人天堂| 欧美日韩一级片网站| 成年人视频免费在线播放| 日韩欧美三级电影| 国产精品99久久久久久久女警| 国产精品xxxx喷水欧美| 久久精品国产99国产精品澳门| 精品综合久久88少妇激情| 天天干天天玩天天操| 午夜日韩在线观看| 一本一道波多野毛片中文在线| 国产伦精品一区二区三区视频免费 | 粉嫩av一区二区| 少妇激情一区二区三区| 香蕉成人伊视频在线观看| 77导航福利在线| 蜜桃av噜噜一区二区三|