DM8168 USB接鼠标时,一些鼠标会经常断开连接。有的鼠标不会。接键盘和U盘之类都很稳定,没有问题。SDK使用官方最新的。这个会是什么原因造成?
Louis:
你用的是什么SDK?PSP的版本是多少?你用的是TI的EVM么?
Zhenlong Tong:
回复 Louis:
使用RDK 3.0,自己的板子,在EVM (udworks 的DVR开发套件)上试也是一样的情况。以前有使用过EZSDK 5.02版本,也是这样的情况。经常断开的鼠标,有时候都识别不出ID。
Louis:
回复 Zhenlong Tong:
你好!
请按照下面的步骤把log贴一下:
1. Enable debug level: echo D8 > /proc/driver/musb_hdrc.1 (or musb_hdrc.0 based on which port you tested).
2. Clear the logs by command “dmesg -c”
3. Check the interrupts counts “cat /proc/interrupts”
4. Reproduce the issue
5. Check the interrupts and dump the logs (dmesg)
6. cat /proc/driver/musb_hdrc.1 (or musb_hdrc.0)
Zhenlong Tong:
回复 Louis:
经过反复验证,我们使用的鼠标 使用原相 PAN3512DK 这颗芯片的都会在1分钟左右断开连接,然后重新识别。而其他的鼠标不会。这些都是在没有加载上层设备驱动的情况下。加载上层设备驱动后就不会断开连接。
dmesg log :
ti81xx_interrupt 876: usbintr (20) epintr(0)musb_interrupt 1643: ** IRQ peripheral usb0020 tx0000 rx0000musb_stage0_irq 494: <== Power=e0, DevCtl=19, int_usb=0x20musb_stage0_irq 803: DISCONNECT (a_host) as Host, devctl 19hub 1-0:1.0: rpm_resume flags 0x4usb usb1: rpm_resume flags 0x0usb usb1: rpm_resume returns 1hub 1-0:1.0: rpm_resume returns 0musb_hub_control 343: port status 00010100musb_hub_control 277: clear feature 16usb 1-1: USB disconnect, address 2musb_hub_control 343: port status 00000100musb_hub_control 343: port status 00000100musb_hub_control 343: port status 00000100musb_hub_control 343: port status 00000100musb_hub_control 343: port status 00000100hub 1-0:1.0: rpm_suspend flags 0x0hub 1-0:1.0: rpm_suspend returns 0ti81xx_interrupt 876: usbintr (10) epintr(0)musb_interrupt 1643: ** IRQ host usb0010 tx0000 rx0000musb_stage0_irq 494: <== Power=e0, DevCtl=3d, int_usb=0x10musb_stage0_irq 796: CONNECT (a_host) devctl 3dhub 1-0:1.0: rpm_resume flags 0x4usb usb1: rpm_resume flags 0x0usb usb1: rpm_resume returns 1hub 1-0:1.0: rpm_resume returns 0musb_hub_control 343: port status 00010301musb_hub_control 277: clear feature 16musb_hub_control 343: port status 00000301musb_hub_control 343: port status 00000301musb_hub_control 343: port status 00000301musb_hub_control 343: port status 00000301musb_hub_control 343: port status 00000301musb_hub_control 417: set feature 4musb_port_reset 158: root port reset stoppedmusb_hub_control 343: port status 00120303musb_hub_control 277: clear feature 20usb 1-1: new low speed USB device using musb-hdrc and address 3musb_start_urb 276: qh e1ddc0c0 urb ef9c9e80 dev0 ep0out, hw_ep 0, e1ddc100/8musb_ep_program 749: –> hw0 urb ef9c9e80 spd1 dev0 ep0out h_addr00 h_port00 bytes 8musb_write_fifo 273: TX ep0 fifo f080c420 count 8 buf e1ddc100musb_start_urb 314: Start TX0 pioti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0200, qh e1ddc0c0, count 0, urb ef9c9e80, stage 1musb_h_ep0_continue 1041: start IN-DATAti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc0c0, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0201, qh e1ddc0c0, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc0c0, count 2, urb ef9c9e80, stage 2musb_h_ep0_irq 1189: ep0 STATUS, csr 0842ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0800, qh e1ddc0c0, count 0, urb ef9c9e80, stage 4musb_giveback 348: complete ef9c9e80 usb_api_blocking_completion+0x0/0x20 (0), dev0 ep0in, 18/64musb_hub_control 417: set feature 4musb_port_reset 158: root port reset stoppedmusb_hub_control 343: port status 00120303musb_hub_control 277: clear feature 20musb_start_urb 276: qh e1ddc100 urb ef9c9e80 dev0 ep0out, hw_ep 0, e1ddc080/8musb_ep_program 749: –> hw0 urb ef9c9e80 spd1 dev0 ep0out h_addr00 h_port00 bytes 8musb_write_fifo 273: TX ep0 fifo f080c420 count 8 buf e1ddc080musb_start_urb 314: Start TX0 pioti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0200, qh e1ddc100, count 0, urb ef9c9e80, stage 1musb_h_ep0_continue 1038: start no-DATAmusb_h_ep0_irq 1189: ep0 STATUS, csr 0860ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0841, qh e1ddc100, count 0, urb ef9c9e80, stage 4musb_giveback 348: complete ef9c9e80 usb_api_blocking_completion+0x0/0x20 (0), dev0 ep0out, 0/0musb_start_urb 276: qh e1ddc0c0 urb ef9c9e80 dev3 ep0out, hw_ep 0, e1ddc100/8musb_ep_program 749: –> hw0 urb ef9c9e80 spd1 dev3 ep0out h_addr00 h_port00 bytes 8musb_write_fifo 273: TX ep0 fifo f080c420 count 8 buf e1ddc100musb_start_urb 314: Start TX0 pioti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0200, qh e1ddc0c0, count 0, urb ef9c9e80, stage 1musb_h_ep0_continue 1041: start IN-DATAti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc0c0, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0201, qh e1ddc0c0, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc0c0, count 2, urb ef9c9e80, stage 2musb_h_ep0_irq 1189: ep0 STATUS, csr 0842ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0800, qh e1ddc0c0, count 0, urb ef9c9e80, stage 4musb_giveback 348: complete ef9c9e80 usb_api_blocking_completion+0x0/0x20 (0), dev3 ep0in, 18/18usb 1-1: rpm_resume flags 0x0usb 1-1: rpm_resume returns -11musb_start_urb 276: qh e1ddc040 urb ef9c9e80 dev3 ep0out, hw_ep 0, e1ddc0c0/8musb_ep_program 749: –> hw0 urb ef9c9e80 spd1 dev3 ep0out h_addr00 h_port00 bytes 8musb_write_fifo 273: TX ep0 fifo f080c420 count 8 buf e1ddc0c0musb_start_urb 314: Start TX0 pioti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0200, qh e1ddc040, count 0, urb ef9c9e80, stage 1musb_h_ep0_continue 1041: start IN-DATAti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc040, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0201, qh e1ddc040, count 1, urb ef9c9e80, stage 2musb_h_ep0_irq 1189: ep0 STATUS, csr 0842ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0800, qh e1ddc040, count 0, urb ef9c9e80, stage 4musb_giveback 348: complete ef9c9e80 usb_api_blocking_completion+0x0/0x20 (0), dev3 ep0in, 9/9musb_start_urb 276: qh e1ddc140 urb ef9c9e80 dev3 ep0out, hw_ep 0, e1ddc040/8musb_ep_program 749: –> hw0 urb ef9c9e80 spd1 dev3 ep0out h_addr00 h_port00 bytes 8musb_write_fifo 273: TX ep0 fifo f080c420 count 8 buf e1ddc040musb_start_urb 314: Start TX0 pioti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0200, qh e1ddc140, count 0, urb ef9c9e80, stage 1musb_h_ep0_continue 1041: start IN-DATAti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc140, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0201, qh e1ddc140, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc140, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0201, qh e1ddc140, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc140, count 2, urb ef9c9e80, stage 2musb_h_ep0_irq 1189: ep0 STATUS, csr 0842ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0800, qh e1ddc140, count 0, urb ef9c9e80, stage 4musb_giveback 348: complete ef9c9e80 usb_api_blocking_completion+0x0/0x20 (0), dev3 ep0in, 34/34musb_start_urb 276: qh e1ddc180 urb ef9c9e80 dev3 ep0out, hw_ep 0, e1ddc100/8musb_ep_program 749: –> hw0 urb ef9c9e80 spd1 dev3 ep0out h_addr00 h_port00 bytes 8musb_write_fifo 273: TX ep0 fifo f080c420 count 8 buf e1ddc100musb_start_urb 314: Start TX0 pioti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0200, qh e1ddc180, count 0, urb ef9c9e80, stage 1musb_h_ep0_continue 1041: start IN-DATAti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc180, count 4, urb ef9c9e80, stage 2musb_h_ep0_irq 1189: ep0 STATUS, csr 0842ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0800, qh e1ddc180, count 0, urb ef9c9e80, stage 4musb_giveback 348: complete ef9c9e80 usb_api_blocking_completion+0x0/0x20 (0), dev3 ep0in, 4/255musb_start_urb 276: qh e1ddc180 urb ef9c9e80 dev3 ep0out, hw_ep 0, e1ddc100/8musb_ep_program 749: –> hw0 urb ef9c9e80 spd1 dev3 ep0out h_addr00 h_port00 bytes 8musb_write_fifo 273: TX ep0 fifo f080c420 count 8 buf e1ddc100musb_start_urb 314: Start TX0 pioti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0200, qh e1ddc180, count 0, urb ef9c9e80, stage 1musb_h_ep0_continue 1041: start IN-DATAti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc180, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0201, qh e1ddc180, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc180, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0201, qh e1ddc180, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc180, count 4, urb ef9c9e80, stage 2musb_h_ep0_irq 1189: ep0 STATUS, csr 0842ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0800, qh e1ddc180, count 0, urb ef9c9e80, stage 4musb_giveback 348: complete ef9c9e80 usb_api_blocking_completion+0x0/0x20 (0), dev3 ep0in, 36/255musb_start_urb 276: qh e1ddc1c0 urb ef9c9e80 dev3 ep0out, hw_ep 0, e1ddc180/8musb_ep_program 749: –> hw0 urb ef9c9e80 spd1 dev3 ep0out h_addr00 h_port00 bytes 8musb_write_fifo 273: TX ep0 fifo f080c420 count 8 buf e1ddc180musb_start_urb 314: Start TX0 pioti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0200, qh e1ddc1c0, count 0, urb ef9c9e80, stage 1musb_h_ep0_continue 1041: start IN-DATAti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0001, qh e1ddc1c0, count 8, urb ef9c9e80, stage 2ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0201, qh e1ddc1c0, count 6, urb ef9c9e80, stage 2musb_h_ep0_irq 1189: ep0 STATUS, csr 0842ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0800, qh e1ddc1c0, count 0, urb ef9c9e80, stage 4musb_giveback 348: complete ef9c9e80 usb_api_blocking_completion+0x0/0x20 (0), dev3 ep0in, 14/255usb 1-1: New USB device found, idVendor=093a, idProduct=2510usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0usb 1-1: Product: USB Optical Mouseusb 1-1: Manufacturer: PixArtusb 1-1: rpm_resume flags 0x4usb 1-1: rpm_resume returns 1musb_start_urb 276: qh e1ddc400 urb ef9c9d00 dev3 ep0out, hw_ep 0, e1ddc3c0/8musb_ep_program 749: –> hw0 urb ef9c9d00 spd1 dev3 ep0out h_addr00 h_port00 bytes 8musb_write_fifo 273: TX ep0 fifo f080c420 count 8 buf e1ddc3c0musb_start_urb 314: Start TX0 pioti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0200, qh e1ddc400, count 0, urb ef9c9d00, stage 1musb_h_ep0_continue 1038: start no-DATAmusb_h_ep0_irq 1189: ep0 STATUS, csr 0860ti81xx_interrupt 876: usbintr (0) epintr(1)musb_interrupt 1643: ** IRQ host usb0000 tx0001 rx0000musb_h_ep0_irq 1104: <== csr0 0841, qh e1ddc400, count 0, urb ef9c9d00, stage 4musb_giveback 348: complete ef9c9d00 usb_api_blocking_completion+0x0/0x20 (0), dev3 ep0out, 0/0hub 1-0:1.0: rpm_resume flags 0x4hub 1-0:1.0: rpm_resume returns 1musb_hub_control 343: port status 00020303musb_hub_control 277: clear feature 17hub 1-0:1.0: rpm_suspend flags 0x0hub 1-0:1.0: rpm_suspend returns 0
zhi xiong:
回复 Zhenlong Tong:
请问一下,加载上层设备驱动后就不会断开连接,这个是如何进行操作?
thx~