標題: Smart210 USB ROOT HUB自動復位 [打印本頁]
作者: benbens 時間: 2015-7-15 01:39
標題: Smart210 USB ROOT HUB自動復位
現象:
使用usb camera 在lcd上顯示圖像時,偶爾發生USB ROOT HUB reset, 導致camera停止工作,
然后發生usb camera自動斷開,然后又重新識別,斷開又識別。
如果不使用usb camera,就不會發生 usb reset。
分析:
1、懷疑USB供電問題,導致usb不穩定,但是,使用帶外接電源的usb,沒有任何改善;
2、分析log,是usb異常中斷導致,但是仍然無法判斷異常的來源;
3、懷疑是驅動問題,更換linux 內核版本,3.4.2、3.7、3.9.7、3.10、3.13幾個版本都有同樣問題;
4、使用官方kernel 3.0.8就沒有問題,確認還是驅動配置問題。但是仍然找不到原因。
使用排除法,移植3.0.8內核,一步一步添加官方驅動,無論與camera usb相關不相關,都要測試。
最終發現問題在LCD的GPIO配置上。
結果:
從Linux主線下載的新版本的kernel后,配置好LCD的時序,發現lcd能夠正常工作,所以就沒有繼續關心LCD的配置,
尤其是 RGB的GPIO配置,甚至都沒有把LCD的GPIO配置成功能引腳,但恰巧是這方面的問題。
最終重新配置LCD的gpio 為功能,并設置驅動能力, 經過很長時間的測試USB沒有發生reset。
問題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)
作者: lyangucas92 時間: 2018-6-14 16:13
你好 我也遇到了類似的問題,按照您的思路去修改,效果有所改善,但是,剛開機還是存在復位重啟的現象
作者: wx919902905 時間: 2018-6-25 21:56
學習了,謝謝樓主
歡迎光臨 (http://m.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
亚洲人天堂
|
一区二区三区日韩
|
91久久综合亚洲鲁鲁五月天
|
三级网站在线
|
国产精品一区二区三区在线
|
欧美精品亚洲
|
中文字幕国产
|
亚洲一区在线视频
|
精品亚洲国产成人av制服丝袜
|
91久久久久久久久久
|
久久免费视频网站
|
激情网站在线观看
|
性大毛片视频
|
亚洲精品一二三四区
|
丝袜美腿一区二区三区
|
国产精品va|
免费精品
|
亚洲欧美在线视频
|
鲁鲁鲁鲁鲁鲁鲁777777
|
国产成人三级一区二区在线观看一
|
国产成人午夜高潮毛片
|
福利一区二区
|
亚洲久久久
|
日韩精品视频在线
|
欧美日韩中文字幕在线
|
毛片视频免费
|
日韩不卡在线
|
国产午夜免费
|
黄网站免费观看
|
日韩性视频
|
成人扒开伸进免费观看
|
成人欧美一区二区三区黑人孕妇
|
日本一级一片免费视频
|
免费看黄色aaaaaa 片
|
欧美三级精品
|
久久精品日韩
|
亚洲欧美在线视频
|
最新超碰
|
亚洲成人国产
|
中文字字幕|
亚洲少妇一区
|