Re: [PATCH] usb: dwc3: Fix the USB 3.0 hub detection bug after warm boot

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello

On Fri, Sep 15, 2017 at 09:01:13AM +0000, gustavo panizzo wrote:
Hello

On Thu, Sep 07, 2017 at 01:51:31PM +0300, Felipe Balbi wrote:

Hi,

gustavo panizzo <gfa@xxxxxxxxxxxx> writes:
---
drivers/usb/dwc3/core.c | 33 +++++++++++++++++++++++++++++++++
1 file changed, 33 insertions(+)

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 326b302fc440..f92dfe213d89 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -1259,6 +1259,38 @@ static int dwc3_probe(struct platform_device
*pdev)
      return ret;
}

+static void dwc3_shutdown(struct platform_device *pdev)
+{
+       struct dwc3     *dwc = platform_get_drvdata(pdev);
+       struct resource *res = platform_get_resource(pdev,
IORESOURCE_MEM, 0);
+
+       pm_runtime_get_sync(&pdev->dev);
+       /*
+        * restore res->start back to its original value so that, in case
the
+        * probe is deferred, we don't end up getting error in request
the
+        * memory region the next time probe is called.
+        */
+       res->start -= DWC3_GLOBALS_REGS_START;
+
+       dwc3_debugfs_exit(dwc);
+       dwc3_core_exit_mode(dwc);
+       dwc3_event_buffers_cleanup(dwc);


What about dwc3_event_buffers_cleanup? should I remove it from
dwc3_shutdown()?
It is already in dwc3_core_exit()

I think so. We should avoid duplicate code.

+       dwc3_free_event_buffers(dwc);
+
+       usb_phy_set_suspend(dwc->usb2_phy, 1);
+       usb_phy_set_suspend(dwc->usb3_phy, 1);
+
+       phy_power_off(dwc->usb2_generic_phy);
+       phy_power_off(dwc->usb3_generic_phy);


We've done these in dwc3_core_exit().

This is the patch after testing on a Odroid XU4, on top of linux-next
964bcc1b4f57028d56dace7d9bc5924f2eb43f36 which translates to 4.13.0-rc1-next-20170717+
I tested this patch for a week without problems with heavy USB and NIC usage.
Please consider merging it

Author: Brian Kim <brian.kim@xxxxxxxxxxxxxx>
Date:   Wed Jul 12 11:26:55 2017 +0800

  usb: dwc3: Fix the USB 3.0 hub detection bug after warm boot
  The dwc3 could not release resources when the module is built-in
  because this module does not have shutdown method. This causes the USB
  3.0 hub is not able to detect after warm boot.
  Original patch by Brian Kim, updated and submitted upstream by gustavo
  panizzo.
  Also see https://bugs.debian.org/843448
  Signed-off-by: Brian Kim <brian.kim@xxxxxxxxxxxxxx>
  Signed-off-by: gustavo panizzo <gfa@xxxxxxxxxxxx>

diff --git a/drivers/usb/dwc3/core.c b/drivers/usb/dwc3/core.c
index 326b302fc440..09de37d47ee7 100644
--- a/drivers/usb/dwc3/core.c
+++ b/drivers/usb/dwc3/core.c
@@ -1259,6 +1259,32 @@ static int dwc3_probe(struct platform_device *pdev)
      	return ret;
}

+static void dwc3_shutdown(struct platform_device *pdev)
+{
+       struct dwc3     *dwc = platform_get_drvdata(pdev);
+       struct resource *res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
+
+       pm_runtime_get_sync(&pdev->dev);
+       /*
+        * restore res->start back to its original value so that, in case the
+        * probe is deferred, we don't end up getting error in request the
+        * memory region the next time probe is called.
+        */
+       res->start -= DWC3_GLOBALS_REGS_START;
+
+       dwc3_debugfs_exit(dwc);
+       dwc3_core_exit_mode(dwc);
+       dwc3_event_buffers_cleanup(dwc);
+       dwc3_free_event_buffers(dwc);
+
+       dwc3_core_exit(dwc);
+       dwc3_ulpi_exit(dwc);
+
+       pm_runtime_put_sync(&pdev->dev);
+       pm_runtime_allow(&pdev->dev);
+       pm_runtime_disable(&pdev->dev);
+}
+
static int dwc3_remove(struct platform_device *pdev)
{
      	struct dwc3     *dwc = platform_get_drvdata(pdev);
@@ -1488,6 +1514,7 @@ MODULE_DEVICE_TABLE(acpi, dwc3_acpi_match);
static struct platform_driver dwc3_driver = {
       .probe          = dwc3_probe,
       .remove         = dwc3_remove,
+	.shutdown	= dwc3_shutdown,
       .driver         = {
               .name   = "dwc3",
               .of_match_table = of_match_ptr(of_dwc3_match),

Patch applies cleanly on top of c6be5a0e3cebc145127d46a58350e05d2bcf6323 from linux-next
Can you _please_ merge it?

why are you upset? You didn't do the changes I requested until now. It's

I'm not upset

too late for v4.14 merge window and you didn't even send this as a
proper patch. I also have no evidence that you've been testing mainline
kernel, the commits you pointed me to are against a v4.9 vendor kernel.

the commit i sent was tested, and is still running, on top linux-next
964bcc1b4f57028d56dace7d9bc5924f2eb43f36, which gives an uname -r
4.13.0-rc1-next-20170717+



Test this against a vanilla tree (v4.13 was tagged days ago) and give me
logs showing the problem without your commit.

the patch does not work on top of 4.13.0 :(

could you draft a patch i can test?

thanks


dmesg on top of 4.13.0

[    0.000000] Booting Linux on physical CPU 0x100
[    0.000000] random: get_random_bytes called from start_kernel+0x44/0x460 with crng_init=0
[    0.000000] Linux version 4.13.0 (root@odroid) (gcc version 6.3.0 20170516 (Debian 6.3.0-18)) #4 SMP Thu Sep 14 21:26:18 UTC 2017
[    0.000000] CPU: ARMv7 Processor [410fc073] revision 3 (ARMv7), cr=30c5387d
[    0.000000] CPU: div instructions available: patching division code
[    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] OF: fdt: Machine model: Hardkernel Odroid XU4
[    0.000000] Memory policy: Data cache writealloc
[    0.000000] efi: Getting EFI parameters from FDT:
[    0.000000] efi: UEFI not found.
[    0.000000] cma: Reserved 16 MiB at 0x00000000bd800000
[    0.000000] Samsung CPU ID: 0xe5422001
[    0.000000] On node 0 totalpages: 518656
[    0.000000] free_area_init_node: node 0, pgdat c10eca40, node_mem_map eee1c000
[    0.000000]   DMA zone: 1728 pages used for memmap
[    0.000000]   DMA zone: 0 pages reserved
[    0.000000]   DMA zone: 196608 pages, LIFO batch:31
[    0.000000]   HighMem zone: 322048 pages, LIFO batch:31
[    0.000000] Running under secure firmware.
[    0.000000] percpu: Embedded 17 pages/cpu @eed63000 s37388 r8192 d24052 u69632
[    0.000000] pcpu-alloc: s37388 r8192 d24052 u69632 alloc=17*4096
[ 0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 [0] 4 [0] 5 [0] 6 [0] 7 [ 0.000000] Built 1 zonelists in Zone order, mobility grouping on. Total pages: 516928
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-4.13.0 root=UUID=e324fffe-f424-4409-952b-c3d1dcf5d4e4 ro quiet
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 2005484K/2074624K available (8192K kernel code, 1055K rwdata, 2368K rodata, 2048K init, 340K bss, 52756K reserved, 16384K cma-reserved, 1271808K highmem)
[    0.000000] Virtual kernel memory layout:
                 vector  : 0xffff0000 - 0xffff1000   (   4 kB)
                 fixmap  : 0xffc00000 - 0xfff00000   (3072 kB)
                 vmalloc : 0xf0800000 - 0xff800000   ( 240 MB)
                 lowmem  : 0xc0000000 - 0xf0000000   ( 768 MB)
                 pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
                 modules : 0xbf000000 - 0xbfe00000   (  14 MB)
                   .text : 0xc0008000 - 0xc0a00000   (10208 kB)
                   .init : 0xc0e00000 - 0xc1000000   (2048 kB)
                   .data : 0xc1000000 - 0xc1107eac   (1056 kB)
                    .bss : 0xc110e9c4 - 0xc1163ce4   ( 341 kB)
[    0.000000] ftrace: allocating 31309 entries in 92 pages
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 16, nr_irqs: 16, preallocated irqs: 16
[    0.000000] GIC: Using split EOI/Deactivate mode
[    0.000000] Switching to timer-based delay loop, resolution 41ns
[    0.000000] clocksource: mct-frc: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 79635851949 ns
[    0.000008] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 89478484971ns
[    0.006455] Console: colour dummy device 80x30
[    0.006475] console [tty0] enabled
[    0.006506] Calibrating delay loop (skipped), value calculated using timer frequency.. 48.00 BogoMIPS (lpj=240000)
[    0.006521] pid_max: default: 32768 minimum: 301
[    0.006829] Security Framework initialized
[    0.006841] Yama: becoming mindful.
[    0.006876] AppArmor: AppArmor disabled by boot time parameter
[    0.006983] Mount-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.007001] Mountpoint-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.007920] CPU: Testing write buffer coherency: ok
[    0.008736] CPU0: update cpu_capacity 448
[    0.008746] CPU0: thread -1, cpu 0, socket 1, mpidr 80000100
[    0.009397] Setting up static identity map for 0x40200000 - 0x402000a0
[    0.010118] ARM CCI driver probed
[    0.010343] Exynos MCPM support installed
[    0.012614] Hierarchical SRCU implementation.
[    0.016815] EFI services will not be available.
[    0.017248] smp: Bringing up secondary CPUs ...
[    0.018312] CPU1: update cpu_capacity 448
[    0.018321] CPU1: thread -1, cpu 1, socket 1, mpidr 80000101
[    0.019423] CPU2: update cpu_capacity 448
[    0.019431] CPU2: thread -1, cpu 2, socket 1, mpidr 80000102
[    0.020586] CPU3: update cpu_capacity 448
[    0.020594] CPU3: thread -1, cpu 3, socket 1, mpidr 80000103
[    0.021655] CPU4: update cpu_capacity 1535
[    0.021665] CPU4: thread -1, cpu 0, socket 0, mpidr 80000000
[    0.022740] CPU5: update cpu_capacity 1535
[    0.022749] CPU5: thread -1, cpu 1, socket 0, mpidr 80000001
[    0.023829] CPU6: update cpu_capacity 1535
[    0.023837] CPU6: thread -1, cpu 2, socket 0, mpidr 80000002
[    0.024886] CPU7: update cpu_capacity 1535
[    0.024895] CPU7: thread -1, cpu 3, socket 0, mpidr 80000003
[    0.025038] smp: Brought up 1 node, 8 CPUs
[    0.025053] SMP: Total of 8 processors activated (384.00 BogoMIPS).
[    0.025060] CPU: WARNING: CPU(s) started in wrong/inconsistent modes (primary CPU mode 0x1a)
[    0.025065] CPU: This may indicate a broken bootloader or firmware.
[    0.026740] devtmpfs: initialized
[    0.050057] VFP support v0.3: implementor 41 architecture 2 part 30 variant 7 rev 3
[    0.050507] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.050532] futex hash table entries: 2048 (order: 5, 131072 bytes)
[    0.052020] pinctrl core: initialized pinctrl subsystem
[    0.054772] DMI not present or invalid.
[    0.055272] NET: Registered protocol family 16
[    0.058522] DMA: preallocated 256 KiB pool for atomic coherent allocations
[    0.064450] No ATAGs?
[    0.064785] hw-breakpoint: found 5 (+1 reserved) breakpoint and 4 watchpoint registers.
[    0.064793] hw-breakpoint: maximum watchpoint size is 8 bytes.
[    0.066408] Serial: AMBA PL011 UART driver
[    0.107099] EXYNOS5420 PMU initialized
[    0.134115] HugeTLB registered 2.00 MiB page size, pre-allocated 0 pages
[    0.144822] vgaarb: loaded
[    0.146364] s3c-i2c 12c80000.i2c: slave address 0x00
[    0.146379] s3c-i2c 12c80000.i2c: bus frequency set to 65 KHz
[    0.146942] s3c-i2c 12c80000.i2c: i2c-2: S3C I2C adapter
[    0.147966] media: Linux media interface: v0.10
[    0.148032] Linux video capture interface: v2.00
[    0.148127] pps_core: LinuxPPS API ver. 1 registered
[    0.148133] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@xxxxxxxx>
[    0.148158] PTP clock support registered
[    0.148335] dmi: Firmware registration failed.
[    0.150575] clocksource: Switched to clocksource mct-frc
[    0.235367] VFS: Disk quotas dquot_6.6.0
[    0.235492] VFS: Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
[    0.255329] NET: Registered protocol family 2
[    0.256327] TCP established hash table entries: 8192 (order: 3, 32768 bytes)
[    0.256440] TCP bind hash table entries: 8192 (order: 4, 65536 bytes)
[    0.256618] TCP: Hash tables configured (established 8192 bind 8192)
[    0.256862] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    0.256912] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    0.257350] NET: Registered protocol family 1
[    0.257393] PCI: CLS 0 bytes, default 64
[    0.258066] Unpacking initramfs...
[    1.711221] Freeing initrd memory: 17084K
[    1.711423] kvm [1]: HYP mode not available
[    1.715471] audit: initializing netlink subsys (disabled)
[    1.715807] audit: type=2000 audit(1.715:1): state=initialized audit_enabled=0 res=1
[    1.716609] workingset: timestamp_bits=14 max_order=19 bucket_order=5
[    1.717069] zbud: loaded
[    1.718197] random: fast init done
[    1.740653] bounce: pool size: 64 pages
[    1.740756] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 247)
[    1.740993] io scheduler noop registered
[    1.741001] io scheduler deadline registered
[    1.741117] io scheduler cfq registered (default)
[    1.741124] io scheduler mq-deadline registered
[    1.741130] io scheduler kyber registered
[    1.765856] dma-pl330 121a0000.pdma: Loaded driver for PL330 DMAC-241330
[    1.765872] dma-pl330 121a0000.pdma: 	DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[    1.770478] dma-pl330 121b0000.pdma: Loaded driver for PL330 DMAC-241330
[    1.770491] dma-pl330 121b0000.pdma: 	DBUFF-32x4bytes Num_Chans-8 Num_Peri-32 Num_Events-32
[    1.772124] dma-pl330 10800000.mdma: Loaded driver for PL330 DMAC-241330
[    1.772138] dma-pl330 10800000.mdma: 	DBUFF-64x8bytes Num_Chans-8 Num_Peri-1 Num_Events-32
[    1.775853] Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
[    1.778995] Serial: AMBA driver
[    1.779324] 12c00000.serial: ttySAC0 at MMIO 0x12c00000 (irq = 58, base_baud = 0) is a S3C6400/10
[    1.779883] 12c10000.serial: ttySAC1 at MMIO 0x12c10000 (irq = 59, base_baud = 0) is a S3C6400/10
[    1.780402] 12c20000.serial: ttySAC2 at MMIO 0x12c20000 (irq = 60, base_baud = 0) is a S3C6400/10
[    1.787604] console [ttySAC2] enabled
[    1.788182] 12c30000.serial: ttySAC3 at MMIO 0x12c30000 (irq = 61, base_baud = 0) is a S3C6400/10
[    1.794995] libphy: Fixed MDIO Bus: probed
[    1.796596] mousedev: PS/2 mouse device common for all mice
[    1.807034] ledtrig-cpu: registered to indicate activity on CPUs
[    1.808763] NET: Registered protocol family 10
[    1.809956] Segment Routing with IPv6
[    1.810030] mip6: Mobile IPv6
[    1.810045] NET: Registered protocol family 17
[    1.810062] mpls_gso: MPLS GSO support
[    1.810793] ThumbEE CPU extension supported.
[    1.810809] Registering SWP/SWPB emulation handler
[    1.811731] registered taskstats version 1
[    1.811847] zswap: loaded using pool lzo/zbud
[    1.812365] ima: No TPM chip found, activating TPM-bypass! (rc=-19)
[    1.847540] hctosys: unable to open rtc device (rtc0)
[    1.847552] sr_init: No PMIC hook to init smartreflex
[    1.848009] sr_init: platform driver register failed for SR
[    1.852373] PM: Hibernation image not present or could not be loaded.
[    1.857892] Freeing unused kernel memory: 2048K
[    2.186876] exynos5_usb3drd_phy 12100000.phy: 12100000.phy supply vbus not found, using dummy regulator
[    2.186977] exynos5_usb3drd_phy 12100000.phy: 12100000.phy supply vbus-boost not found, using dummy regulator
[    2.187954] samsung-usb2-phy 12130000.phy: 12130000.phy supply vbus not found, using dummy regulator
[    2.191779] exynos5_usb3drd_phy 12500000.phy: 12500000.phy supply vbus not found, using dummy regulator
[    2.191888] exynos5_usb3drd_phy 12500000.phy: 12500000.phy supply vbus-boost not found, using dummy regulator
[    2.192403] usbcore: registered new interface driver usbfs
[    2.192536] usbcore: registered new interface driver hub
[    2.192842] Synopsys Designware Multimedia Card Interface Driver
[    2.196551] usbcore: registered new device driver usb
[    2.198835] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    2.199667] ehci-exynos: EHCI EXYNOS driver
[    2.199899] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[    2.201019] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[    2.201040] dwmmc_exynos 12200000.mmc: Version ID is 250a
[    2.201111] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 73,64 bit host data width,64 deep fifo
[    2.201571] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    2.201985] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[    2.202226] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[    2.202244] dwmmc_exynos 12220000.mmc: Version ID is 250a
[    2.202300] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 74,64 bit host data width,64 deep fifo
[    2.202845] ohci-exynos: OHCI EXYNOS driver
[    2.202903] exynos-ehci 12110000.usb: EHCI Host Controller
[    2.202946] exynos-ehci 12110000.usb: new USB bus registered, assigned bus number 1
[    2.203715] exynos-ehci 12110000.usb: irq 71, io mem 0x12110000
[    2.240671] exynos-ehci 12110000.usb: USB 2.0 started, EHCI 1.00
[    2.241055] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    2.241068] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.241079] usb usb1: Product: EHCI Host Controller
[    2.241089] usb usb1: Manufacturer: Linux 4.13.0 ehci_hcd
[    2.241105] usb usb1: SerialNumber: 12110000.usb
[    2.241995] hub 1-0:1.0: USB hub found
[    2.242051] hub 1-0:1.0: 3 ports detected
[    2.243993] exynos-ohci 12120000.usb: USB Host Controller
[    2.244042] exynos-ohci 12120000.usb: new USB bus registered, assigned bus number 2
[    2.244801] exynos-ohci 12120000.usb: irq 71, io mem 0x12120000
[    2.246865] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[    2.247123] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[    2.247141] dwmmc_exynos 12200000.mmc: Version ID is 250a
[    2.247177] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 73,64 bit host data width,64 deep fifo
[    2.248434] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[    2.248478] alloc_contig_range: [bd847, bd848) PFNs busy
[    2.248630] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[    2.248647] dwmmc_exynos 12220000.mmc: Version ID is 250a
[    2.248678] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 74,64 bit host data width,64 deep fifo
[    2.315065] usb usb2: New USB device found, idVendor=1d6b, idProduct=0001
[    2.315083] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.315092] usb usb2: Product: USB Host Controller
[    2.315101] usb usb2: Manufacturer: Linux 4.13.0 ohci_hcd
[    2.315109] usb usb2: SerialNumber: 12120000.usb
[    2.316236] hub 2-0:1.0: USB hub found
[    2.316297] hub 2-0:1.0: 3 ports detected
[    2.320930] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[    2.321111] alloc_contig_range: [bd847, bd848) PFNs busy
[    2.321303] alloc_contig_range: [bd848, bd849) PFNs busy
[    2.321515] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[    2.321532] dwmmc_exynos 12200000.mmc: Version ID is 250a
[    2.321576] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 73,64 bit host data width,64 deep fifo
[    2.323046] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[    2.323130] alloc_contig_range: [bd847, bd848) PFNs busy
[    2.323286] alloc_contig_range: [bd848, bd849) PFNs busy
[    2.323392] alloc_contig_range: [bd849, bd84a) PFNs busy
[    2.323612] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[    2.323630] dwmmc_exynos 12220000.mmc: Version ID is 250a
[    2.323674] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 74,64 bit host data width,64 deep fifo
[    2.329150] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[    2.329277] alloc_contig_range: [bd847, bd848) PFNs busy
[    2.329543] alloc_contig_range: [bd848, bd849) PFNs busy
[    2.329694] alloc_contig_range: [bd849, bd84a) PFNs busy
[    2.329798] alloc_contig_range: [bd84a, bd84b) PFNs busy
[    2.330041] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[    2.330060] dwmmc_exynos 12200000.mmc: Version ID is 250a
[    2.330106] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 73,64 bit host data width,64 deep fifo
[    2.331896] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[    2.332666] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[    2.332687] dwmmc_exynos 12220000.mmc: Version ID is 250a
[    2.332750] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 74,64 bit host data width,64 deep fifo
[    2.337788] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[    2.338755] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[    2.338776] dwmmc_exynos 12200000.mmc: Version ID is 250a
[    2.338820] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 73,64 bit host data width,64 deep fifo
[    2.340476] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[    2.341459] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[    2.341479] dwmmc_exynos 12220000.mmc: Version ID is 250a
[    2.341522] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 74,64 bit host data width,64 deep fifo
[    2.344020] s5m-rtc s2mps14-rtc: rtc core: registered s5m-rtc as rtc0
[    2.350305] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[    2.351366] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[    2.351386] dwmmc_exynos 12200000.mmc: Version ID is 250a
[    2.351433] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 73,64 bit host data width,64 deep fifo
[    2.352841] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[    2.353824] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[    2.353842] dwmmc_exynos 12220000.mmc: Version ID is 250a
[    2.353879] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 74,64 bit host data width,64 deep fifo
[    2.410684] vdd_ldo9: Bringing 3300000uV into 3000000-3000000uV
[    2.419750] vddq_mmc2: Bringing 3300000uV into 2800000-2800000uV
[    2.424845] vdd_ldo15: Bringing 3300000uV into 3100000-3100000uV
[    2.433471] vdd_sd: Bringing 3300000uV into 2800000-2800000uV
[    2.495679] dwmmc_exynos 12200000.mmc: IDMAC supports 32-bit address mode.
[    2.496173] dwmmc_exynos 12200000.mmc: Using internal DMA controller.
[    2.496198] dwmmc_exynos 12200000.mmc: Version ID is 250a
[    2.496240] dwmmc_exynos 12200000.mmc: DW MMC controller at irq 73,64 bit host data width,64 deep fifo
[    2.496703] dwmmc_exynos 12200000.mmc: allocated mmc-pwrseq
[    2.508975] usb_phy_generic usb_phy_generic.0.auto: usb_phy_generic.0.auto supply vcc not found, using dummy regulator
[    2.509176] usb_phy_generic usb_phy_generic.1.auto: usb_phy_generic.1.auto supply vcc not found, using dummy regulator
[    2.509387] usb_phy_generic usb_phy_generic.2.auto: usb_phy_generic.2.auto supply vcc not found, using dummy regulator
[    2.509570] usb_phy_generic usb_phy_generic.3.auto: usb_phy_generic.3.auto supply vcc not found, using dummy regulator
[    2.530849] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
[    2.530888] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 3
[    2.531903] xhci-hcd xhci-hcd.4.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x02010010
[    2.531961] mmc_host mmc0: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[    2.531975] xhci-hcd xhci-hcd.4.auto: irq 135, io mem 0x12000000
[    2.532262] usb usb3: New USB device found, idVendor=1d6b, idProduct=0002
[    2.532275] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.532285] usb usb3: Product: xHCI Host Controller
[    2.532296] usb usb3: Manufacturer: Linux 4.13.0 xhci-hcd
[    2.532306] usb usb3: SerialNumber: xhci-hcd.4.auto
[    2.533135] hub 3-0:1.0: USB hub found
[    2.533191] hub 3-0:1.0: 1 port detected
[    2.533704] xhci-hcd xhci-hcd.4.auto: xHCI Host Controller
[    2.533731] xhci-hcd xhci-hcd.4.auto: new USB bus registered, assigned bus number 4
[    2.533857] usb usb4: We don't know the algorithms for LPM for this host, disabling LPM.
[    2.534067] usb usb4: New USB device found, idVendor=1d6b, idProduct=0003
[    2.534079] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.534089] usb usb4: Product: xHCI Host Controller
[    2.534100] usb usb4: Manufacturer: Linux 4.13.0 xhci-hcd
[    2.534109] usb usb4: SerialNumber: xhci-hcd.4.auto
[    2.534959] hub 4-0:1.0: USB hub found
[    2.535011] hub 4-0:1.0: 1 port detected
[    2.535625] xhci-hcd xhci-hcd.5.auto: xHCI Host Controller
[    2.535658] xhci-hcd xhci-hcd.5.auto: new USB bus registered, assigned bus number 5
[    2.536504] xhci-hcd xhci-hcd.5.auto: hcc params 0x0220f04c hci version 0x100 quirks 0x02010010
[    2.536564] xhci-hcd xhci-hcd.5.auto: irq 136, io mem 0x12400000
[    2.536828] usb usb5: New USB device found, idVendor=1d6b, idProduct=0002
[    2.536840] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.536851] usb usb5: Product: xHCI Host Controller
[    2.536861] usb usb5: Manufacturer: Linux 4.13.0 xhci-hcd
[    2.536871] usb usb5: SerialNumber: xhci-hcd.5.auto
[    2.537671] hub 5-0:1.0: USB hub found
[    2.537733] hub 5-0:1.0: 1 port detected
[    2.538240] xhci-hcd xhci-hcd.5.auto: xHCI Host Controller
[    2.538266] xhci-hcd xhci-hcd.5.auto: new USB bus registered, assigned bus number 6
[    2.538390] usb usb6: We don't know the algorithms for LPM for this host, disabling LPM.
[    2.538597] usb usb6: New USB device found, idVendor=1d6b, idProduct=0003
[    2.538610] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    2.538620] usb usb6: Product: xHCI Host Controller
[    2.538630] usb usb6: Manufacturer: Linux 4.13.0 xhci-hcd
[    2.538640] usb usb6: SerialNumber: xhci-hcd.5.auto
[    2.539458] hub 6-0:1.0: USB hub found
[    2.539512] hub 6-0:1.0: 1 port detected
[    2.572040] dwmmc_exynos 12220000.mmc: IDMAC supports 32-bit address mode.
[    2.572321] dwmmc_exynos 12220000.mmc: Using internal DMA controller.
[    2.572339] dwmmc_exynos 12220000.mmc: Version ID is 250a
[    2.572377] dwmmc_exynos 12220000.mmc: DW MMC controller at irq 74,64 bit host data width,64 deep fifo
[    2.601175] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 400000Hz, actual 396825HZ div = 63)
[    2.632080] exynos-tmu 10060000.tmu: More trip points than supported by this TMU.
[    2.632093] exynos-tmu 10060000.tmu: 2 trip points should be configured in polling mode.
[    2.679846] mmc_host mmc1: Bus speed (slot 0) = 50000000Hz (slot req 50000000Hz, actual 50000000HZ div = 0)
[    2.679973] mmc1: new high speed SDHC card at address 0007
[ 2.680800] mmcblk1: mmc1:0007 SL16G 14.5 GiB [ 2.682304] mmcblk1: p1 p2
[    2.770675] usb 1-1: new high-speed USB device number 2 using exynos-ehci
[    2.981610] usb 1-1: New USB device found, idVendor=0cf3, idProduct=9271
[    2.981627] usb 1-1: New USB device strings: Mfr=16, Product=32, SerialNumber=48
[    2.981636] usb 1-1: Product: USB2.0 WLAN
[    2.981644] usb 1-1: Manufacturer: ATHEROS
[    2.981653] usb 1-1: SerialNumber: 12345
[    3.889647] EXT4-fs (mmcblk1p2): mounted filesystem with ordered data mode. Opts: (null)
[    4.545757] systemd[1]: System time before build time, advancing clock.
[    4.660348] ip_tables: (C) 2000-2006 Netfilter Core Team
[    4.700946] systemd[1]: systemd 232 running in system mode. (+PAM +AUDIT +SELINUX +IMA +APPARMOR +SMACK +SYSVINIT +UTMP +LIBCRYPTSETUP +GCRYPT +GNUTLS +ACL +XZ +LZ4 +SECCOMP +BLKID +ELFUTILS +KMOD +IDN)
[    4.701732] systemd[1]: Detected architecture arm.
[    4.702892] systemd[1]: Set hostname to <odroid>.
[    5.123925] dma-pl330 3880000.adma: Loaded driver for PL330 DMAC-241330
[    5.123941] dma-pl330 3880000.adma: 	DBUFF-4x8bytes Num_Chans-6 Num_Peri-16 Num_Events-6
[    5.294493] systemd[1]: [/etc/systemd/system/transmission-daemon.service.d/override.conf:4] Unknown lvalue 'IOSchedulingClass' in section 'Unit'
[    5.294557] systemd[1]: [/etc/systemd/system/transmission-daemon.service.d/override.conf:5] Unknown lvalue 'IOSchedulingPriority' in section 'Unit'
[    5.379813] systemd[1]: Created slice User and Session Slice.
[    5.380429] systemd[1]: Listening on udev Kernel Socket.
[    5.382103] systemd[1]: Listening on LVM2 metadata daemon socket.
[    5.383081] systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.
[    5.383504] systemd[1]: Started Forward Password Requests to Wall Directory Watch.
[    5.689694] EXT4-fs (mmcblk1p2): re-mounted. Opts: errors=remount-ro
[    6.082120] systemd-journald[228]: Received request to flush runtime journal from PID 1
[    6.436274] leds_pwm pwmleds: unable to request PWM for blue:heartbeat: -517
[    6.450807] pwm-fan pwm-fan: Could not get PWM
[    6.517588] s3c2410-wdt 101d0000.watchdog: watchdog inactive, reset disabled, irq disabled
[    6.518554] leds_pwm pwmleds: unable to request PWM for blue:heartbeat: -517
[    6.524969] pwm-fan pwm-fan: Could not get PWM
[    6.811259] OF: graph: no port node found in /soc/hdmi@14530000
[    6.818603] [drm] Exynos DRM: using 14450000.mixer device for DMA mapping operations
[    6.818788] exynos-drm exynos-drm: bound 14450000.mixer (ops mixer_component_ops [exynosdrm])
[    6.818825] exynos-drm exynos-drm: bound 14530000.hdmi (ops hdmi_component_ops [exynosdrm])
[    6.818832] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013).
[    6.818837] [drm] No driver support for vblank timestamp query.
[    6.819453] [drm] Initialized exynos 1.0.0 20110530 for exynos-drm on minor 0
[    6.852126] usb usb3-port1: connect-debounce failed
[    6.915842] usb 1-1: ath9k_htc: Firmware ath9k_htc/htc_9271-1.4.0.fw requested
[    6.916088] usbcore: registered new interface driver ath9k_htc
[    6.937821] FAT-fs (mmcblk1p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[    7.071833] ip6_tables: (C) 2000-2006 Netfilter Core Team
[    7.112695] nf_conntrack version 0.5.0 (16384 buckets, 65536 max)
[    7.209229] usb 1-1: ath9k_htc: Transferred FW: ath9k_htc/htc_9271-1.4.0.fw, size: 51008
[    7.460216] ath9k_htc 1-1:1.0: ath9k_htc: HTC initialized with 33 credits
[    7.693485] ath9k_htc 1-1:1.0: ath9k_htc: FW Version: 1.4
[    7.693494] ath9k_htc 1-1:1.0: FW RMW support: On
[    7.693500] ath: EEPROM regdomain: 0x809c
[    7.693505] ath: EEPROM indicates we should expect a country code
[    7.693511] ath: doing EEPROM country->regdmn map search
[    7.693516] ath: country maps to regdmn code: 0x52
[    7.693522] ath: Country alpha2 being used: CN
[    7.693527] ath: Regpair used: 0x52
[    7.713687] ieee80211 phy0: Atheros AR9271 Rev:1
[    7.742385] ath9k_htc 1-1:1.0 wlx3c46d81413ac: renamed from wlan0
[    8.187265] IPv6: ADDRCONF(NETDEV_UP): wlx3c46d81413ac: link is not ready
[    8.752284] random: crng init done
[    9.714360] ------------[ cut here ]------------
[    9.714533] WARNING: CPU: 0 PID: 0 at net/mac80211/rx.c:629 ieee80211_rx_napi+0x8f4/0xa3c [mac80211]
[    9.714538] Modules linked in: arc4 xt_limit xt_comment nf_conntrack_ipv6 nf_defrag_ipv6 xt_conntrack nf_conntrack libcrc32c ip6table_filter ip6table_mangle ip6table_raw ip6_tables xt_tcpudp xt_owner xt_multiport iptable_filter nls_ascii nls_cp437 vfat ath9k_htc ath9k_common fat ath9k_hw ath mac80211 exynosdrm cfg80211 analogix_dp rfkill drm_kms_helper drm exynos_adc pwm_samsung industrialio s3c2410_wdt pwm_fan leds_pwm cpufreq_dt ledtrig_heartbeat ip_tables x_tables autofs4 crc32c_generic ext4 crc16 mbcache jbd2 fscrypto xhci_plat_hcd xhci_hcd dwc3 udc_core phy_generic clk_s2mps11 s2mps11 dwc3_exynos phy_exynos_mipi_video phy_exynos_dp_video i2c_exynos5 ohci_exynos ohci_hcd ehci_exynos ehci_hcd dw_mmc_exynos dw_mmc_pltfm dw_mmc phy_exynos_usb2 usbcore phy_exynos5_usbdrd
[    9.714734] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.13.0 #4
[    9.714738] Hardware name: SAMSUNG EXYNOS (Flattened Device Tree)
[    9.714767] [<c0237468>] (unwind_backtrace) from [<c0231214>] (show_stack+0x20/0x24)
[    9.714783] [<c0231214>] (show_stack) from [<c098e3a0>] (dump_stack+0x90/0xa4)
[    9.714795] [<c098e3a0>] (dump_stack) from [<c026d928>] (__warn+0xf8/0x110)
[    9.714805] [<c026d928>] (__warn) from [<c026da58>] (warn_slowpath_null+0x30/0x38)
[    9.714861] [<c026da58>] (warn_slowpath_null) from [<bf67a7c8>] (ieee80211_rx_napi+0x8f4/0xa3c [mac80211])
[    9.714951] [<bf67a7c8>] (ieee80211_rx_napi [mac80211]) from [<bf7b3afc>] (ath9k_rx_tasklet+0x180/0x1d8 [ath9k_htc])
[    9.714976] [<bf7b3afc>] (ath9k_rx_tasklet [ath9k_htc]) from [<c0274880>] (tasklet_action+0x68/0xf8)
[    9.714988] [<c0274880>] (tasklet_action) from [<c0201c2c>] (__do_softirq+0x12c/0x358)
[    9.714998] [<c0201c2c>] (__do_softirq) from [<c0274288>] (irq_exit+0xe8/0x150)
[    9.715009] [<c0274288>] (irq_exit) from [<c02d4bac>] (__handle_domain_irq+0x70/0xc4)
[    9.715019] [<c02d4bac>] (__handle_domain_irq) from [<c0201864>] (gic_handle_irq+0x58/0x94)
[    9.715032] [<c0201864>] (gic_handle_irq) from [<c09ad578>] (__irq_svc+0x58/0x74)
[    9.715038] Exception stack(0xc1001ed8 to 0xc1001f20)
[    9.715044] 1ec0:                                                       00000000 0001407c
[    9.715053] 1ee0: 2de57000 c0244460 c1000000 c1004e70 c1004e0c c10ef48d c0b59a18 00000001
[    9.715061] 1f00: c1004dd8 c1001f34 c1001f38 c1001f28 c022d2f8 c022d2fc 60000013 ffffffff
[    9.715077] [<c09ad578>] (__irq_svc) from [<c022d2fc>] (arch_cpu_idle+0x48/0x4c)
[    9.715087] [<c022d2fc>] (arch_cpu_idle) from [<c09ab960>] (default_idle_call+0x30/0x3c)
[    9.715100] [<c09ab960>] (default_idle_call) from [<c02b74f8>] (do_idle+0xdc/0x14c)
[    9.715110] [<c02b74f8>] (do_idle) from [<c02b7828>] (cpu_startup_entry+0x28/0x2c)
[    9.715125] [<c02b7828>] (cpu_startup_entry) from [<c09a4de8>] (rest_init+0xd4/0xd8)
[    9.715136] [<c09a4de8>] (rest_init) from [<c0e00ec0>] (start_kernel+0x440/0x460)
[    9.715143] ---[ end trace 28d47b3fad78f4a4 ]---
[   10.023810] wlx3c46d81413ac: authenticate with 4c:5e:0c:3d:39:39
[   10.214671] wlx3c46d81413ac: send auth to 4c:5e:0c:3d:39:39 (try 1/3)
[   10.216759] wlx3c46d81413ac: authenticated
[   10.220697] wlx3c46d81413ac: associate with 4c:5e:0c:3d:39:39 (try 1/3)
[   10.224247] wlx3c46d81413ac: RX AssocResp from 4c:5e:0c:3d:39:39 (capab=0x431 status=0 aid=2)
[   10.230359] wlx3c46d81413ac: associated
[   10.230453] IPv6: ADDRCONF(NETDEV_CHANGE): wlx3c46d81413ac: link becomes ready

# lsusb -vv
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
bLength                18
bDescriptorType         1
bcdUSB               3.00
bDeviceClass            9 Hub
bDeviceSubClass         0 Unused
bDeviceProtocol         3  bMaxPacketSize0         9
idVendor           0x1d6b Linux Foundation
idProduct          0x0003 3.0 root hub
bcdDevice            4.13
iManufacturer           3 Linux 4.13.0 xhci-hcd
iProduct                2 xHCI Host Controller
iSerial                 1 xhci-hcd.5.auto
bNumConfigurations      1
Configuration Descriptor:
  bLength                 9
  bDescriptorType         2
  wTotalLength           31
  bNumInterfaces          1
  bConfigurationValue     1
  iConfiguration          0    bmAttributes         0xe0
    Self Powered
    Remote Wakeup
  MaxPower                0mA
  Interface Descriptor:
    bLength                 9
    bDescriptorType         4
    bInterfaceNumber        0
    bAlternateSetting       0
    bNumEndpoints           1
    bInterfaceClass         9 Hub
    bInterfaceSubClass      0 Unused
    bInterfaceProtocol      0 Full speed (or root) hub
    iInterface              0      Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x81  EP 1 IN
      bmAttributes            3
        Transfer Type            Interrupt
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0004  1x 4 bytes
      bInterval              12
      bMaxBurst               0
Hub Descriptor:
bLength              12
bDescriptorType      42
nNbrPorts             1
wHubCharacteristic 0x0009
  Per-port power switching
  Per-port overcurrent protection
bPwrOn2PwrGood       10 * 2 milli seconds
bHubContrCurrent      0 milli Ampere
bHubDecLat          0.0 micro seconds
wHubDelay             0 nano seconds
DeviceRemovable    0x00
Hub Port Status:
 Port 1: 0000.02a0 5Gbps power Rx.Detect
Binary Object Store Descriptor:
bLength                 5
bDescriptorType        15
wTotalLength           15
bNumDeviceCaps          1
SuperSpeed USB Device Capability:
  bLength                10
  bDescriptorType        16
  bDevCapabilityType      3
  bmAttributes         0x02
    Latency Tolerance Messages (LTM) Supported
  wSpeedsSupported   0x0008
    Device can operate at SuperSpeed (5Gbps)
  bFunctionalitySupport   3
    Lowest fully-functional device speed is SuperSpeed (5Gbps)
  bU1DevExitLat           0 micro seconds
  bU2DevExitLat           0 micro seconds
Device Status:     0x0001
Self Powered

Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
bLength                18
bDescriptorType         1
bcdUSB               2.00
bDeviceClass            9 Hub
bDeviceSubClass         0 Unused
bDeviceProtocol         1 Single TT
bMaxPacketSize0        64
idVendor           0x1d6b Linux Foundation
idProduct          0x0002 2.0 root hub
bcdDevice            4.13
iManufacturer           3 Linux 4.13.0 xhci-hcd
iProduct                2 xHCI Host Controller
iSerial                 1 xhci-hcd.5.auto
bNumConfigurations      1
Configuration Descriptor:
  bLength                 9
  bDescriptorType         2
  wTotalLength           25
  bNumInterfaces          1
  bConfigurationValue     1
  iConfiguration          0    bmAttributes         0xe0
    Self Powered
    Remote Wakeup
  MaxPower                0mA
  Interface Descriptor:
    bLength                 9
    bDescriptorType         4
    bInterfaceNumber        0
    bAlternateSetting       0
    bNumEndpoints           1
    bInterfaceClass         9 Hub
    bInterfaceSubClass      0 Unused
    bInterfaceProtocol      0 Full speed (or root) hub
    iInterface              0      Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x81  EP 1 IN
      bmAttributes            3
        Transfer Type            Interrupt
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0004  1x 4 bytes
      bInterval              12
Hub Descriptor:
bLength               9
bDescriptorType      41
nNbrPorts             1
wHubCharacteristic 0x0009
  Per-port power switching
  Per-port overcurrent protection
  TT think time 8 FS bits
bPwrOn2PwrGood       10 * 2 milli seconds
bHubContrCurrent      0 milli Ampere
DeviceRemovable    0x00
PortPwrCtrlMask    0xff
Hub Port Status:
 Port 1: 0001.0101 C_CONNECT power connect
Device Status:     0x0001
Self Powered

Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Device Descriptor:
bLength                18
bDescriptorType         1
bcdUSB               3.00
bDeviceClass            9 Hub
bDeviceSubClass         0 Unused
bDeviceProtocol         3  bMaxPacketSize0         9
idVendor           0x1d6b Linux Foundation
idProduct          0x0003 3.0 root hub
bcdDevice            4.13
iManufacturer           3 Linux 4.13.0 xhci-hcd
iProduct                2 xHCI Host Controller
iSerial                 1 xhci-hcd.4.auto
bNumConfigurations      1
Configuration Descriptor:
  bLength                 9
  bDescriptorType         2
  wTotalLength           31
  bNumInterfaces          1
  bConfigurationValue     1
  iConfiguration          0    bmAttributes         0xe0
    Self Powered
    Remote Wakeup
  MaxPower                0mA
  Interface Descriptor:
    bLength                 9
    bDescriptorType         4
    bInterfaceNumber        0
    bAlternateSetting       0
    bNumEndpoints           1
    bInterfaceClass         9 Hub
    bInterfaceSubClass      0 Unused
    bInterfaceProtocol      0 Full speed (or root) hub
    iInterface              0      Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x81  EP 1 IN
      bmAttributes            3
        Transfer Type            Interrupt
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0004  1x 4 bytes
      bInterval              12
      bMaxBurst               0
Hub Descriptor:
bLength              12
bDescriptorType      42
nNbrPorts             1
wHubCharacteristic 0x0009
  Per-port power switching
  Per-port overcurrent protection
bPwrOn2PwrGood       10 * 2 milli seconds
bHubContrCurrent      0 milli Ampere
bHubDecLat          0.0 micro seconds
wHubDelay             0 nano seconds
DeviceRemovable    0x00
Hub Port Status:
 Port 1: 0000.02a0 5Gbps power Rx.Detect
Binary Object Store Descriptor:
bLength                 5
bDescriptorType        15
wTotalLength           15
bNumDeviceCaps          1
SuperSpeed USB Device Capability:
  bLength                10
  bDescriptorType        16
  bDevCapabilityType      3
  bmAttributes         0x02
    Latency Tolerance Messages (LTM) Supported
  wSpeedsSupported   0x0008
    Device can operate at SuperSpeed (5Gbps)
  bFunctionalitySupport   3
    Lowest fully-functional device speed is SuperSpeed (5Gbps)
  bU1DevExitLat           0 micro seconds
  bU2DevExitLat           0 micro seconds
Device Status:     0x0001
Self Powered

Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Device Descriptor:
bLength                18
bDescriptorType         1
bcdUSB               2.00
bDeviceClass            9 Hub
bDeviceSubClass         0 Unused
bDeviceProtocol         1 Single TT
bMaxPacketSize0        64
idVendor           0x1d6b Linux Foundation
idProduct          0x0002 2.0 root hub
bcdDevice            4.13
iManufacturer           3 Linux 4.13.0 xhci-hcd
iProduct                2 xHCI Host Controller
iSerial                 1 xhci-hcd.4.auto
bNumConfigurations      1
Configuration Descriptor:
  bLength                 9
  bDescriptorType         2
  wTotalLength           25
  bNumInterfaces          1
  bConfigurationValue     1
  iConfiguration          0    bmAttributes         0xe0
    Self Powered
    Remote Wakeup
  MaxPower                0mA
  Interface Descriptor:
    bLength                 9
    bDescriptorType         4
    bInterfaceNumber        0
    bAlternateSetting       0
    bNumEndpoints           1
    bInterfaceClass         9 Hub
    bInterfaceSubClass      0 Unused
    bInterfaceProtocol      0 Full speed (or root) hub
    iInterface              0      Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x81  EP 1 IN
      bmAttributes            3
        Transfer Type            Interrupt
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0004  1x 4 bytes
      bInterval              12
Hub Descriptor:
bLength               9
bDescriptorType      41
nNbrPorts             1
wHubCharacteristic 0x0009
  Per-port power switching
  Per-port overcurrent protection
  TT think time 8 FS bits
bPwrOn2PwrGood       10 * 2 milli seconds
bHubContrCurrent      0 milli Ampere
DeviceRemovable    0x00
PortPwrCtrlMask    0xff
Hub Port Status:
 Port 1: 0001.0101 C_CONNECT power connect
Device Status:     0x0001
Self Powered

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Device Descriptor:
bLength                18
bDescriptorType         1
bcdUSB               1.10
bDeviceClass            9 Hub
bDeviceSubClass         0 Unused
bDeviceProtocol         0 Full speed (or root) hub
bMaxPacketSize0        64
idVendor           0x1d6b Linux Foundation
idProduct          0x0001 1.1 root hub
bcdDevice            4.13
iManufacturer           3 Linux 4.13.0 ohci_hcd
iProduct                2 USB Host Controller
iSerial                 1 12120000.usb
bNumConfigurations      1
Configuration Descriptor:
  bLength                 9
  bDescriptorType         2
  wTotalLength           25
  bNumInterfaces          1
  bConfigurationValue     1
  iConfiguration          0    bmAttributes         0xe0
    Self Powered
    Remote Wakeup
  MaxPower                0mA
  Interface Descriptor:
    bLength                 9
    bDescriptorType         4
    bInterfaceNumber        0
    bAlternateSetting       0
    bNumEndpoints           1
    bInterfaceClass         9 Hub
    bInterfaceSubClass      0 Unused
    bInterfaceProtocol      0 Full speed (or root) hub
    iInterface              0      Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x81  EP 1 IN
      bmAttributes            3
        Transfer Type            Interrupt
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0002  1x 2 bytes
      bInterval             255
Hub Descriptor:
bLength               9
bDescriptorType      41
nNbrPorts             3
wHubCharacteristic 0x0002
  No power switching (usb 1.0)
  Ganged overcurrent protection
bPwrOn2PwrGood        2 * 2 milli seconds
bHubContrCurrent      0 milli Ampere
DeviceRemovable    0x00
PortPwrCtrlMask    0xff
Hub Port Status:
 Port 1: 0000.0100 power
 Port 2: 0000.0100 power
 Port 3: 0000.0100 power
Device Status:     0x0001
Self Powered

Bus 001 Device 002: ID 0cf3:9271 Atheros Communications, Inc. AR9271 802.11n
Device Descriptor:
bLength                18
bDescriptorType         1
bcdUSB               2.00
bDeviceClass          255 Vendor Specific Class
bDeviceSubClass       255 Vendor Specific Subclass
bDeviceProtocol       255 Vendor Specific Protocol
bMaxPacketSize0        64
idVendor           0x0cf3 Atheros Communications, Inc.
idProduct          0x9271 AR9271 802.11n
bcdDevice            1.08
iManufacturer          16 ATHEROS
iProduct               32 USB2.0 WLAN
iSerial                48 12345
bNumConfigurations      1
Configuration Descriptor:
  bLength                 9
  bDescriptorType         2
  wTotalLength           60
  bNumInterfaces          1
  bConfigurationValue     1
  iConfiguration          0    bmAttributes         0x80
    (Bus Powered)
  MaxPower              500mA
  Interface Descriptor:
    bLength                 9
    bDescriptorType         4
    bInterfaceNumber        0
    bAlternateSetting       0
    bNumEndpoints           6
    bInterfaceClass       255 Vendor Specific Class
bInterfaceSubClass 0 bInterfaceProtocol 0 iInterface 0 Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x01  EP 1 OUT
      bmAttributes            2
        Transfer Type            Bulk
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0200  1x 512 bytes
      bInterval               0
    Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x82  EP 2 IN
      bmAttributes            2
        Transfer Type            Bulk
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0200  1x 512 bytes
      bInterval               0
    Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x83  EP 3 IN
      bmAttributes            3
        Transfer Type            Interrupt
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0040  1x 64 bytes
      bInterval               1
    Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x04  EP 4 OUT
      bmAttributes            3
        Transfer Type            Interrupt
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0040  1x 64 bytes
      bInterval               1
    Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x05  EP 5 OUT
      bmAttributes            2
        Transfer Type            Bulk
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0200  1x 512 bytes
      bInterval               0
    Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x06  EP 6 OUT
      bmAttributes            2
        Transfer Type            Bulk
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0200  1x 512 bytes
      bInterval               0
Device Qualifier (for other device speed):
bLength                10
bDescriptorType         6
bcdUSB               2.00
bDeviceClass          255 Vendor Specific Class
bDeviceSubClass       255 Vendor Specific Subclass
bDeviceProtocol       255 Vendor Specific Protocol
bMaxPacketSize0        64
bNumConfigurations      1
Device Status:     0x0000
(Bus Powered)

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


# the first time i ran lsusb -vv it hang here until i canceled it, # the second time it ran fine # after another reboot, i left lsusb to run and it eventually finished, # 5 or so minutes after

Device Descriptor:
bLength                18
bDescriptorType         1
bcdUSB               2.00
bDeviceClass            9 Hub
bDeviceSubClass         0 Unused
bDeviceProtocol         0 Full speed (or root) hub
bMaxPacketSize0        64
idVendor           0x1d6b Linux Foundation
idProduct          0x0002 2.0 root hub
bcdDevice            4.13
iManufacturer           3 Linux 4.13.0 ehci_hcd
iProduct                2 EHCI Host Controller
iSerial                 1 12110000.usb
bNumConfigurations      1
Configuration Descriptor:
  bLength                 9
  bDescriptorType         2
  wTotalLength           25
  bNumInterfaces          1
  bConfigurationValue     1
  iConfiguration          0    bmAttributes         0xe0
    Self Powered
    Remote Wakeup
  MaxPower                0mA
  Interface Descriptor:
    bLength                 9
    bDescriptorType         4
    bInterfaceNumber        0
    bAlternateSetting       0
    bNumEndpoints           1
    bInterfaceClass         9 Hub
    bInterfaceSubClass      0 Unused
    bInterfaceProtocol      0 Full speed (or root) hub
    iInterface              0      Endpoint Descriptor:
      bLength                 7
      bDescriptorType         5
      bEndpointAddress     0x81  EP 1 IN
      bmAttributes            3
        Transfer Type            Interrupt
        Synch Type               None
        Usage Type               Data
      wMaxPacketSize     0x0004  1x 4 bytes
      bInterval              12
Hub Descriptor:
bLength               9
bDescriptorType      41
nNbrPorts             3
wHubCharacteristic 0x0009
  Per-port power switching
  Per-port overcurrent protection
bPwrOn2PwrGood       10 * 2 milli seconds
bHubContrCurrent      0 milli Ampere
DeviceRemovable    0x00
PortPwrCtrlMask    0xff
Hub Port Status:
 Port 1: 0000.0503 highspeed power enable connect
 Port 2: 0000.0100 power
 Port 3: 0000.0100 power
Device Status:     0x0001
Self Powered


Also, the commit you pointed me to couldn't be the culprit: we didn't
have a ->shutdown() before and that commit didn't change that. All that
commit did was extract some code to helper functions which would be
reused.

On top of all that, Brian's commit merely duplicates the ->remove()
method as ->shutdown(), we don't want duplicated code, sorry.

I'm OK testing patches to help finding a long-term, good-solution to the warm boot
problem (or others in this platform)


--
balbi



--
IRC: gfa
GPG: 0X44BB1BA79F6C6333


--
IRC: gfa
GPG: 0X44BB1BA79F6C6333





[Index of Archives]     [Linux Kernel]     [Kernel Development Newbies]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite Hiking]     [Linux Kernel]     [Linux SCSI]