public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
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

  reply	other threads:[~2016-03-15 17:29 UTC|newest]

Thread overview: 7+ 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-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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox