All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bjorn Helgaas <helgaas@kernel.org>
To: Lukas Wunner <lukas@wunner.de>
Cc: linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org,
	Andreas Noever <andreas.noever@gmail.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: Re: [PATCH 1/3] PCI: Add Thunderbolt device IDs
Date: Fri, 8 Apr 2016 11:20:50 -0500	[thread overview]
Message-ID: <20160408162049.GG8780@localhost> (raw)
In-Reply-To: <cc23dc43ce25142f1b097a73c17bbcdada3f964d.1458475382.git.lukas@wunner.de>

[+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 <andreas.noever@gmail.com>
> Signed-off-by: Lukas Wunner <lukas@wunner.de>
> Acked-by: Bjorn Helgaas <bhelgaas@google.com>

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

      parent reply	other threads:[~2016-04-08 16:20 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-03-20 12:57 [PATCH 1/3] PCI: Add Thunderbolt device IDs Lukas Wunner
2016-03-20 12:57 ` [PATCH 3/3] thunderbolt: Support 1st gen Light Ridge controller Lukas Wunner
2016-03-21 18:38   ` Andreas Noever
2016-03-20 12:57 ` [PATCH 2/3] thunderbolt: Fix typos and magic number Lukas Wunner
2016-04-08 16:20 ` Bjorn Helgaas [this message]

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=20160408162049.GG8780@localhost \
    --to=helgaas@kernel.org \
    --cc=andreas.noever@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=lukas@wunner.de \
    /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.