From: Bjorn Helgaas <helgaas@kernel.org>
To: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Cc: linux-cxl@vger.kernel.org, linux-pci@vger.kernel.org,
Dan Williams <dan.j.williams@intel.com>,
Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>,
Ben Widawsky <ben.widawsky@intel.com>,
Chris Browy <cbrowy@avery-design.com>,
linux-acpi@vger.kernel.org, alison.schofield@intel.com,
vishal.l.verma@intel.com, ira.weiny@intel.com,
linuxarm@huawei.com, Fangjian <f.fangjian@huawei.com>
Subject: Re: [RFC PATCH v3 2/4] PCI/doe: Add Data Object Exchange support
Date: Fri, 7 May 2021 18:10:13 -0500 [thread overview]
Message-ID: <20210507231013.GA1548806@bjorn-Precision-5520> (raw)
In-Reply-To: <20210419165451.2176200-3-Jonathan.Cameron@huawei.com>
s/doe/DOE/ in subject.
On Tue, Apr 20, 2021 at 12:54:49AM +0800, Jonathan Cameron wrote:
> Introduced in a PCI ECN [1], DOE provides a config space
> based mailbox with standard protocol discovery. Each mailbox
> is accessed through a DOE Extended Capability.
>
> A device may have 1 or more DOE mailboxes, each of which is allowed
> to support any number of protocols (some DOE protocol
> specifications apply additional restrictions). A given protocol
> may be supported on more than one DOE mailbox on a given function.
>
> If a driver wishes to access any number of DOE instances / protocols
> it makes a single call to pcie_doe_register_all() which will find
> available DOEs, create the required infrastructure and cache the
> protocols they support. pcie_doe_find() can then retrieve a
> pointer to an appropriate DOE instance.
>
> A synchronous interface is provided in pcie_doe_exchange_sync() to
> perform a single query / response exchange.
Re-wrap above (and commit logs of other patches) to fill 75 columns.
s/pcie_doe_register_all/pci_doe_register_all/
s/pcie_doe_find/pci_doe_find/
s/pcie_doe_exchange_sync/pci_doe_exchange_sync/
> +config PCI_DOE
> + bool
> + help
> + This enables library support for the PCI Data Object Exchange
> + capability. DOE provides a simple mailbox in PCI config space that is
> + used by a number of different protocols.
> + DOE is defined in the Data Object Exchange ECN to PCI 5.0.
"ECN to the PCIe r5.0 spec."
"PCI 5.0" sounds like a conventional PCI spec.
> + * pci_doe_exchange_sync() - Send a request, then wait for and receive response.
> + * @doe: DOE mailbox state structure.
> + * @ex: Description of the buffers and Vendor ID + type used in this
> + * request/response pair,
s/,/./
(Or omit the periods altogether on these function and parameter
one-liners, as most of drivers/pci does. Most of these descriptions
aren't sentences anyway, I think it's fine that they're unterminated.)
> +static void pci_doe_init(struct pci_doe *doe, struct pci_dev *pdev, int doe_offset)
Indent to fit in 80 columns like the rest of drivers/pci/.
> +static int pci_doe_register(struct pci_doe *doe)
> +{
> + struct pci_dev *pdev = doe->pdev;
> + bool poll = !pci_dev_msi_enabled(pdev);
> + int rc, irq;
> + u32 val;
> +
> + pci_read_config_dword(pdev, doe->cap + PCI_DOE_CAP, &val);
> +
> + if (!poll && FIELD_GET(PCI_DOE_CAP_INT, val)) {
> + irq = pci_irq_vector(pdev, FIELD_GET(PCI_DOE_CAP_IRQ, val));
> + if (irq < 0)
> + return irq;
> +
> + rc = request_irq(irq, pci_doe_irq, 0, "DOE", doe);
I expect there may be many devices with DOE. Do you want some
device identification here? E.g., on my system I see things like this
in /proc/interrupts:
dmar0
nvme0q0
snd_hda_intel:card0
ahci[0000:00:17.0]
> +++ b/include/linux/pci-doe.h
> @@ -0,0 +1,85 @@
> +/* SPDX-License-Identifier: GPL-2.0 */
> +/*
> + * Data Object Exchange was added to the PCI spec as an ECN to 5.0.
"... was added as an ECN to the PCIe r5.0 spec."
next prev parent reply other threads:[~2021-05-07 23:10 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-19 16:54 [RFC PATCH v3 0/4] PCI Data Object Exchange support + CXL CDAT Jonathan Cameron
2021-04-19 16:54 ` [RFC PATCH v3 1/4] PCI: Add vendor ID for the PCI SIG Jonathan Cameron
2021-04-19 16:54 ` [RFC PATCH v3 2/4] PCI/doe: Add Data Object Exchange support Jonathan Cameron
2021-05-06 21:59 ` Ira Weiny
2021-05-11 16:50 ` Jonathan Cameron
2021-05-13 21:20 ` Dan Williams
2021-05-14 8:47 ` Jonathan Cameron
2021-05-14 11:15 ` Lorenzo Pieralisi
2021-05-14 12:39 ` Jonathan Cameron
2021-05-14 18:37 ` Dan Williams
2021-05-17 8:40 ` Jonathan Cameron
2021-05-17 8:51 ` Greg KH
2021-05-17 17:21 ` Dan Williams
2021-05-18 10:04 ` Jonathan Cameron
2021-05-19 14:18 ` Dan Williams
2021-05-19 15:11 ` Jonathan Cameron
2021-05-19 15:29 ` Dan Williams
2021-05-19 16:20 ` Jonathan Cameron
2021-05-19 16:33 ` Jonathan Cameron
2021-05-19 16:53 ` Dan Williams
2021-05-19 17:00 ` Jonathan Cameron
2021-05-19 19:20 ` Dan Williams
2021-05-19 20:18 ` Jonathan Cameron
2021-05-19 23:51 ` Dan Williams
2021-05-20 0:16 ` Dan Williams
2021-05-20 8:22 ` Jonathan Cameron
2021-05-07 9:36 ` Jonathan Cameron
2021-05-07 23:10 ` Bjorn Helgaas [this message]
2021-05-12 12:44 ` Jonathan Cameron
2021-04-19 16:54 ` [RFC PATCH v3 3/4] cxl/mem: Add CDAT table reading from DOE Jonathan Cameron
2021-04-19 16:54 ` [RFC PATCH v3 4/4] cxl/mem: Add a debug parser for CDAT commands Jonathan Cameron
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=20210507231013.GA1548806@bjorn-Precision-5520 \
--to=helgaas@kernel.org \
--cc=Jonathan.Cameron@huawei.com \
--cc=alison.schofield@intel.com \
--cc=ben.widawsky@intel.com \
--cc=cbrowy@avery-design.com \
--cc=dan.j.williams@intel.com \
--cc=f.fangjian@huawei.com \
--cc=ira.weiny@intel.com \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-cxl@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=linuxarm@huawei.com \
--cc=lorenzo.pieralisi@arm.com \
--cc=vishal.l.verma@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;
as well as URLs for NNTP newsgroup(s).