From: Alexander Gordeev <agordeev@redhat.com>
To: linux-kernel@vger.kernel.org
Cc: Alexander Gordeev <agordeev@redhat.com>,
Bjorn Helgaas <bhelgaas@google.com>,
Michael Ellerman <michael@ellerman.id.au>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Tejun Heo <tj@kernel.org>,
Ben Hutchings <bhutchings@solarflare.com>,
David Laight <David.Laight@ACULAB.COM>,
Mark Lord <kernel@start.ca>, "H. Peter Anvin" <hpa@zytor.com>,
linux-pci@vger.kernel.org
Subject: [PATCH v5 0/4] Introduce pci_enable_msi/msix_range() interfaces
Date: Mon, 30 Dec 2013 08:28:12 +0100 [thread overview]
Message-ID: <cover.1388262668.git.agordeev@redhat.com> (raw)
This series is against "next" branch in Bjorn's repo:
git://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git
Changes from v4 to v5:
- pci_auto_enable_msi* functions renamed to pci_enable_msi* ones;
- pci_enable_msi_range() and pci_enable_msix_range() are the only
basic interfaces left to enable MSI/MSI-X operation;
- pci_enable_msi(), pci_enable_msi_block() and pci_enable_msix() old
interfaces deprecated in favour of pci_enable_msi/msix_range() ones;
description of the old interfaces is removed from the documentation;
- pci_get_msi_vec_count() renamed to pci_msi_vec_count() and
pci_get_msix_vec_count() renamed to pci_msix_vec_count();
Changes from v3 to v4:
- pcim_enable_msi* functions renamed to pci_auto_enable_msi* ones;
- PowerPC patches dropped;
- pci_get_msi_cap() renamed to pci_get_msi_vec_count() and
pci_msix_table_size() renamed to pci_get_msix_vec_count();
Changes from v2 to v3:
- new public interfaces commented in drivers/pci/msi.c;
- patch "Make quota traversing and requesting race-safe" explained;
- pci_enable_msi/msix() 'nvec' arg type changed from 'unsigned int' to 'int';
- pcim_enable_msi*() arg 'nvec' renamed to 'maxvec' when upper limit passed;
- pcim_enable_msi*(..., maxvec, minvec) arg order swapped to minvec, maxvec;
- "PCI: Fail MSI/MSI-X initialization if device is not in PCI_D0" commit
869a161 and "PCI/MSI: Factor out pci_get_msi_cap() interface" patch
conflicts resolved;
This update introduces pci_enable_msi_range() function which
supersedes pci_enable_msi() and pci_enable_msi_block()
interfaces for MSI and pci_enable_msi_range() function which
supersedes pci_enable_msix() interface for MSI-X interrupts.
The plan is to convert all drivers to the new interfaces and
then remove existing pci_enable_msi(), pci_enable_msi_block()
and pci_enable_msix() functions.
The newly introduced functions return either a negative error
code or a number of successfully allocated MSI/MSI-X interrupts.
Unlike the old interfaces where the "third" state indicates
a possible number of MSI interrupts that could have been
allocated, the new interfaces allow device drivers not to deal
with tri-state return values and hide fallback logic behind
the implementation.
As result, device drivers are expected to have more clearer
and straight code.
The tree could be found in "pci-next-msi-v5" branch in repo:
https://github.com/a-gordeev/linux.git
Alexander Gordeev (4):
PCI/MSI: Factor out pci_msi_vec_count() interface
PCI/MSI: Get rid of pci_enable_msi_block_auto() interface
PCI/MSI: Introduce pci_msix_vec_count() interface
PCI/MSI: Introduce pci_enable_msi/msix_range() interfaces
Documentation/PCI/MSI-HOWTO.txt | 308 ++++++++++++++++++++++++++-------------
drivers/ata/ahci.c | 56 +++++---
drivers/pci/msi.c | 150 +++++++++++++++-----
drivers/pci/pcie/portdrv_core.c | 7 +-
include/linux/pci.h | 27 +++-
5 files changed, 385 insertions(+), 163 deletions(-)
--
1.7.7.6
next reply other threads:[~2013-12-30 7:27 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-12-30 7:28 Alexander Gordeev [this message]
2013-12-30 7:28 ` [PATCH v5 1/4] PCI/MSI: Factor out pci_msi_vec_count() interface Alexander Gordeev
2013-12-30 7:28 ` [PATCH v5 2/4] PCI/MSI: Get rid of pci_enable_msi_block_auto() interface Alexander Gordeev
2013-12-30 7:28 ` [PATCH v5 3/4] PCI/MSI: Introduce pci_msix_vec_count() interface Alexander Gordeev
2013-12-30 7:28 ` [PATCH v5 4/4] PCI/MSI: Introduce pci_enable_msi/msix_range() interfaces Alexander Gordeev
2014-01-04 0:27 ` [PATCH v5 0/4] " Bjorn Helgaas
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=cover.1388262668.git.agordeev@redhat.com \
--to=agordeev@redhat.com \
--cc=David.Laight@ACULAB.COM \
--cc=benh@kernel.crashing.org \
--cc=bhelgaas@google.com \
--cc=bhutchings@solarflare.com \
--cc=hpa@zytor.com \
--cc=kernel@start.ca \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=michael@ellerman.id.au \
--cc=tj@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 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.