public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
From: Mario Limonciello <mario.limonciello@amd.com>
To: Mika Westerberg <mika.westerberg@linux.intel.com>,
	Mathias Nyman <mathias.nyman@linux.intel.com>
Cc: linux-usb@vger.kernel.org, gregkh@linuxfoundation.org
Subject: Re: [PATCH 0/4] Add device links between tunneled USB3 devices and USB4 Host
Date: Thu, 20 Jun 2024 13:36:56 -0500	[thread overview]
Message-ID: <9ec62b68-7eef-4d33-bc47-1d13e8eec820@amd.com> (raw)
In-Reply-To: <20240620064115.GH1532424@black.fi.intel.com>

[-- Attachment #1: Type: text/plain, Size: 3173 bytes --]

On 6/20/2024 01:41, Mika Westerberg wrote:
> +CC Mario from AMD side to check that we are good and don't break
> anything accidentally.
> 
> On Wed, Jun 19, 2024 at 04:03:01PM +0300, Mathias Nyman wrote:
>> The relationship between a USB4 Host Interface providing USB3 tunnels,
>> and tunneled USB3 devices is not represented in device hierarchy.
>>
>> This caused issues with power managment as devices may suspend and
>> resume in incorrect order.
>> A device link between the USB4 Host Interface and the USB3 xHCI was
>> originally added to solve this, preventing the USB4 Host Interface from
>> suspending if the USB3 xHCI Host was still active.
>> This unfortunately also prevents USB4 Host Interface from suspending even
>> if the USB3 xHCI Host is only serving native non-tunneled USB devices.
>>
>> Improve the current powermanagement situation by creating device links
>> directly from tunneled USB3 devices to the USB4 Host Interface they depend
>> on instead of a device link between the hosts.
>> This way USB4 host may suspend when the last tunneled device is
>> disconnected.
>>
>> Intel xHCI hosts are capable of reporting if connected USB3 devices are
>> tunneled via vendor specific capabilities.
>> Use this until a standard way is available.
>>
>> Mathias Nyman (4):
>>    xhci: Add USB4 tunnel detection for USB3 devices on Intel hosts
>>    usb: Add tunneled parameter to usb device structure
>>    usb: acpi: add device link between tunneled USB3 device and USB4 Host
>>      Interface
>>    thunderbolt: Don't create device link from USB4 Host Interface to USB3
>>      xHC host
>>
>>   drivers/thunderbolt/acpi.c       | 40 ++++++------------------
>>   drivers/usb/core/usb-acpi.c      | 52 ++++++++++++++++++++++++++++++++
>>   drivers/usb/host/xhci-ext-caps.h |  5 +++
>>   drivers/usb/host/xhci-hub.c      | 29 ++++++++++++++++++
>>   drivers/usb/host/xhci.c          | 12 ++++++++
>>   drivers/usb/host/xhci.h          |  1 +
>>   include/linux/usb.h              |  2 ++
>>   7 files changed, 111 insertions(+), 30 deletions(-)
>>
>> -- 
>> 2.25.1

Hi Mika,

Thanks for looping me in.  Unfortunately with this is appears the XHCI 
controller link never gets created.  I've not checked functional impact 
from this, but I'd guess there "should" be some functional problems too.

I grabbed a tree output on an AMD Phoenix system using:

# tree -l /sys/bus/pci/drivers/thunderbolt/ -L 5

I'll attach the before/after patch.  Also here are the relevant devices 
from lspci -nn output:

00:03.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 19h 
USB4/Thunderbolt PCIe tunnel [1022:14ef]
00:04.1 PCI bridge [0604]: Advanced Micro Devices, Inc. [AMD] Family 19h 
USB4/Thunderbolt PCIe tunnel [1022:14ef]
.
.
.
c4:00.3 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Device 
[1022:15c0]
c4:00.4 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Device 
[1022:15c1]
c4:00.5 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Pink 
Sardine USB4/Thunderbolt NHI controller #1 [1022:1668]
c4:00.6 USB controller [0c03]: Advanced Micro Devices, Inc. [AMD] Pink 
Sardine USB4/Thunderbolt NHI controller #2 [1022:1669]

[-- Attachment #2: tree_after.txt --]
[-- Type: text/plain, Size: 22003 bytes --]

/sys/bus/pci/drivers/thunderbolt/
├── 0000:c4:00.5 -> ../../../../devices/pci0000:00/0000:00:08.3/0000:c4:00.5
│   ├── ari_enabled
│   ├── broken_parity_status
│   ├── class
│   ├── config
│   ├── consistent_dma_mask_bits
│   ├── consumer:pci:0000:00:03.1 -> ../../../virtual/devlink/pci:0000:c4:00.5--pci:0000:00:03.1
│   │   ├── auto_remove_on
│   │   ├── consumer -> ../../../pci0000:00/0000:00:03.1
│   │   │   ├── 0000:00:03.1:pcie001
│   │   │   │   ├── driver -> ../../../../bus/pci_express/drivers/pcie_pme
│   │   │   │   ├── power
│   │   │   │   ├── subsystem -> ../../../../bus/pci_express
│   │   │   │   └── uevent
│   │   │   ├── 0000:00:03.1:pcie004
│   │   │   │   ├── driver -> ../../../../bus/pci_express/drivers/pciehp
│   │   │   │   ├── power
│   │   │   │   ├── subsystem -> ../../../../bus/pci_express  [recursive, not followed]
│   │   │   │   └── uevent
│   │   │   ├── aer_dev_correctable
│   │   │   ├── aer_dev_fatal
│   │   │   ├── aer_dev_nonfatal
│   │   │   ├── aer_rootport_total_err_cor
│   │   │   ├── aer_rootport_total_err_fatal
│   │   │   ├── aer_rootport_total_err_nonfatal
│   │   │   ├── ari_enabled
│   │   │   ├── broken_parity_status
│   │   │   ├── class
│   │   │   ├── config
│   │   │   ├── consistent_dma_mask_bits
│   │   │   ├── current_link_speed
│   │   │   ├── current_link_width
│   │   │   ├── d3cold_allowed
│   │   │   ├── device
│   │   │   ├── dma_mask_bits
│   │   │   ├── driver -> ../../../bus/pci/drivers/pcieport
│   │   │   │   ├── 0000:00:01.3 -> ../../../../devices/pci0000:00/0000:00:01.3
│   │   │   │   ├── 0000:00:02.1 -> ../../../../devices/pci0000:00/0000:00:02.1
│   │   │   │   ├── 0000:00:02.4 -> ../../../../devices/pci0000:00/0000:00:02.4
│   │   │   │   ├── 0000:00:03.1 -> ../../../../devices/pci0000:00/0000:00:03.1  [recursive, not followed]
│   │   │   │   ├── 0000:00:04.1 -> ../../../../devices/pci0000:00/0000:00:04.1
│   │   │   │   ├── 0000:00:08.1 -> ../../../../devices/pci0000:00/0000:00:08.1
│   │   │   │   ├── 0000:00:08.2 -> ../../../../devices/pci0000:00/0000:00:08.2
│   │   │   │   ├── 0000:00:08.3 -> ../../../../devices/pci0000:00/0000:00:08.3
│   │   │   │   ├── bind
│   │   │   │   ├── new_id
│   │   │   │   ├── remove_id
│   │   │   │   ├── uevent
│   │   │   │   └── unbind
│   │   │   ├── driver_override
│   │   │   ├── enable
│   │   │   ├── firmware_node -> ../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:13
│   │   │   │   ├── adr
│   │   │   │   ├── device:14
│   │   │   │   ├── LNXPOWER:04
│   │   │   │   ├── path
│   │   │   │   ├── physical_node -> ../../../../pci0000:00/0000:00:03.1  [recursive, not followed]
│   │   │   │   ├── power
│   │   │   │   ├── power_resources_D0
│   │   │   │   ├── power_resources_D3hot
│   │   │   │   ├── power_state
│   │   │   │   ├── real_power_state
│   │   │   │   ├── status
│   │   │   │   ├── subsystem -> ../../../../../bus/acpi
│   │   │   │   ├── uevent
│   │   │   │   └── wakeup
│   │   │   ├── iommu -> ../0000:00:00.2/iommu/ivhd0
│   │   │   │   ├── amd-iommu
│   │   │   │   ├── device -> ../../../0000:00:00.2
│   │   │   │   ├── devices
│   │   │   │   ├── power
│   │   │   │   ├── subsystem -> ../../../../../class/iommu
│   │   │   │   └── uevent
│   │   │   ├── iommu_group -> ../../../kernel/iommu_groups/5
│   │   │   │   ├── devices
│   │   │   │   ├── reserved_regions
│   │   │   │   └── type
│   │   │   ├── irq
│   │   │   ├── link
│   │   │   ├── local_cpulist
│   │   │   ├── local_cpus
│   │   │   ├── max_link_speed
│   │   │   ├── max_link_width
│   │   │   ├── modalias
│   │   │   ├── msi_bus
│   │   │   ├── msi_irqs
│   │   │   │   └── 41
│   │   │   ├── numa_node
│   │   │   ├── pci_bus
│   │   │   │   └── 0000:04
│   │   │   ├── power
│   │   │   │   ├── async
│   │   │   │   ├── autosuspend_delay_ms
│   │   │   │   ├── control
│   │   │   │   ├── runtime_active_kids
│   │   │   │   ├── runtime_active_time
│   │   │   │   ├── runtime_enabled
│   │   │   │   ├── runtime_status
│   │   │   │   ├── runtime_suspended_time
│   │   │   │   ├── runtime_usage
│   │   │   │   ├── wakeup
│   │   │   │   ├── wakeup_abort_count
│   │   │   │   ├── wakeup_active
│   │   │   │   ├── wakeup_active_count
│   │   │   │   ├── wakeup_count
│   │   │   │   ├── wakeup_expire_count
│   │   │   │   ├── wakeup_last_time_ms
│   │   │   │   ├── wakeup_max_time_ms
│   │   │   │   └── wakeup_total_time_ms
│   │   │   ├── power_state
│   │   │   ├── remove
│   │   │   ├── rescan
│   │   │   ├── reset
│   │   │   ├── reset_method
│   │   │   ├── resource
│   │   │   ├── revision
│   │   │   ├── secondary_bus_number
│   │   │   ├── subordinate_bus_number
│   │   │   ├── subsystem -> ../../../bus/pci
│   │   │   │   ├── devices
│   │   │   │   ├── drivers
│   │   │   │   ├── drivers_autoprobe
│   │   │   │   ├── drivers_probe
│   │   │   │   ├── rescan
│   │   │   │   ├── resource_alignment
│   │   │   │   ├── slots
│   │   │   │   └── uevent
│   │   │   ├── subsystem_device
│   │   │   ├── subsystem_vendor
│   │   │   ├── supplier:pci:0000:c4:00.5 -> ../../virtual/devlink/pci:0000:c4:00.5--pci:0000:00:03.1  [recursive, not followed]
│   │   │   ├── uevent
│   │   │   ├── vendor
│   │   │   └── wakeup
│   │   │       └── wakeup6
│   │   ├── runtime_pm
│   │   ├── status
│   │   ├── subsystem -> ../../../../class/devlink
│   │   │   ├── pci:0000:c2:00.0--pci:0000:c2:00.1 -> ../../devices/virtual/devlink/pci:0000:c2:00.0--pci:0000:c2:00.1
│   │   │   │   ├── auto_remove_on
│   │   │   │   ├── consumer -> ../../../pci0000:00/0000:00:08.1/0000:c2:00.1
│   │   │   │   ├── runtime_pm
│   │   │   │   ├── status
│   │   │   │   ├── subsystem -> ../../../../class/devlink  [recursive, not followed]
│   │   │   │   ├── supplier -> ../../../pci0000:00/0000:00:08.1/0000:c2:00.0
│   │   │   │   ├── sync_state_only
│   │   │   │   └── uevent
│   │   │   ├── pci:0000:c4:00.5--pci:0000:00:03.1 -> ../../devices/virtual/devlink/pci:0000:c4:00.5--pci:0000:00:03.1  [recursive, not followed]
│   │   │   ├── pci:0000:c4:00.6--pci:0000:00:04.1 -> ../../devices/virtual/devlink/pci:0000:c4:00.6--pci:0000:00:04.1
│   │   │   │   ├── auto_remove_on
│   │   │   │   ├── consumer -> ../../../pci0000:00/0000:00:04.1  [recursive, not followed]
│   │   │   │   ├── runtime_pm
│   │   │   │   ├── status
│   │   │   │   ├── subsystem -> ../../../../class/devlink  [recursive, not followed]
│   │   │   │   ├── supplier -> ../../../pci0000:00/0000:00:08.3/0000:c4:00.6
│   │   │   │   ├── sync_state_only
│   │   │   │   └── uevent
│   │   │   ├── platform:PNP0C14:00--wmi:05901221-D566-11D1-B2F0-00A0C9062910 -> ../../devices/virtual/devlink/platform:PNP0C14:00--wmi:05901221-D566-11D1-B2F0-00A0C9062910
│   │   │   │   ├── auto_remove_on
│   │   │   │   ├── runtime_pm
│   │   │   │   ├── status
│   │   │   │   ├── subsystem -> ../../../../class/devlink  [recursive, not followed]
│   │   │   │   ├── sync_state_only
│   │   │   │   └── uevent
│   │   │   └── platform:PNP0C14:00--wmi:ABBC0F6A-8EA1-11D1-00A0-C90629100000 -> ../../devices/virtual/devlink/platform:PNP0C14:00--wmi:ABBC0F6A-8EA1-11D1-00A0-C90629100000
│   │   │       ├── auto_remove_on
│   │   │       ├── runtime_pm
│   │   │       ├── status
│   │   │       ├── subsystem -> ../../../../class/devlink  [recursive, not followed]
│   │   │       ├── sync_state_only
│   │   │       └── uevent
│   │   ├── supplier -> ../../../pci0000:00/0000:00:08.3/0000:c4:00.5  [recursive, not followed]
│   │   ├── sync_state_only
│   │   └── uevent
│   ├── current_link_speed
│   ├── current_link_width
│   ├── d3cold_allowed
│   ├── device
│   ├── dma_mask_bits
│   ├── domain0
│   │   ├── 0-0
│   │   │   ├── authorized
│   │   │   ├── generation
│   │   │   ├── power
│   │   │   │   ├── async
│   │   │   │   ├── autosuspend_delay_ms
│   │   │   │   ├── control
│   │   │   │   ├── runtime_active_kids
│   │   │   │   ├── runtime_active_time
│   │   │   │   ├── runtime_enabled
│   │   │   │   ├── runtime_status
│   │   │   │   ├── runtime_suspended_time
│   │   │   │   ├── runtime_usage
│   │   │   │   ├── wakeup
│   │   │   │   ├── wakeup_abort_count
│   │   │   │   ├── wakeup_active
│   │   │   │   ├── wakeup_active_count
│   │   │   │   ├── wakeup_count
│   │   │   │   ├── wakeup_expire_count
│   │   │   │   ├── wakeup_last_time_ms
│   │   │   │   ├── wakeup_max_time_ms
│   │   │   │   └── wakeup_total_time_ms
│   │   │   ├── subsystem -> ../../../../../../bus/thunderbolt
│   │   │   │   ├── devices
│   │   │   │   ├── drivers
│   │   │   │   ├── drivers_autoprobe
│   │   │   │   ├── drivers_probe
│   │   │   │   └── uevent
│   │   │   ├── uevent
│   │   │   ├── unique_id
│   │   │   ├── usb4_port2
│   │   │   │   ├── link
│   │   │   │   ├── power
│   │   │   │   └── uevent
│   │   │   └── wakeup
│   │   │       └── wakeup47
│   │   ├── deauthorization
│   │   ├── iommu_dma_protection
│   │   ├── power
│   │   │   ├── async
│   │   │   ├── runtime_active_kids
│   │   │   ├── runtime_enabled
│   │   │   ├── runtime_status
│   │   │   ├── runtime_usage
│   │   │   ├── wakeup
│   │   │   ├── wakeup_abort_count
│   │   │   ├── wakeup_active
│   │   │   ├── wakeup_active_count
│   │   │   ├── wakeup_count
│   │   │   ├── wakeup_expire_count
│   │   │   ├── wakeup_last_time_ms
│   │   │   ├── wakeup_max_time_ms
│   │   │   └── wakeup_total_time_ms
│   │   ├── security
│   │   ├── subsystem -> ../../../../../bus/thunderbolt  [recursive, not followed]
│   │   ├── uevent
│   │   └── wakeup
│   │       └── wakeup48
│   │           ├── active_count
│   │           ├── active_time_ms
│   │           ├── device -> ../../../domain0  [recursive, not followed]
│   │           ├── event_count
│   │           ├── expire_count
│   │           ├── last_change_ms
│   │           ├── max_time_ms
│   │           ├── name
│   │           ├── prevent_suspend_time_ms
│   │           ├── subsystem -> ../../../../../../../class/wakeup
│   │           ├── total_time_ms
│   │           ├── uevent
│   │           └── wakeup_count
│   ├── driver -> ../../../../bus/pci/drivers/thunderbolt  [recursive, not followed]
│   ├── driver_override
│   ├── enable
│   ├── firmware_node -> ../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:36/device:3b
│   │   ├── adr
│   │   ├── path
│   │   ├── physical_node -> ../../../../../pci0000:00/0000:00:08.3/0000:c4:00.5  [recursive, not followed]
│   │   ├── power
│   │   │   ├── async
│   │   │   ├── autosuspend_delay_ms
│   │   │   ├── control
│   │   │   ├── runtime_active_kids
│   │   │   ├── runtime_active_time
│   │   │   ├── runtime_enabled
│   │   │   ├── runtime_status
│   │   │   ├── runtime_suspended_time
│   │   │   └── runtime_usage
│   │   ├── power_resources_D0
│   │   │   └── LNXPOWER:0f -> ../../LNXPOWER:0f
│   │   │       ├── hid
│   │   │       ├── modalias
│   │   │       ├── path
│   │   │       ├── power
│   │   │       ├── resource_in_use
│   │   │       ├── status
│   │   │       ├── subsystem -> ../../../../../../bus/acpi  [recursive, not followed]
│   │   │       └── uevent
│   │   ├── power_resources_D3hot
│   │   │   └── LNXPOWER:0f -> ../../LNXPOWER:0f  [recursive, not followed]
│   │   ├── power_state
│   │   ├── real_power_state
│   │   ├── status
│   │   ├── subsystem -> ../../../../../../bus/acpi  [recursive, not followed]
│   │   ├── uevent
│   │   └── wakeup
│   │       └── wakeup29
│   │           ├── active_count
│   │           ├── active_time_ms
│   │           ├── device -> ../../../device:3b  [recursive, not followed]
│   │           ├── event_count
│   │           ├── expire_count
│   │           ├── last_change_ms
│   │           ├── max_time_ms
│   │           ├── name
│   │           ├── prevent_suspend_time_ms
│   │           ├── subsystem -> ../../../../../../../../class/wakeup  [recursive, not followed]
│   │           ├── total_time_ms
│   │           ├── uevent
│   │           └── wakeup_count
│   ├── iommu -> ../../0000:00:00.2/iommu/ivhd0  [recursive, not followed]
│   ├── iommu_group -> ../../../../kernel/iommu_groups/29
│   │   ├── devices
│   │   │   └── 0000:c4:00.5 -> ../../../../devices/pci0000:00/0000:00:08.3/0000:c4:00.5  [recursive, not followed]
│   │   ├── reserved_regions
│   │   └── type
│   ├── irq
│   ├── link
│   │   ├── l0s_aspm
│   │   └── l1_aspm
│   ├── local_cpulist
│   ├── local_cpus
│   ├── max_link_speed
│   ├── max_link_width
│   ├── modalias
│   ├── msi_bus
│   ├── msi_irqs
│   │   ├── 50
│   │   ├── 51
│   │   ├── 53
│   │   ├── 54
│   │   ├── 55
│   │   ├── 56
│   │   ├── 57
│   │   ├── 58
│   │   ├── 59
│   │   ├── 61
│   │   ├── 62
│   │   ├── 64
│   │   ├── 65
│   │   ├── 66
│   │   ├── 67
│   │   └── 68
│   ├── numa_node
│   ├── pools
│   ├── power
│   │   ├── async
│   │   ├── autosuspend_delay_ms
│   │   ├── control
│   │   ├── runtime_active_kids
│   │   ├── runtime_active_time
│   │   ├── runtime_enabled
│   │   ├── runtime_status
│   │   ├── runtime_suspended_time
│   │   ├── runtime_usage
│   │   ├── wakeup
│   │   ├── wakeup_abort_count
│   │   ├── wakeup_active
│   │   ├── wakeup_active_count
│   │   ├── wakeup_count
│   │   ├── wakeup_expire_count
│   │   ├── wakeup_last_time_ms
│   │   ├── wakeup_max_time_ms
│   │   └── wakeup_total_time_ms
│   ├── power_state
│   ├── remove
│   ├── rescan
│   ├── reset
│   ├── reset_method
│   ├── resource
│   ├── resource0
│   ├── revision
│   ├── subsystem -> ../../../../bus/pci  [recursive, not followed]
│   ├── subsystem_device
│   ├── subsystem_vendor
│   ├── uevent
│   ├── vendor
│   └── wakeup
│       └── wakeup49
│           ├── active_count
│           ├── active_time_ms
│           ├── device -> ../../../0000:c4:00.5  [recursive, not followed]
│           ├── event_count
│           ├── expire_count
│           ├── last_change_ms
│           ├── max_time_ms
│           ├── name
│           ├── prevent_suspend_time_ms
│           ├── subsystem -> ../../../../../../class/wakeup  [recursive, not followed]
│           ├── total_time_ms
│           ├── uevent
│           └── wakeup_count
├── 0000:c4:00.6 -> ../../../../devices/pci0000:00/0000:00:08.3/0000:c4:00.6  [recursive, not followed]
├── bind
├── module -> ../../../../module/thunderbolt
│   ├── coresize
│   ├── drivers
│   │   └── pci:thunderbolt -> ../../../bus/pci/drivers/thunderbolt  [recursive, not followed]
│   ├── holders
│   ├── initsize
│   ├── initstate
│   ├── notes
│   ├── parameters
│   │   ├── asym_threshold
│   │   ├── bw_alloc_mode
│   │   ├── clx
│   │   ├── dma_credits
│   │   ├── host_reset
│   │   ├── start_icm
│   │   └── xdomain
│   ├── refcnt
│   ├── sections
│   │   ├── __bpf_raw_tp_map
│   │   ├── __bug_table
│   │   ├── __dyndbg
│   │   ├── _ftrace_events
│   │   ├── __jump_table
│   │   ├── __kcrctab_gpl
│   │   ├── __ksymtab_gpl
│   │   ├── __ksymtab_strings
│   │   ├── __mcount_loc
│   │   ├── __param
│   │   ├── __patchable_function_entries
│   │   ├── __tracepoints
│   │   ├── __tracepoints_ptrs
│   │   └── __tracepoints_strings
│   ├── srcversion
│   ├── taint
│   └── uevent
├── new_id
├── remove_id
├── uevent
└── unbind

116 directories, 307 files

[-- Attachment #3: tree_before.txt --]
[-- Type: text/plain, Size: 22503 bytes --]

/sys/bus/pci/drivers/thunderbolt/
├── 0000:c4:00.5 -> ../../../../devices/pci0000:00/0000:00:08.3/0000:c4:00.5
│   ├── ari_enabled
│   ├── broken_parity_status
│   ├── class
│   ├── config
│   ├── consistent_dma_mask_bits
│   ├── consumer:pci:0000:00:03.1 -> ../../../virtual/devlink/pci:0000:c4:00.5--pci:0000:00:03.1
│   │   ├── auto_remove_on
│   │   ├── consumer -> ../../../pci0000:00/0000:00:03.1
│   │   │   ├── 0000:00:03.1:pcie001
│   │   │   │   ├── driver -> ../../../../bus/pci_express/drivers/pcie_pme
│   │   │   │   ├── power
│   │   │   │   ├── subsystem -> ../../../../bus/pci_express
│   │   │   │   └── uevent
│   │   │   ├── 0000:00:03.1:pcie004
│   │   │   │   ├── driver -> ../../../../bus/pci_express/drivers/pciehp
│   │   │   │   ├── power
│   │   │   │   ├── subsystem -> ../../../../bus/pci_express  [recursive, not followed]
│   │   │   │   └── uevent
│   │   │   ├── aer_dev_correctable
│   │   │   ├── aer_dev_fatal
│   │   │   ├── aer_dev_nonfatal
│   │   │   ├── aer_rootport_total_err_cor
│   │   │   ├── aer_rootport_total_err_fatal
│   │   │   ├── aer_rootport_total_err_nonfatal
│   │   │   ├── ari_enabled
│   │   │   ├── broken_parity_status
│   │   │   ├── class
│   │   │   ├── config
│   │   │   ├── consistent_dma_mask_bits
│   │   │   ├── current_link_speed
│   │   │   ├── current_link_width
│   │   │   ├── d3cold_allowed
│   │   │   ├── device
│   │   │   ├── dma_mask_bits
│   │   │   ├── driver -> ../../../bus/pci/drivers/pcieport
│   │   │   │   ├── 0000:00:01.3 -> ../../../../devices/pci0000:00/0000:00:01.3
│   │   │   │   ├── 0000:00:02.1 -> ../../../../devices/pci0000:00/0000:00:02.1
│   │   │   │   ├── 0000:00:02.4 -> ../../../../devices/pci0000:00/0000:00:02.4
│   │   │   │   ├── 0000:00:03.1 -> ../../../../devices/pci0000:00/0000:00:03.1  [recursive, not followed]
│   │   │   │   ├── 0000:00:04.1 -> ../../../../devices/pci0000:00/0000:00:04.1
│   │   │   │   ├── 0000:00:08.1 -> ../../../../devices/pci0000:00/0000:00:08.1
│   │   │   │   ├── 0000:00:08.2 -> ../../../../devices/pci0000:00/0000:00:08.2
│   │   │   │   ├── 0000:00:08.3 -> ../../../../devices/pci0000:00/0000:00:08.3
│   │   │   │   ├── bind
│   │   │   │   ├── new_id
│   │   │   │   ├── remove_id
│   │   │   │   ├── uevent
│   │   │   │   └── unbind
│   │   │   ├── driver_override
│   │   │   ├── enable
│   │   │   ├── firmware_node -> ../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:13
│   │   │   │   ├── adr
│   │   │   │   ├── device:14
│   │   │   │   ├── LNXPOWER:04
│   │   │   │   ├── path
│   │   │   │   ├── physical_node -> ../../../../pci0000:00/0000:00:03.1  [recursive, not followed]
│   │   │   │   ├── power
│   │   │   │   ├── power_resources_D0
│   │   │   │   ├── power_resources_D3hot
│   │   │   │   ├── power_state
│   │   │   │   ├── real_power_state
│   │   │   │   ├── status
│   │   │   │   ├── subsystem -> ../../../../../bus/acpi
│   │   │   │   ├── uevent
│   │   │   │   └── wakeup
│   │   │   ├── iommu -> ../0000:00:00.2/iommu/ivhd0
│   │   │   │   ├── amd-iommu
│   │   │   │   ├── device -> ../../../0000:00:00.2
│   │   │   │   ├── devices
│   │   │   │   ├── power
│   │   │   │   ├── subsystem -> ../../../../../class/iommu
│   │   │   │   └── uevent
│   │   │   ├── iommu_group -> ../../../kernel/iommu_groups/5
│   │   │   │   ├── devices
│   │   │   │   ├── reserved_regions
│   │   │   │   └── type
│   │   │   ├── irq
│   │   │   ├── link
│   │   │   ├── local_cpulist
│   │   │   ├── local_cpus
│   │   │   ├── max_link_speed
│   │   │   ├── max_link_width
│   │   │   ├── modalias
│   │   │   ├── msi_bus
│   │   │   ├── msi_irqs
│   │   │   │   └── 41
│   │   │   ├── numa_node
│   │   │   ├── pci_bus
│   │   │   │   └── 0000:04
│   │   │   ├── power
│   │   │   │   ├── autosuspend_delay_ms
│   │   │   │   ├── control
│   │   │   │   ├── runtime_active_time
│   │   │   │   ├── runtime_status
│   │   │   │   ├── runtime_suspended_time
│   │   │   │   ├── wakeup
│   │   │   │   ├── wakeup_abort_count
│   │   │   │   ├── wakeup_active
│   │   │   │   ├── wakeup_active_count
│   │   │   │   ├── wakeup_count
│   │   │   │   ├── wakeup_expire_count
│   │   │   │   ├── wakeup_last_time_ms
│   │   │   │   ├── wakeup_max_time_ms
│   │   │   │   └── wakeup_total_time_ms
│   │   │   ├── power_state
│   │   │   ├── remove
│   │   │   ├── rescan
│   │   │   ├── reset
│   │   │   ├── reset_method
│   │   │   ├── resource
│   │   │   ├── revision
│   │   │   ├── secondary_bus_number
│   │   │   ├── subordinate_bus_number
│   │   │   ├── subsystem -> ../../../bus/pci
│   │   │   │   ├── devices
│   │   │   │   ├── drivers
│   │   │   │   ├── drivers_autoprobe
│   │   │   │   ├── drivers_probe
│   │   │   │   ├── rescan
│   │   │   │   ├── resource_alignment
│   │   │   │   ├── slots
│   │   │   │   └── uevent
│   │   │   ├── subsystem_device
│   │   │   ├── subsystem_vendor
│   │   │   ├── supplier:pci:0000:c4:00.5 -> ../../virtual/devlink/pci:0000:c4:00.5--pci:0000:00:03.1  [recursive, not followed]
│   │   │   ├── uevent
│   │   │   ├── vendor
│   │   │   └── wakeup
│   │   │       └── wakeup6
│   │   ├── runtime_pm
│   │   ├── status
│   │   ├── subsystem -> ../../../../class/devlink
│   │   │   ├── pci:0000:c2:00.0--pci:0000:c2:00.1 -> ../../devices/virtual/devlink/pci:0000:c2:00.0--pci:0000:c2:00.1
│   │   │   │   ├── auto_remove_on
│   │   │   │   ├── consumer -> ../../../pci0000:00/0000:00:08.1/0000:c2:00.1
│   │   │   │   ├── runtime_pm
│   │   │   │   ├── status
│   │   │   │   ├── subsystem -> ../../../../class/devlink  [recursive, not followed]
│   │   │   │   ├── supplier -> ../../../pci0000:00/0000:00:08.1/0000:c2:00.0
│   │   │   │   ├── sync_state_only
│   │   │   │   └── uevent
│   │   │   ├── pci:0000:c4:00.5--pci:0000:00:03.1 -> ../../devices/virtual/devlink/pci:0000:c4:00.5--pci:0000:00:03.1  [recursive, not followed]
│   │   │   ├── pci:0000:c4:00.5--pci:0000:c4:00.3 -> ../../devices/virtual/devlink/pci:0000:c4:00.5--pci:0000:c4:00.3
│   │   │   │   ├── auto_remove_on
│   │   │   │   ├── consumer -> ../../../pci0000:00/0000:00:08.3/0000:c4:00.3
│   │   │   │   ├── runtime_pm
│   │   │   │   ├── status
│   │   │   │   ├── subsystem -> ../../../../class/devlink  [recursive, not followed]
│   │   │   │   ├── supplier -> ../../../pci0000:00/0000:00:08.3/0000:c4:00.5  [recursive, not followed]
│   │   │   │   ├── sync_state_only
│   │   │   │   └── uevent
│   │   │   ├── pci:0000:c4:00.6--pci:0000:00:04.1 -> ../../devices/virtual/devlink/pci:0000:c4:00.6--pci:0000:00:04.1
│   │   │   │   ├── auto_remove_on
│   │   │   │   ├── consumer -> ../../../pci0000:00/0000:00:04.1  [recursive, not followed]
│   │   │   │   ├── runtime_pm
│   │   │   │   ├── status
│   │   │   │   ├── subsystem -> ../../../../class/devlink  [recursive, not followed]
│   │   │   │   ├── supplier -> ../../../pci0000:00/0000:00:08.3/0000:c4:00.6
│   │   │   │   ├── sync_state_only
│   │   │   │   └── uevent
│   │   │   ├── pci:0000:c4:00.6--pci:0000:c4:00.4 -> ../../devices/virtual/devlink/pci:0000:c4:00.6--pci:0000:c4:00.4
│   │   │   │   ├── auto_remove_on
│   │   │   │   ├── consumer -> ../../../pci0000:00/0000:00:08.3/0000:c4:00.4
│   │   │   │   ├── runtime_pm
│   │   │   │   ├── status
│   │   │   │   ├── subsystem -> ../../../../class/devlink  [recursive, not followed]
│   │   │   │   ├── supplier -> ../../../pci0000:00/0000:00:08.3/0000:c4:00.6  [recursive, not followed]
│   │   │   │   ├── sync_state_only
│   │   │   │   └── uevent
│   │   │   ├── platform:PNP0C14:00--wmi:05901221-D566-11D1-B2F0-00A0C9062910 -> ../../devices/virtual/devlink/platform:PNP0C14:00--wmi:05901221-D566-11D1-B2F0-00A0C9062910
│   │   │   │   ├── auto_remove_on
│   │   │   │   ├── runtime_pm
│   │   │   │   ├── status
│   │   │   │   ├── subsystem -> ../../../../class/devlink  [recursive, not followed]
│   │   │   │   ├── sync_state_only
│   │   │   │   └── uevent
│   │   │   └── platform:PNP0C14:00--wmi:ABBC0F6A-8EA1-11D1-00A0-C90629100000 -> ../../devices/virtual/devlink/platform:PNP0C14:00--wmi:ABBC0F6A-8EA1-11D1-00A0-C90629100000
│   │   │       ├── auto_remove_on
│   │   │       ├── runtime_pm
│   │   │       ├── status
│   │   │       ├── subsystem -> ../../../../class/devlink  [recursive, not followed]
│   │   │       ├── sync_state_only
│   │   │       └── uevent
│   │   ├── supplier -> ../../../pci0000:00/0000:00:08.3/0000:c4:00.5  [recursive, not followed]
│   │   ├── sync_state_only
│   │   └── uevent
│   ├── consumer:pci:0000:c4:00.3 -> ../../../virtual/devlink/pci:0000:c4:00.5--pci:0000:c4:00.3  [recursive, not followed]
│   ├── current_link_speed
│   ├── current_link_width
│   ├── d3cold_allowed
│   ├── device
│   ├── dma_mask_bits
│   ├── domain0
│   │   ├── 0-0
│   │   │   ├── authorized
│   │   │   ├── generation
│   │   │   ├── power
│   │   │   │   ├── autosuspend_delay_ms
│   │   │   │   ├── control
│   │   │   │   ├── runtime_active_time
│   │   │   │   ├── runtime_status
│   │   │   │   ├── runtime_suspended_time
│   │   │   │   ├── wakeup
│   │   │   │   ├── wakeup_abort_count
│   │   │   │   ├── wakeup_active
│   │   │   │   ├── wakeup_active_count
│   │   │   │   ├── wakeup_count
│   │   │   │   ├── wakeup_expire_count
│   │   │   │   ├── wakeup_last_time_ms
│   │   │   │   ├── wakeup_max_time_ms
│   │   │   │   └── wakeup_total_time_ms
│   │   │   ├── subsystem -> ../../../../../../bus/thunderbolt
│   │   │   │   ├── devices
│   │   │   │   ├── drivers
│   │   │   │   ├── drivers_autoprobe
│   │   │   │   ├── drivers_probe
│   │   │   │   └── uevent
│   │   │   ├── uevent
│   │   │   ├── unique_id
│   │   │   ├── usb4_port2
│   │   │   │   ├── link
│   │   │   │   ├── power
│   │   │   │   └── uevent
│   │   │   └── wakeup
│   │   │       └── wakeup50
│   │   ├── deauthorization
│   │   ├── iommu_dma_protection
│   │   ├── power
│   │   │   ├── wakeup
│   │   │   ├── wakeup_abort_count
│   │   │   ├── wakeup_active
│   │   │   ├── wakeup_active_count
│   │   │   ├── wakeup_count
│   │   │   ├── wakeup_expire_count
│   │   │   ├── wakeup_last_time_ms
│   │   │   ├── wakeup_max_time_ms
│   │   │   └── wakeup_total_time_ms
│   │   ├── security
│   │   ├── subsystem -> ../../../../../bus/thunderbolt  [recursive, not followed]
│   │   ├── uevent
│   │   └── wakeup
│   │       └── wakeup51
│   │           ├── active_count
│   │           ├── active_time_ms
│   │           ├── device -> ../../../domain0  [recursive, not followed]
│   │           ├── event_count
│   │           ├── expire_count
│   │           ├── last_change_ms
│   │           ├── max_time_ms
│   │           ├── name
│   │           ├── prevent_suspend_time_ms
│   │           ├── subsystem -> ../../../../../../../class/wakeup
│   │           ├── total_time_ms
│   │           ├── uevent
│   │           └── wakeup_count
│   ├── driver -> ../../../../bus/pci/drivers/thunderbolt  [recursive, not followed]
│   ├── driver_override
│   ├── enable
│   ├── firmware_node -> ../../../LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:36/device:3b
│   │   ├── adr
│   │   ├── path
│   │   ├── physical_node -> ../../../../../pci0000:00/0000:00:08.3/0000:c4:00.5  [recursive, not followed]
│   │   ├── power
│   │   │   ├── autosuspend_delay_ms
│   │   │   ├── control
│   │   │   ├── runtime_active_time
│   │   │   ├── runtime_status
│   │   │   └── runtime_suspended_time
│   │   ├── power_resources_D0
│   │   │   └── LNXPOWER:0f -> ../../LNXPOWER:0f
│   │   │       ├── hid
│   │   │       ├── modalias
│   │   │       ├── path
│   │   │       ├── power
│   │   │       ├── resource_in_use
│   │   │       ├── status
│   │   │       ├── subsystem -> ../../../../../../bus/acpi  [recursive, not followed]
│   │   │       └── uevent
│   │   ├── power_resources_D3hot
│   │   │   └── LNXPOWER:0f -> ../../LNXPOWER:0f  [recursive, not followed]
│   │   ├── power_state
│   │   ├── real_power_state
│   │   ├── status
│   │   ├── subsystem -> ../../../../../../bus/acpi  [recursive, not followed]
│   │   ├── uevent
│   │   └── wakeup
│   │       └── wakeup29
│   │           ├── active_count
│   │           ├── active_time_ms
│   │           ├── device -> ../../../device:3b  [recursive, not followed]
│   │           ├── event_count
│   │           ├── expire_count
│   │           ├── last_change_ms
│   │           ├── max_time_ms
│   │           ├── name
│   │           ├── prevent_suspend_time_ms
│   │           ├── subsystem -> ../../../../../../../../class/wakeup  [recursive, not followed]
│   │           ├── total_time_ms
│   │           ├── uevent
│   │           └── wakeup_count
│   ├── iommu -> ../../0000:00:00.2/iommu/ivhd0  [recursive, not followed]
│   ├── iommu_group -> ../../../../kernel/iommu_groups/29
│   │   ├── devices
│   │   │   └── 0000:c4:00.5 -> ../../../../devices/pci0000:00/0000:00:08.3/0000:c4:00.5  [recursive, not followed]
│   │   ├── reserved_regions
│   │   └── type
│   ├── irq
│   ├── link
│   │   ├── l0s_aspm
│   │   └── l1_aspm
│   ├── local_cpulist
│   ├── local_cpus
│   ├── max_link_speed
│   ├── max_link_width
│   ├── modalias
│   ├── msi_bus
│   ├── msi_irqs
│   │   ├── 57
│   │   ├── 59
│   │   ├── 60
│   │   ├── 61
│   │   ├── 62
│   │   ├── 63
│   │   ├── 64
│   │   ├── 65
│   │   ├── 66
│   │   ├── 67
│   │   ├── 68
│   │   ├── 69
│   │   ├── 70
│   │   ├── 71
│   │   ├── 72
│   │   └── 73
│   ├── numa_node
│   ├── pools
│   ├── power
│   │   ├── autosuspend_delay_ms
│   │   ├── control
│   │   ├── runtime_active_time
│   │   ├── runtime_status
│   │   ├── runtime_suspended_time
│   │   ├── wakeup
│   │   ├── wakeup_abort_count
│   │   ├── wakeup_active
│   │   ├── wakeup_active_count
│   │   ├── wakeup_count
│   │   ├── wakeup_expire_count
│   │   ├── wakeup_last_time_ms
│   │   ├── wakeup_max_time_ms
│   │   └── wakeup_total_time_ms
│   ├── power_state
│   ├── remove
│   ├── rescan
│   ├── reset
│   ├── reset_method
│   ├── resource
│   ├── resource0
│   ├── revision
│   ├── subsystem -> ../../../../bus/pci  [recursive, not followed]
│   ├── subsystem_device
│   ├── subsystem_vendor
│   ├── uevent
│   ├── vendor
│   └── wakeup
│       └── wakeup52
│           ├── active_count
│           ├── active_time_ms
│           ├── device -> ../../../0000:c4:00.5  [recursive, not followed]
│           ├── event_count
│           ├── expire_count
│           ├── last_change_ms
│           ├── max_time_ms
│           ├── name
│           ├── prevent_suspend_time_ms
│           ├── subsystem -> ../../../../../../class/wakeup  [recursive, not followed]
│           ├── total_time_ms
│           ├── uevent
│           └── wakeup_count
├── 0000:c4:00.6 -> ../../../../devices/pci0000:00/0000:00:08.3/0000:c4:00.6  [recursive, not followed]
├── bind
├── module -> ../../../../module/thunderbolt
│   ├── coresize
│   ├── drivers
│   │   └── pci:thunderbolt -> ../../../bus/pci/drivers/thunderbolt  [recursive, not followed]
│   ├── holders
│   ├── initsize
│   ├── initstate
│   ├── notes
│   ├── parameters
│   │   ├── asym_threshold
│   │   ├── bw_alloc_mode
│   │   ├── clx
│   │   ├── dma_credits
│   │   ├── host_reset
│   │   ├── start_icm
│   │   └── xdomain
│   ├── refcnt
│   ├── sections
│   │   ├── __bpf_raw_tp_map
│   │   ├── __bug_table
│   │   ├── __dyndbg
│   │   ├── _ftrace_events
│   │   ├── __jump_table
│   │   ├── __ksymtab_gpl
│   │   ├── __ksymtab_strings
│   │   ├── __mcount_loc
│   │   ├── __param
│   │   ├── __patchable_function_entries
│   │   ├── __tracepoints
│   │   ├── __tracepoints_ptrs
│   │   └── __tracepoints_strings
│   ├── taint
│   └── uevent
├── new_id
├── remove_id
├── uevent
└── unbind

125 directories, 294 files

  reply	other threads:[~2024-06-20 18:37 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-06-19 13:03 [PATCH 0/4] Add device links between tunneled USB3 devices and USB4 Host Mathias Nyman
2024-06-19 13:03 ` [PATCH 1/4] xhci: Add USB4 tunnel detection for USB3 devices on Intel hosts Mathias Nyman
2024-06-19 13:03 ` [PATCH 2/4] usb: Add tunneled parameter to usb device structure Mathias Nyman
2024-06-19 13:03 ` [PATCH 3/4] usb: acpi: add device link between tunneled USB3 device and USB4 Host Interface Mathias Nyman
2024-06-19 13:03 ` [PATCH 4/4] thunderbolt: Don't create device link from USB4 Host Interface to USB3 xHC host Mathias Nyman
2024-06-20  6:41 ` [PATCH 0/4] Add device links between tunneled USB3 devices and USB4 Host Mika Westerberg
2024-06-20 18:36   ` Mario Limonciello [this message]
2024-06-21  6:19     ` Mika Westerberg
2024-06-21 16:30       ` Mario Limonciello
2024-06-24  4:59         ` Mika Westerberg
2024-06-24 18:41           ` Mario Limonciello
2024-06-25  5:02             ` Mika Westerberg
2024-06-25 14:37           ` Mathias Nyman
2024-06-25 14:45             ` Mika Westerberg
2024-06-25 14:55               ` Mario Limonciello

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=9ec62b68-7eef-4d33-bc47-1d13e8eec820@amd.com \
    --to=mario.limonciello@amd.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=mathias.nyman@linux.intel.com \
    --cc=mika.westerberg@linux.intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox