Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758636AbcDHQU4 (ORCPT ); Fri, 8 Apr 2016 12:20:56 -0400 Received: from mail.kernel.org ([198.145.29.136]:44316 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754160AbcDHQUz (ORCPT ); Fri, 8 Apr 2016 12:20:55 -0400 Date: Fri, 8 Apr 2016 11:20:50 -0500 From: Bjorn Helgaas To: Lukas Wunner Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org, Andreas Noever , Greg Kroah-Hartman Subject: Re: [PATCH 1/3] PCI: Add Thunderbolt device IDs Message-ID: <20160408162049.GG8780@localhost> References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 6452 Lines: 153 [+cc Greg] On Sun, Mar 20, 2016 at 01:57:20PM +0100, Lukas Wunner wrote: > Gen 1 and 2 chips use the same ID for NHI, bridges and switch. > Gen 3 chips and onward use a distinct ID for the NHI. > > No functional change intended. > > Cc: Andreas Noever > Signed-off-by: Lukas Wunner > Acked-by: Bjorn Helgaas All three patches applied with Andreas' ack to pci/thunderbolt for v4.7, thanks! > --- > drivers/pci/quirks.c | 16 ++++++++++------ > drivers/thunderbolt/nhi.c | 8 +++++--- > drivers/thunderbolt/switch.c | 9 +++++---- > include/linux/pci_ids.h | 18 ++++++++++++++++++ > 4 files changed, 38 insertions(+), 13 deletions(-) > > diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c > index 8e67802..b584ddf 100644 > --- a/drivers/pci/quirks.c > +++ b/drivers/pci/quirks.c > @@ -3232,7 +3232,8 @@ static void quirk_apple_poweroff_thunderbolt(struct pci_dev *dev) > acpi_execute_simple_method(SXIO, NULL, 0); > acpi_execute_simple_method(SXLV, NULL, 0); > } > -DECLARE_PCI_FIXUP_SUSPEND_LATE(PCI_VENDOR_ID_INTEL, 0x1547, > +DECLARE_PCI_FIXUP_SUSPEND_LATE(PCI_VENDOR_ID_INTEL, > + PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C, > quirk_apple_poweroff_thunderbolt); > > /* > @@ -3266,9 +3267,10 @@ static void quirk_apple_wait_for_thunderbolt(struct pci_dev *dev) > if (!nhi) > goto out; > if (nhi->vendor != PCI_VENDOR_ID_INTEL > - || (nhi->device != 0x1547 && nhi->device != 0x156c) > - || nhi->subsystem_vendor != 0x2222 > - || nhi->subsystem_device != 0x1111) > + || (nhi->device != PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C && > + nhi->device != PCI_DEVICE_ID_INTEL_FALCON_RIDGE_4C_NHI) > + || nhi->subsystem_vendor != 0x2222 > + || nhi->subsystem_device != 0x1111) > goto out; > dev_info(&dev->dev, "quirk: waiting for thunderbolt to reestablish PCI tunnels...\n"); > device_pm_wait_for_dev(&dev->dev, &nhi->dev); > @@ -3276,9 +3278,11 @@ out: > pci_dev_put(nhi); > pci_dev_put(sibling); > } > -DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_INTEL, 0x1547, > +DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_INTEL, > + PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C, > quirk_apple_wait_for_thunderbolt); > -DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_INTEL, 0x156d, > +DECLARE_PCI_FIXUP_RESUME_EARLY(PCI_VENDOR_ID_INTEL, > + PCI_DEVICE_ID_INTEL_FALCON_RIDGE_4C_BRIDGE, > quirk_apple_wait_for_thunderbolt); > #endif > > diff --git a/drivers/thunderbolt/nhi.c b/drivers/thunderbolt/nhi.c > index 20a41f7..36be23b 100644 > --- a/drivers/thunderbolt/nhi.c > +++ b/drivers/thunderbolt/nhi.c > @@ -633,16 +633,18 @@ static const struct dev_pm_ops nhi_pm_ops = { > static struct pci_device_id nhi_ids[] = { > /* > * We have to specify class, the TB bridges use the same device and > - * vendor (sub)id. > + * vendor (sub)id on gen 1 and gen 2 controllers. > */ > { > .class = PCI_CLASS_SYSTEM_OTHER << 8, .class_mask = ~0, > - .vendor = PCI_VENDOR_ID_INTEL, .device = 0x1547, > + .vendor = PCI_VENDOR_ID_INTEL, > + .device = PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C, > .subvendor = 0x2222, .subdevice = 0x1111, > }, > { > .class = PCI_CLASS_SYSTEM_OTHER << 8, .class_mask = ~0, > - .vendor = PCI_VENDOR_ID_INTEL, .device = 0x156c, > + .vendor = PCI_VENDOR_ID_INTEL, > + .device = PCI_DEVICE_ID_INTEL_FALCON_RIDGE_4C_NHI, > .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, > }, > { 0,} > diff --git a/drivers/thunderbolt/switch.c b/drivers/thunderbolt/switch.c > index aeb9829..db73ffe 100644 > --- a/drivers/thunderbolt/switch.c > +++ b/drivers/thunderbolt/switch.c > @@ -293,9 +293,9 @@ static int tb_plug_events_active(struct tb_switch *sw, bool active) > if (active) { > data = data & 0xFFFFFF83; > switch (sw->config.device_id) { > - case 0x1513: > - case 0x151a: > - case 0x1549: > + case PCI_DEVICE_ID_INTEL_LIGHT_RIDGE: > + case PCI_DEVICE_ID_INTEL_EAGLE_RIDGE: > + case PCI_DEVICE_ID_INTEL_PORT_RIDGE: > break; > default: > data |= 4; > @@ -370,7 +370,8 @@ struct tb_switch *tb_switch_alloc(struct tb *tb, u64 route) > tb_sw_warn(sw, "unknown switch vendor id %#x\n", > sw->config.vendor_id); > > - if (sw->config.device_id != 0x1547 && sw->config.device_id != 0x1549) > + if (sw->config.device_id != PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C && > + sw->config.device_id != PCI_DEVICE_ID_INTEL_PORT_RIDGE) > tb_sw_warn(sw, "unsupported switch device id %#x\n", > sw->config.device_id); > > diff --git a/include/linux/pci_ids.h b/include/linux/pci_ids.h > index 247da8c..c58752f 100644 > --- a/include/linux/pci_ids.h > +++ b/include/linux/pci_ids.h > @@ -2604,6 +2604,24 @@ > #define PCI_DEVICE_ID_INTEL_82441 0x1237 > #define PCI_DEVICE_ID_INTEL_82380FB 0x124b > #define PCI_DEVICE_ID_INTEL_82439 0x1250 > +#define PCI_DEVICE_ID_INTEL_LIGHT_RIDGE 0x1513 /* Tbt 1 Gen 1 */ > +#define PCI_DEVICE_ID_INTEL_EAGLE_RIDGE 0x151a > +#define PCI_DEVICE_ID_INTEL_LIGHT_PEAK 0x151b > +#define PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_4C 0x1547 /* Tbt 1 Gen 2 */ > +#define PCI_DEVICE_ID_INTEL_CACTUS_RIDGE_2C 0x1548 > +#define PCI_DEVICE_ID_INTEL_PORT_RIDGE 0x1549 > +#define PCI_DEVICE_ID_INTEL_REDWOOD_RIDGE_2C_NHI 0x1566 /* Tbt 1 Gen 3 */ > +#define PCI_DEVICE_ID_INTEL_REDWOOD_RIDGE_2C_BRIDGE 0x1567 > +#define PCI_DEVICE_ID_INTEL_REDWOOD_RIDGE_4C_NHI 0x1568 > +#define PCI_DEVICE_ID_INTEL_REDWOOD_RIDGE_4C_BRIDGE 0x1569 > +#define PCI_DEVICE_ID_INTEL_FALCON_RIDGE_2C_NHI 0x156a /* Thunderbolt 2 */ > +#define PCI_DEVICE_ID_INTEL_FALCON_RIDGE_2C_BRIDGE 0x156b > +#define PCI_DEVICE_ID_INTEL_FALCON_RIDGE_4C_NHI 0x156c > +#define PCI_DEVICE_ID_INTEL_FALCON_RIDGE_4C_BRIDGE 0x156d > +#define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_2C_NHI 0x1575 /* Thunderbolt 3 */ > +#define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_2C_BRIDGE 0x1576 > +#define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_4C_NHI 0x1577 > +#define PCI_DEVICE_ID_INTEL_ALPINE_RIDGE_4C_BRIDGE 0x1578 > #define PCI_DEVICE_ID_INTEL_80960_RP 0x1960 > #define PCI_DEVICE_ID_INTEL_82840_HB 0x1a21 > #define PCI_DEVICE_ID_INTEL_82845_HB 0x1a30 > -- > 2.8.0.rc3 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-pci" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html