Hi Marek, On Mon, 15 Jul 2019 at 17:49, Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> wrote: > > Hi Anand, > > On 2019-06-28 17:32, Anand Moon wrote: > > Hi Marek, > > > > On Thu, 27 Jun 2019 at 12:47, Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> wrote: > >> Dear All, > >> > >> Commit d8c80bb3b55b ("phy: exynos5-usbdrd: Calibrate LOS levels for > >> exynos5420/5800") added support for Exynos5 USB3.0 DRD PHY calibration, > >> what enabled proper Super-Speed enumeration of USB3.0 devices connected > >> to various Exynos5 SoCs. After some time it turned out that the mentioned > >> patch worked a bit by pure luck and covered only one use case (fresh > >> boot with all drivers compiled into the kernel). > >> > >> If drivers were compiled as modules, due to timing issue, it worked only > >> if XHCI-plat driver was loaded before the DWC3 driver: > >> https://patchwork.kernel.org/patch/10773947/ > >> > >> Also during the system suspend/resume cycle the calibration was not > >> performed at the proper time and resulted in switching USB 3.0 devices to > >> USB 2.0 high-speed compatibility mode. > >> > >> This patch addresses all those issues. Exynos5 USB3.0 DRD PHY calibration > >> is moved to the Exynos5 specific variant of the XHCI-plat driver, which > >> takes care of proper PHY calibration after XHCI core reset. This fixes > >> all known use cases (XHCI driver compiled as module and loaded on demand > >> as well as during system suspend/resume cycle). > >> > >> Here are the logs taken on Exynos5422-based Odroid HC1 board (with USB3.0 > >> RTL8153 LAN and USB3.0 JMicron SATA-USB bridge): > >> > > Thanks for these patch. I have tested on linux-next-20190626 > > > > *But hotpluging of usb device is not working on usb ports.* > > Well, this is a bit poor report. I've checked various USB 3.0 devices > with my XU4 board and didn't observe any issue with hotplug or > enumeration. Could you describe a bit more how to trigger the issue? > Sorry for the noise one of my usb 3.0 port on XU4 is not working somehow. I will re-test these patches again on current next and share my result. > > These patches fix the suspend/resume for XU4. > > But their is two issue. > > 1> On warm boot fails to reset the usb hub > > ------------------------------------------------------------------ > > [ 7.019896] usb 4-1.1: new SuperSpeed Gen 1 USB device number 3 > > using xhci-hcd > > [ 7.063032] usb 4-1.1: New USB device found, idVendor=152d, > > idProduct=0578, bcdDevice=63.01 > > [ 7.070484] usb 4-1.1: New USB device strings: Mfr=1, Product=2, > > SerialNumber=3 > > [ 7.077438] usb 4-1.1: Product: JMS567 > > [ 7.081749] usb 4-1.1: Manufacturer: JMicron > > [ 7.086028] usb 4-1.1: SerialNumber: DB12345678A3 > > [ 7.151572] scsi host0: uas > > [ 7.162765] scsi 0:0:0:0: Direct-Access KINGSTON SA400S37120G > > 6301 PQ: 0 ANSI: 6 > > [ 7.176231] sd 0:0:0:0: [sda] 234441648 512-byte logical blocks: > > (120 GB/112 GiB) > > [ 7.177550] sd 0:0:0:0: Attached scsi generic sg0 type 0 > > [ 7.183547] sd 0:0:0:0: [sda] 4096-byte physical blocks > > [ 7.201150] sd 0:0:0:0: [sda] Write Protect is off > > [ 7.204977] sd 0:0:0:0: [sda] Disabling FUA > > [ 7.209476] sd 0:0:0:0: [sda] Write cache: enabled, read cache: > > enabled, doesn't support DPO or FUA > > [ 7.219411] sd 0:0:0:0: [sda] Optimal transfer size 33553920 bytes > > not a multiple of physical block size (4096 bytes) > > [ 7.713603] sda: sda1 > > [ 7.736338] sd 0:0:0:0: [sda] Attached SCSI disk > > [ 11.372630] xhci-hcd exynos5-dwc3-xhci.5.auto: Timeout while > > waiting for setup device command > > [ 16.650624] xhci-hcd exynos5-dwc3-xhci.5.auto: Timeout while > > waiting for setup device command > > [ 16.870255] usb 6-1: device not accepting address 2, error -62 > > [ 22.171093] xhci-hcd exynos5-dwc3-xhci.5.auto: Timeout while > > waiting for setup device command > > [ 27.451021] xhci-hcd exynos5-dwc3-xhci.5.auto: Timeout while > > waiting for setup device command > > [ 27.669956] usb 6-1: device not accepting address 3, error -62 > > [ 27.711656] usb usb6-port1: attempt power cycle > > > > some how 12500000.phy do not de-register when we perform reboot. > > Sorry, but this is not related to PHY at all. If I get your log right, > you have external USB3->SATA bridge which fails to enumerate in your > case. Does it work right with other boards or vendor kernels? You > connect it to the XU4 onboard USB3.0 hub, which cannot be programmed or > controlled in any way, so I doubt we can do anything to fix your issue. > Sorry this issue is related to realtek ethernet driver r-8153 failed to register again after reboot. It's a know issue for long time as far as I know, I will double check this again. > > > [ 120.260813] shutdown[1]: All loop devices detached. > > [ 120.308592] sd 0:0:0:0: [sda] Synchronizing SCSI cache > > [ 120.425890] usb 4-1.1: reset SuperSpeed Gen 1 USB device number 3 > > using xhci-hcd > > [ 120.500085] wake enabled for irq 155 > > [ 120.592335] reboot: Restartin > > > > Attach are the reboot logs. > > [0] https://pastebin.com/a3d712q4 > > > > Second issue is the unbind on usb dwc3 fails. > > > > [root@archl-xu4m ~]# cd /sys/bus/platform/drivers/exynos5_usb3drd_phy/ > > [root@archl-xu4m exynos5_usb3drd_phy]# ls -la > > total 0 > > drwxr-xr-x 2 root root 0 Jun 28 14:08 . > > drwxr-xr-x 131 root root 0 Jun 28 14:08 .. > > lrwxrwxrwx 1 root root 0 Jun 28 14:11 12100000.phy -> > > ../../../../devices/platform/soc/12100000.phy > > lrwxrwxrwx 1 root root 0 Jun 28 14:11 12500000.phy -> > > ../../../../devices/platform/soc/12500000.phy > > --w------- 1 root root 4096 Jun 28 14:11 bind > > --w------- 1 root root 4096 Jun 28 14:08 uevent > > --w------- 1 root root 4096 Jun 28 14:11 unbind > > [root@archl-xu4m exynos5_usb3drd_phy]# > > [root@archl-xu4m exynos5_usb3drd_phy]# > > [root@archl-xu4m exynos5_usb3drd_phy]# echo 12500000.phy > unbind > > This is not dwc3 unbind, but USB3.0 DRD PHY unbind. This is somehow > expected as unbinding on fly a device, which provides resources to other > driver (in this case USB phys) causes various issues due to the Linux > kernel frameworks design. Please don't try such things, it won't work. > Exynos DRD PHY driver should be marked with suppress_bind flag to hide > bind/unbind attributes. > Ok thanks for your inputs and suggestion. > Best regards > -- > Marek Szyprowski, PhD > Samsung R&D Institute Poland > Best Regards -Anand