Hi Krzysztof, Thanks for this patch. Please add my Tested-by: Anand Moon <linux.amoon@xxxxxxxxx> [snip] Could you integrate below small changes into this patch. with these below changes suspend and resume work correctly at my end. [1] XU4_suspendresume.patch As per S2MPS11B PMIC 1.2.1 Regulator (Features) Fix the min max value for *Buck7* and *Buck8* -- Buck7 (VDD_1.0V_LDO) 1.5 A (1.2 V to 1.5 V, 12.5 mV step, default on 1.35 V) -- Buck8 (VDD_1.8V_LDO) 2.5 A (1.8 V to 2.1 V, 12.5 mV step, default on 2.0 V) Also add suspend-off for *Buck9* Buck9 internally controls the power of USB hub. Adding suspend the this node help proper reset of USB hub on Odroid XU4 / HC1/ XU3 during suspend and resume. Below it the logs from my testing. [2] https://pastebin.com/pRJJmWL6 Best Regards -Anand
[root@archl-xu4e ~]# rtcwake -d /dev/rtc0 -m mem -s 10 rtcwake: assuming RTC uses UTC ... rtcwake: wakeup from "mem" using /dev/rtc0 at Sun Jun 23 14:29:56 2019 [ 72.707852] PM: suspend entry (deep) [ 72.712727] Filesystems sync: 0.002 seconds [ 72.722108] Freezing user space processes ... (elapsed 0.002 seconds) done. [ 72.730550] OOM killer disabled. [ 72.733462] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done. [ 72.815847] sd 0:0:0:0: [sda] Synchronizing SCSI cache [ 72.971552] wake enabled for irq 151 [ 73.007942] wake enabled for irq 155 [ 73.128081] samsung-pinctrl 13400000.pinctrl: Setting external wakeup interrupt mask: 0xffffffe7 [ 73.146535] Disabling non-boot CPUs ... [ 73.225374] s3c2410-wdt 101d0000.watchdog: watchdog disabled [ 73.229930] usb usb1: root hub lost power or was reset [ 73.299725] usb usb2: root hub lost power or was reset [ 73.304474] wake disabled for irq 155 [ 73.314064] wake disabled for irq 151 [ 73.331117] exynos-tmu 10060000.tmu: More trip points than supported by this TMU. [ 73.337297] exynos-tmu 10060000.tmu: 2 trip points should be configured in polling mode. [ 73.345343] exynos-tmu 10064000.tmu: More trip points than supported by this TMU. [ 73.352807] exynos-tmu 10064000.tmu: 2 trip points should be configured in polling mode. [ 73.360916] exynos-tmu 10068000.tmu: More trip points than supported by this TMU. [ 73.368295] exynos-tmu 10068000.tmu: 2 trip points should be configured in polling mode. [ 73.376429] exynos-tmu 1006c000.tmu: More trip points than supported by this TMU. [ 73.383742] exynos-tmu 1006c000.tmu: 2 trip points should be configured in polling mode. [ 73.394345] usb usb3: root hub lost power or was reset [ 73.394704] s3c-rtc 101e0000.rtc: rtc disabled, re-enabling [ 73.394840] usb usb5: root hub lost power or was reset [ 73.394864] usb usb6: root hub lost power or was reset [ 73.398063] usb usb4: root hub lost power or was reset [ 73.806876] usb 4-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hcd [ 73.986504] usb 3-1: reset high-speed USB device number 2 using xhci-hcd [ 74.026814] usb 5-1: reset high-speed USB device number 2 using xhci-hcd [ 74.266364] usb 4-1.1: reset SuperSpeed Gen 1 USB device number 3 using xhci-hcd [ 74.988689] OOM killer enabled. [ 74.990372] Restarting tasks ... done. [ 74.997529] PM: suspend exit [ 75.014009] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63) [root@archl-xu4e ~]# [ 75.243019] mmc_host mmc0: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0) [ 75.255929] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 52000000Hz, actual 50000000HZ div = 0) [ 75.290096] mmc_host mmc0: Bus speed (slot 0) = 400000000Hz (slot req 200000000Hz, actual 200000000HZ div = 1) [root@archl-xu4e ~]# rtcwake -d /dev/rtc0 -m mem -s 10 rtcwake: assuming RTC uses UTC ... rtcwake: wakeup from "mem" using /dev/rtc0 at Sun Jun 23 14:30:20 2019 [ 86.308500] PM: suspend entry (deep) [ 86.311962] Filesystems sync: 0.001 seconds [ 86.320781] Freezing user space processes ... (elapsed 0.002 seconds) done. [ 86.328542] OOM killer disabled. [ 86.331644] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done. [ 86.435700] sd 0:0:0:0: [sda] Synchronizing SCSI cache [ 86.591293] wake enabled for irq 151 [ 86.626989] wake enabled for irq 155 [ 86.747140] samsung-pinctrl 13400000.pinctrl: Setting external wakeup interrupt mask: 0xffffffe7 [ 86.765605] Disabling non-boot CPUs ... [ 86.841073] s3c2410-wdt 101d0000.watchdog: watchdog disabled [ 86.845648] usb usb1: root hub lost power or was reset [ 86.919564] usb usb2: root hub lost power or was reset [ 86.924314] wake disabled for irq 155 [ 86.933852] wake disabled for irq 151 [ 86.950827] exynos-tmu 10060000.tmu: More trip points than supported by this TMU. [ 86.957003] exynos-tmu 10060000.tmu: 2 trip points should be configured in polling mode. [ 86.965055] exynos-tmu 10064000.tmu: More trip points than supported by this TMU. [ 86.972496] exynos-tmu 10064000.tmu: 2 trip points should be configured in polling mode. [ 86.980632] exynos-tmu 10068000.tmu: More trip points than supported by this TMU. [ 86.988014] exynos-tmu 10068000.tmu: 2 trip points should be configured in polling mode. [ 86.996148] exynos-tmu 1006c000.tmu: More trip points than supported by this TMU. [ 87.003452] exynos-tmu 1006c000.tmu: 2 trip points should be configured in polling mode. [ 87.013926] usb usb3: root hub lost power or was reset [ 87.014295] s3c-rtc 101e0000.rtc: rtc disabled, re-enabling [ 87.014473] usb usb5: root hub lost power or was reset [ 87.014498] usb usb6: root hub lost power or was reset [ 87.017644] usb usb4: root hub lost power or was reset [ 87.427075] usb 4-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hcd [ 87.606386] usb 3-1: reset high-speed USB device number 2 using xhci-hcd [ 87.646461] usb 5-1: reset high-speed USB device number 2 using xhci-hcd [ 87.886242] usb 4-1.1: reset SuperSpeed Gen 1 USB device number 3 using xhci-hcd [ 88.607881] OOM killer enabled. [ 88.609562] Restarting tasks ... done. [ 88.614340] PM: suspend exit [ 88.632953] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63) [root@archl-xu4e ~]# [ 88.896900] mmc_host mmc0: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0) [ 88.912970] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 52000000Hz, actual 50000000HZ div = 0) [ 88.929810] mmc_host mmc0: Bus speed (slot 0) = 400000000Hz (slot req 200000000Hz, actual 200000000HZ div = 1) [root@archl-xu4e ~]# rtcwake -d /dev/rtc0 -m mem -s 10 rtcwake: assuming RTC uses UTC ... rtcwake: wakeup from "mem" using /dev/rtc0 at Sun Jun 23 14:30:41 2019 [ 97.024433] PM: suspend entry (deep) [ 97.030395] Filesystems sync: 0.003 seconds [ 97.036715] Freezing user space processes ... (elapsed 0.002 seconds) done. [ 97.044507] OOM killer disabled. [ 97.047753] Freezing remaining freezable tasks ... (elapsed 0.002 seconds) done. [ 97.105552] sd 0:0:0:0: [sda] Synchronizing SCSI cache [ 97.261608] wake enabled for irq 151 [ 97.299424] wake enabled for irq 155 [ 97.415885] samsung-pinctrl 13400000.pinctrl: Setting external wakeup interrupt mask: 0xffffffe7 [ 97.433150] Disabling non-boot CPUs ... [ 97.526880] s3c2410-wdt 101d0000.watchdog: watchdog disabled [ 97.531343] usb usb1: root hub lost power or was reset [ 97.609426] usb usb2: root hub lost power or was reset [ 97.614169] wake disabled for irq 155 [ 97.623676] wake disabled for irq 151 [ 97.640212] exynos-tmu 10060000.tmu: More trip points than supported by this TMU. [ 97.646403] exynos-tmu 10060000.tmu: 2 trip points should be configured in polling mode. [ 97.654436] exynos-tmu 10064000.tmu: More trip points than supported by this TMU. [ 97.661883] exynos-tmu 10064000.tmu: 2 trip points should be configured in polling mode. [ 97.670005] exynos-tmu 10068000.tmu: More trip points than supported by this TMU. [ 97.677395] exynos-tmu 10068000.tmu: 2 trip points should be configured in polling mode. [ 97.685522] exynos-tmu 1006c000.tmu: More trip points than supported by this TMU. [ 97.692834] exynos-tmu 1006c000.tmu: 2 trip points should be configured in polling mode. [ 97.703438] usb usb3: root hub lost power or was reset [ 97.703790] s3c-rtc 101e0000.rtc: rtc disabled, re-enabling [ 97.707156] usb usb4: root hub lost power or was reset [ 97.719084] usb usb5: root hub lost power or was reset [ 97.722931] usb usb6: root hub lost power or was reset [ 98.116558] usb 4-1: reset SuperSpeed Gen 1 USB device number 2 using xhci-hcd [ 98.296240] usb 3-1: reset high-speed USB device number 2 using xhci-hcd [ 98.336318] usb 5-1: reset high-speed USB device number 2 using xhci-hcd [ 98.576097] usb 4-1.1: reset SuperSpeed Gen 1 USB device number 3 using xhci-hcd [ 99.300281] OOM killer enabled. [ 99.301995] Restarting tasks ... done. [ 99.309311] PM: suspend exit [root@archl-xu4e ~]# [ 99.326729] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63) [ 99.563622] mmc_host mmc0: Bus speed (slot 0) = 200000000Hz (slot req 200000000Hz, actual 200000000HZ div = 0) [ 99.577778] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 52000000Hz, actual 50000000HZ div = 0) [ 99.587818] mmc_host mmc0: Bus speed (slot 0) = 400000000Hz (slot req 200000000Hz, actual 200000000HZ div = 1) [root@archl-xu4e ~]# lsusb -t /: Bus 06.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M /: Bus 05.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M |__ Port 1: Dev 2, If 0, Class=Vendor Specific Class, Driver=r8152, 480M /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 5000M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/2p, 5000M |__ Port 1: Dev 3, If 0, Class=Mass Storage, Driver=uas, 5000M /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci-hcd/1p, 480M |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/2p, 480M /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=exynos-ohci/3p, 12M /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=exynos-ehci/3p, 480M
Attachment:
XU4_suspendresume.patch
Description: Binary data