Dear All, I'm using iMX6q for my application. It uses the touchscreen IC connected via USB port (Host port 1). The touchscreen operates with low-speed. Board: Wandboard rev1b / some custom board SW: Mainline Linux 4.13 Problem: I do observe that the USB transfers are truncated - for example "Get Configuration Descriptor", which length is 34B only gets 16B from the device. I do get the "Invalid PID sequence" error and despite the DATA1 Packet received by host - the EHCI controller is not sending ACK. The problem is not observed when I plug the touchscreen device via USB 2.0 HUB. (iMX6q -> USB 2.0 HUB -> touchscreen) Also, the problem is not present on different EHCI implementations - namely Intel or Synopsis (Exynos 5422). Please find below some data dump from EHCI's qTD (Queue Element Transfer Descriptor): [ 1.987479] ci_hdrc ci_hdrc.0: submit_async 1 urb edfe6e80 ep0out len 178, qtd ef061180 [qh edfe6780] [ 1.988781] ehci urb: IRQ status: 0x1 INTREN: 0x37 hrt: 0x80 [ 1.988795] scan_async: urb qh: 0xedfe6780 qtd_list: 0xef0610f8 [ 1.988802] qh_completions: urb token 0x80000e00 0 178 [ 1.988809] qh_completions: urb token 0x920d08 0 178 ^--- here we do have still active "status" 9x8 [ 1.988815] qh_completions: urb token 0x8c00 32 178 ^--- here the IOC bit is set (0x8) [ 1.988828] ci_hdrc ci_hdrc.0: ehci_urb_done 1 urb edfe6e80 ep0in status 0 len 32/178 The above code is executed after receiving "USBINT" interrupt - according to EHCI controller everything went fine [ 1.992192] ci_hdrc ci_hdrc.0: submit_async 1 urb edfe6e80 ep0out len 178, qtd ef061060 [qh edfe6780] [ 1.995785] ehci urb: IRQ status: 0x1 INTREN: 0x37 hrt: 0x80 [ 1.995804] scan_async: urb qh: 0xedfe6780 qtd_list: 0xef0611b8 [ 1.995811] qh_completions: urb token 0x80000e00 0 178 ^--- setup transaction [ 1.995819] qh_completions: urb token 0xd00 0 178 ^--- here we do have 0x0 status [ 1.995825] qh_completions: urb token 0x8c00 178 178 ^--- here we do ask for interrupt when done [ 1.995840] ci_hdrc ci_hdrc.0: ehci_urb_done 1 urb edfe6e80 ep0in status 0 len 178/178 The most _strange_ issue here is the lack of _any_ error indicated by the HOST driver. All transmissions end with USBINT set. No error interrupt present. This corrupted data (with smaller size than expected) is then passed to upper layers, causing subtle errors. Have anybody had similar problem? Any hints on how to proceed? The problem has been described in detail (including screen shots from USB analyzer + some further investigations) here: https://community.nxp.com/thread/462409 Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@xxxxxxx -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html