From: Bjorn Helgaas <helgaas@kernel.org>
To: Piotr Kwapulinski <piotr.kwapulinski@intel.com>
Cc: intel-wired-lan@lists.osuosl.org, netdev@vger.kernel.org,
bhelgaas@google.com, linux-pci@vger.kernel.org,
linux-kernel@vger.kernel.org,
Przemek Kitszel <przemyslaw.kitszel@intel.com>
Subject: Re: [PATCH iwl-next 1/2] PCI: Add PCI_VDEVICE_SUB helper macro
Date: Thu, 17 Oct 2024 09:21:52 -0500 [thread overview]
Message-ID: <20241017142152.GA685610@bhelgaas> (raw)
In-Reply-To: <20241017131647.4255-1-piotr.kwapulinski@intel.com>
On Thu, Oct 17, 2024 at 03:16:47PM +0200, Piotr Kwapulinski wrote:
> PCI_VDEVICE_SUB generates the pci_device_id struct layout for
> the specific PCI device/subdevice. The subvendor field is set
> to PCI_ANY_ID. Private data may follow the output.
>
> Reviewed-by: Przemek Kitszel <przemyslaw.kitszel@intel.com>
> Signed-off-by: Piotr Kwapulinski <piotr.kwapulinski@intel.com>
> ---
> include/linux/pci.h | 14 ++++++++++++++
> 1 file changed, 14 insertions(+)
>
> This patch is a part of the series from netdev.
>
> diff --git a/include/linux/pci.h b/include/linux/pci.h
> index 573b4c4..2b6b2c8 100644
> --- a/include/linux/pci.h
> +++ b/include/linux/pci.h
> @@ -1050,6 +1050,20 @@ struct pci_driver {
> .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
> .subvendor = PCI_ANY_ID, .subdevice = PCI_ANY_ID, 0, 0
>
> +/**
> + * PCI_VDEVICE_SUB - describe a specific PCI device/subdevice in a short form
> + * @vend: the vendor name
> + * @dev: the 16 bit PCI Device ID
> + * @subdev: the 16 bit PCI Subdevice ID
> + *
> + * Generate the pci_device_id struct layout for the specific PCI
> + * device/subdevice. The subvendor field is set to PCI_ANY_ID. Private data
> + * may follow the output.
> + */
> +#define PCI_VDEVICE_SUB(vend, dev, subdev) \
> + .vendor = PCI_VENDOR_ID_##vend, .device = (dev), \
> + .subvendor = PCI_ANY_ID, .subdevice = subdev, 0, 0
I don't think it's right to specify the subdevice (actually "Subsystem
ID" per spec) without specifying the subvendor ("Subsystem Vendor ID"
in the spec).
Subsystem IDs are assigned by the vendor, so they have to be used in
conjunction with the Subsystem Vendor ID. See PCIe r6.0, sec
7.5.1.2.3:
Values for the Subsystem ID are vendor assigned. Subsystem ID
values, in conjunction with the Subsystem Vendor ID, form a unique
identifier for the PCI product. Subsystem ID and Device ID values
are distinct and unrelated to each other, and software should not
assume any relationship between them.
next prev parent reply other threads:[~2024-10-17 14:21 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-17 13:16 [PATCH iwl-next 1/2] PCI: Add PCI_VDEVICE_SUB helper macro Piotr Kwapulinski
2024-10-17 14:21 ` Bjorn Helgaas [this message]
2024-10-21 9:33 ` Kwapulinski, Piotr
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=20241017142152.GA685610@bhelgaas \
--to=helgaas@kernel.org \
--cc=bhelgaas@google.com \
--cc=intel-wired-lan@lists.osuosl.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=netdev@vger.kernel.org \
--cc=piotr.kwapulinski@intel.com \
--cc=przemyslaw.kitszel@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