久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 6581|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

Smart210 USB ROOT HUB自動(dòng)復(fù)位

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:85681 發(fā)表于 2015-7-15 01:39 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
現(xiàn)象:

使用usb camera 在lcd上顯示圖像時(shí),偶爾發(fā)生USB ROOT HUB reset, 導(dǎo)致camera停止工作,
然后發(fā)生usb camera自動(dòng)斷開(kāi),然后又重新識(shí)別,斷開(kāi)又識(shí)別。
如果不使用usb camera,就不會(huì)發(fā)生 usb reset。

分析:
1、懷疑USB供電問(wèn)題,導(dǎo)致usb不穩(wěn)定,但是,使用帶外接電源的usb,沒(méi)有任何改善;
2、分析log,是usb異常中斷導(dǎo)致,但是仍然無(wú)法判斷異常的來(lái)源;
3、懷疑是驅(qū)動(dòng)問(wèn)題,更換linux 內(nèi)核版本,3.4.2、3.7、3.9.7、3.10、3.13幾個(gè)版本都有同樣問(wèn)題;
4、使用官方kernel 3.0.8就沒(méi)有問(wèn)題,確認(rèn)還是驅(qū)動(dòng)配置問(wèn)題。但是仍然找不到原因。
使用排除法,移植3.0.8內(nèi)核,一步一步添加官方驅(qū)動(dòng),無(wú)論與camera usb相關(guān)不相關(guān),都要測(cè)試。
最終發(fā)現(xiàn)問(wèn)題在LCD的GPIO配置上。

結(jié)果:
從Linux主線下載的新版本的kernel后,配置好LCD的時(shí)序,發(fā)現(xiàn)lcd能夠正常工作,所以就沒(méi)有繼續(xù)關(guān)心LCD的配置,
尤其是 RGB的GPIO配置,甚至都沒(méi)有把LCD的GPIO配置成功能引腳,但恰巧是這方面的問(wèn)題。
最終重新配置LCD的gpio 為功能,并設(shè)置驅(qū)動(dòng)能力, 經(jīng)過(guò)很長(zhǎng)時(shí)間的測(cè)試USB沒(méi)有發(fā)生reset。

問(wèn)題log:

[cpp] view plaincopy


  • [liujia@210]#[  171.257109] lj:port 1, status 0100, change 0001, 12 Mb/s  
  • [  171.257174] usb 1-1: USB disconnect, device number 23  
  • [  171.257219] usb 1-1.2: USB disconnect, device number 24  
  • [  171.522012] usb 1-1: new high-speed USB device number 25 using s5p-ehci  
  • [  171.652422] usb 1-1: New USB device found, idVendor=0424, idProduct=2514  
  • [  171.652480] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0  
  • [  171.657089] hub 1-1:1.0: USB hub found  
  • [  171.657294] hub 1-1:1.0: 4 ports detected  
  • [  171.857405] lj:port 2, status 0101, change 0000, 12 Mb/s  
  • [  171.942257] usb 1-1.2: new high-speed USB device number 26 using s5p-ehci  
  • [  172.265034] usb 1-1.2: New USB device found, idVendor=046d, idProduct=0825  
  • [  172.265093] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=2  
  • [  172.265154] usb 1-1.2: SerialNumber: F46BE640  
  • [  172.269636] uvcvideo: Found UVC 1.00 device <unnamed> (046d:0825)  
  • [  172.291195] input: UVC Camera (046d:0825) as /devices/platform/s5p-ehci/usb1/1-1/1-1.2/1-1.2:1.0/input/input10  
  • [  174.309219] lj:port 1, status 0100, change 0001, 12 Mb/s  
  • [  174.309283] usb 1-1: USB disconnect, device number 25  
  • [  174.309328] usb 1-1.2: USB disconnect, device number 26  
  • [  174.572011] usb 1-1: new high-speed USB device number 27 using s5p-ehci  
  • [  174.702413] usb 1-1: New USB device found, idVendor=0424, idProduct=2514  
  • [  174.702471] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0  
  • [  174.706912] hub 1-1:1.0: USB hub found  
  • [  174.707163] hub 1-1:1.0: 4 ports detected  
  • [  174.907402] lj:port 2, status 0101, change 0000, 12 Mb/s  
  • [  174.992252] usb 1-1.2: new high-speed USB device number 28 using s5p-ehci  
  • [  175.315403] usb 1-1.2: New USB device found, idVendor=046d, idProduct=0825  
  • [  175.315462] usb 1-1.2: New USB device strings: Mfr=0, Product=0, SerialNumber=2  
  • [  175.315524] usb 1-1.2: SerialNumber: F46BE640  
  • [  175.320003] uvcvideo: Found UVC 1.00 device <unnamed> (046d:0825)  
  • [  175.341248] input: UVC Camera (046d:0825) as /devices/platform/s5p-ehci/usb1/1-1/1-1.2/1-1.2:1.0/input/input11  

解決辦法:
1、
arch/arm/mach-s5pv210/setup-fb-24bpp.c
[cpp] view plaincopy


  • static void s5pv210_fb_cfg_gpios(unsigned int base, unsigned int nr)  
  • {  
  •     s3c_gpio_cfgrange_nopull(base, nr, S3C_GPIO_SFN(2));  
  •   
  •     for (; nr > 0; nr--, base++)  
  •         s5p_gpio_set_drvstr(base, S5P_GPIO_DRVSTR_LV4);  
  • }  
  •   
  •   
  • void s5pv210_fb_gpio_setup_24bpp(void)  
  • {  
  • #if 0  
  •     s5pv210_fb_cfg_gpios(S5PV210_GPF0(0), 8);  
  •     s5pv210_fb_cfg_gpios(S5PV210_GPF1(0), 8);  
  •     s5pv210_fb_cfg_gpios(S5PV210_GPF2(0), 8);  
  •     s5pv210_fb_cfg_gpios(S5PV210_GPF3(0), 4);  
  •   
  •     /* Set DISPLAY_CONTROL register for Display path selection.
  •      *
  •      * ouput   |   RGB   |   I80   |   ITU
  •      * -----------------------------------
  •      *  00     |   MIE   |  FIMD   |  FIMD
  •      *  01     | MDNIE   | MDNIE   |  FIMD
  •      *  10     |  FIMD   |  FIMD   |  FIMD
  •      *  11     |  FIMD   |  FIMD   |  FIMD
  •      */  
  •     writel(0x2, S5P_MDNIE_SEL);  
  • #endif  
  •     int i;  
  •   
  •     for (i = 0; i < 8; i++) {  
  •         s3c_gpio_cfgpin(S5PV210_GPF0(i), S3C_GPIO_SFN(2));  
  •         s3c_gpio_setpull(S5PV210_GPF0(i), S3C_GPIO_PULL_NONE);  
  •     }  
  •   
  •     for (i = 0; i < 8; i++) {  
  •         s3c_gpio_cfgpin(S5PV210_GPF1(i), S3C_GPIO_SFN(2));  
  •         s3c_gpio_setpull(S5PV210_GPF1(i), S3C_GPIO_PULL_NONE);  
  •     }  
  •   
  •     for (i = 0; i < 8; i++) {  
  •         s3c_gpio_cfgpin(S5PV210_GPF2(i), S3C_GPIO_SFN(2));  
  •         s3c_gpio_setpull(S5PV210_GPF2(i), S3C_GPIO_PULL_NONE);  
  •     }  
  •   
  •     for (i = 0; i < 4; i++) {  
  •         s3c_gpio_cfgpin(S5PV210_GPF3(i), S3C_GPIO_SFN(2));  
  •         s3c_gpio_setpull(S5PV210_GPF3(i), S3C_GPIO_PULL_NONE);  
  •     }  
  •   
  •     /* mDNIe SEL: why we shall write 0x2 ? */  
  •     writel(0x2, S5P_MDNIE_SEL);  
  •   
  •     /* drive strength to 2x ....(max for smdkv210) */  
  •     writel(0xaaaaaaaa, S5PV210_GPF0_BASE + 0xc);  
  •     writel(0xaaaaaaaa, S5PV210_GPF1_BASE + 0xc);  
  •     writel(0xaaaaaaaa, S5PV210_GPF2_BASE + 0xc);  
  •     writel(0x000000aa, S5PV210_GPF3_BASE + 0xc);  
  • }

2、arch/arm/mach-s5pv210/include/mach/regs-gpio.h


[cpp] view plaincopy


  •   /* 添加代碼*/
  • #define S5PV210_GPF0_BASE(S5P_VA_GPIO + 0x120)
  • #define S5PV210_GPF1_BASE(S5P_VA_GPIO + 0x140)
  • #define S5PV210_GPF2_BASE(S5P_VA_GPIO + 0x160)
  • #define S5PV210_GPF3_BASE(S5P_VA_GPIO + 0x180)




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:351949 發(fā)表于 2018-6-14 16:13 | 只看該作者
你好 我也遇到了類似的問(wèn)題,按照您的思路去修改,效果有所改善,但是,剛開(kāi)機(jī)還是存在復(fù)位重啟的現(xiàn)象
回復(fù)

使用道具 舉報(bào)

板凳
ID:358857 發(fā)表于 2018-6-25 21:56 | 只看該作者
學(xué)習(xí)了,謝謝樓主
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美性精品 | www.免费看片.com| 亚洲国产高清高潮精品美女 | 亚洲一区二区三区视频 | 成人精品一区 | 精品av天堂毛片久久久借种 | 国产高清视频一区 | 在线免费av电影 | 高清av一区| 玖玖国产 | 久久久精品视 | 天天天操 | 亚洲欧美一区二区三区情侣bbw | 狠狠操狠狠操 | 欧美成人精品 | 中国美女一级黄色片 | 久久一区二区三区四区五区 | 特a毛片 | 亚洲视频三区 | 欧美在线播放一区 | 国产黄色大片在线免费观看 | 日韩成人精品 | 国产日韩欧美在线一区 | caoporn免费在线视频 | 日韩av一区二区在线观看 | 在线欧美一区 | 国产精品久久久久aaaa樱花 | 亚洲精品一区二区在线观看 | 国产高清精品在线 | 69亚洲精品 | 91大神在线看 | av电影一区| 91麻豆产精品久久久久久夏晴子 | 中文字幕一区在线观看视频 | 天堂在线www| 午夜在线观看视频 | 韩三级在线观看 | 国产一区二区三区视频 | 福利片在线观看 | 日韩精品一区二区三区中文在线 | 日日操视频 |