From: Bjorn Helgaas <helgaas@kernel.org>
To: Jack Coulter <jscinoz@jscinoz.so>
Cc: Andreas Noever <andreas.noever@gmail.com>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-acpi@vger.kernel.org,
"Rafael J. Wysocki" <rafael@kernel.org>
Subject: Re: Thunderbolt 3 (Skylake / Alpine Ridge) hotplug
Date: Tue, 15 Mar 2016 12:29:09 -0500 [thread overview]
Message-ID: <20160315172909.GF19974@localhost> (raw)
In-Reply-To: <56D0085B.60402@jscinoz.so>
[+cc Rafael, linux-acpi]
Hi Jack,
On Fri, Feb 26, 2016 at 07:10:03PM +1100, Jack Coulter wrote:
>
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA256
>
> Hi Andreas,
>
> I was asking around on #linux-pci on OFTC and it was mentioned that you
> were the maintainer for Linux Thunderbolt support, and that I should
> direct my query to you and the linux-pci & linux-kernel lists.
>
> I'm attempting to use the Thunderbolt 3 (which has a USB Type-C
> connector) port on my laptop, a Dell XPS 15 (9550). The external device
> I'm attempting to use is a gigabit ethernet + USB 3.0 hub, of an unknown
> / generic brand, but bears model number KY-688 if that's of any use.
>
> When the device is present at system startup, everything works
> correctly, and shows up in lspci as a USB controller, which lsusb shows
> having a hub and ethernet NIC attached, which the r8152 driver binds and
> uses without issue:
>
> lspci -v:
> > 0a:00.0 USB controller: Intel Corporation Device 15b5 (prog-if 30 [XHCI])
> > Subsystem: Device 2222:1111
> > Flags: bus master, fast devsel, latency 0, IRQ 131
> > Memory at c4200000 (32-bit, non-prefetchable) [size=64K]
> > Capabilities: [80] Power Management version 3
> > Capabilities: [88] MSI: Enable+ Count=1/8 Maskable- 64bit+
> > Capabilities: [c0] Express Endpoint, MSI 00
> > Capabilities: [100] Device Serial Number a3-21-b5-60-a7-23-04-00
> > Capabilities: [200] Advanced Error Reporting
> > Capabilities: [300] Virtual Channel
> > Capabilities: [400] Power Budgeting <?>
> > Capabilities: [500] Vendor Specific Information: ID=1234 Rev=1
> Len=0d8 <?>
> > Capabilities: [600] Latency Tolerance Reporting
> > Capabilities: [700] #19
> > Kernel driver in use: xhci_hcd
>
>
> lspci -tv (Thunderbolt device is 15b5)
> > -[0000:00]-+-00.0 Intel Corporation Sky Lake Host Bridge/DRAM Registers
> > +-01.0-[01]----00.0 NVIDIA Corporation GM107M [GeForce GTX
> 960M]
> > +-02.0 Intel Corporation Device 191b
> > +-04.0 Intel Corporation Device 1903
> > +-14.0 Intel Corporation Sunrise Point-H USB 3.0 xHCI
> Controller
> > +-14.2 Intel Corporation Sunrise Point-H Thermal subsystem
> > +-15.0 Intel Corporation Sunrise Point-H LPSS I2C
> Controller #0
> > +-15.1 Intel Corporation Sunrise Point-H LPSS I2C
> Controller #1
> > +-16.0 Intel Corporation Sunrise Point-H CSME HECI #1
> > +-1c.0-[02]----00.0 Broadcom Corporation BCM43602 802.11ac
> Wireless LAN SoC
> > +-1c.1-[03]----00.0 Realtek Semiconductor Co., Ltd. Device
> 525a
> > +-1d.0-[04]----00.0 Samsung Electronics Co Ltd Device a802
> > +-1d.4-[05]--
> > +-1d.6-[06-3e]----00.0-[07-0a]--+-00.0-[08]--
> > | +-01.0-[09]--
> > | \-02.0-[0a]----00.0 Intel
> Corporation Device 15b5
> > +-1f.0 Intel Corporation Sunrise Point-H LPC Controller
> > +-1f.2 Intel Corporation Sunrise Point-H PMC
> > +-1f.3 Intel Corporation Sunrise Point-H HD Audio
> > \-1f.4 Intel Corporation Sunrise Point-H SMBus
>
> lsusb -tv:
> > /: Bus 04.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
> > |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
> > |__ Port 1: Dev 3, If 0, Class=Vendor Specific Class,
> Driver=r8152, 5000M
> > /: Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
> > |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
> > |__ Port 3: Dev 3, If 0, Class=Human Interface Device,
> Driver=usbhid, 12M
> > |__ Port 3: Dev 3, If 1, Class=Human Interface Device,
> Driver=usbhid, 12M
> > |__ Port 3: Dev 3, If 2, Class=Human Interface Device,
> Driver=usbhid, 12M
> > |__ Port 3: Dev 3, If 3, Class=Human Interface Device,
> Driver=usbhid, 12M
> > /: Bus 02.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 5000M
> > /: Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/16p, 480M
> > |__ Port 4: Dev 2, If 0, Class=Vendor Specific Class,
> Driver=btusb, 12M
> > |__ Port 4: Dev 2, If 1, Class=Vendor Specific Class,
> Driver=btusb, 12M
> > |__ Port 4: Dev 2, If 2, Class=Vendor Specific Class,
> Driver=btusb, 12M
> > |__ Port 4: Dev 2, If 3, Class=Application Specific Interface,
> Driver=, 12M
> > |__ Port 12: Dev 3, If 0, Class=Video, Driver=uvcvideo, 480M
> > |__ Port 12: Dev 3, If 1, Class=Video, Driver=uvcvideo, 480M
>
>
> However, if the device is connected after the system boots (or
> disconnected and reconnected), it is not detected at all. No messages
> show up in dmesg upon connection and no additional devices show up in
> the output of lspci & lsusb. Strangely enough, USB devices connected to
> the external hub do still receive power.
>
> I also have the following options relating to PCI hotplug set in my
> kernel config:
>
> > CONFIG_HOTPLUG_PCI_PCIE=y
> > CONFIG_HOTPLUG_PCI=y
> > CONFIG_HOTPLUG_PCI_ACPI=y
> > CONFIG_HOTPLUG_PCI_ACPI_IBM=y
>
> I'm running the 4.4.2 kernel, booted via EFI. From what I've read,
> Thunderbolt hotplug has been working since 3.17, controlled by the
> CONFIG_THUNDERBOLT option. However regardless of whether this option is
> enabled or disabled, hotplug does not appeare to work on my hardware.
> From reading the in-kernel help text for this option, I suspect that
> it's only relevant for the older Cactus Ridge Thunderbolt controller
> present in 2012-era MacBooks.
Can you open a report at http://bugzilla.kernel.org, category
drivers/PCI, and attach complete "lspci -vv" output (run as root) and
complete dmesg logs, both when hub is attached at boot, and when
booting without hub and attaching hub later?
I don't know much about Thunderbolt. But since it appears as a PCI
device, I would expect some sort of hotplug notification when you
attach the hub. If pciehp handles hotplug, it looks like we should
see something from pcie_isr() in the dmesg log.
Since you don't see that, I suspect we're getting ACPI notifications
via the acpiphp driver. I'm not as familiar with that, so I don't
know what if anything it logs. If you're inclined, you could add some
printks in
acpiphp_add_context()
acpi_device_hotplug()
acpiphp_hotplug_notify()
hotplug_event()
Then we'd at least see if we get any ACPI notifications.
Bjorn
next prev parent reply other threads:[~2016-03-15 17:29 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-26 8:10 Thunderbolt 3 (Skylake / Alpine Ridge) hotplug Jack Coulter
2016-03-15 17:29 ` Bjorn Helgaas [this message]
2016-03-16 13:22 ` Lukas Wunner
2016-03-22 8:06 ` Jack Coulter
2016-03-22 8:26 ` Jack Coulter
2016-03-15 18:03 ` Andreas Noever
2016-03-15 18:03 ` Andreas Noever
2016-03-17 0:59 ` Chris Lawrence
2016-03-22 8:11 ` Jack Coulter
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=20160315172909.GF19974@localhost \
--to=helgaas@kernel.org \
--cc=andreas.noever@gmail.com \
--cc=jscinoz@jscinoz.so \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=rafael@kernel.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.