From: Scott Wood <scottwood@freescale.com>
To: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Cc: <bhelgaas@google.com>, <linux-pci@vger.kernel.org>,
<linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH] PCI: Add pcie_irq=other to enable non MSI/INTx interrupt for port service driver
Date: Mon, 9 Jul 2012 11:39:03 -0500 [thread overview]
Message-ID: <4FFB0927.7080406@freescale.com> (raw)
In-Reply-To: <1341830970-12779-1-git-send-email-Shengzhou.Liu@freescale.com>
On 07/09/2012 05:49 AM, Shengzhou Liu wrote:
> On some platforms, in RC mode, root port has neither MSI/MSI-X nor INTx
> interrupt generated, which are available only in EP mode on those platform.
> In this case, we try to use other interrupt if supported (i.e. there is the
> shared error interrupt on platform P1010, P3041, P4080, etc) to have AER,
> Hot-plug, etc, services to work.
>
> Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
> ---
> Documentation/kernel-parameters.txt | 4 ++++
> drivers/pci/pcie/portdrv_core.c | 19 +++++++++++++++++++
> 2 files changed, 23 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index a92c5eb..af97c81 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -2218,6 +2218,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> nomsi Do not use MSI for native PCIe PME signaling (this makes
> all PCIe root ports use INTx for all services).
>
> + pcie_irq= [PCIE] Native PCIe root port interrupt options:
> + other Try to use other interrupt when root port has
> + neither MSI/MSI-X nor INTx support.
Why does the user need to specify this? Shouldn't this be a matter of
communication between kernel internals?
> @@ -216,6 +227,14 @@ static int init_service_irqs(struct pci_dev *dev, int *irqs, int mask)
> if (!pci_enable_msi(dev) || dev->pin)
> irq = dev->irq;
>
> + /*
> + * On some platforms, root port has neither MSI/MSI-X nor INTx
> + * interrupt support in RC mode, so try to use other interrupt(i.e.
> + * shared interrupt if supported).
> + */
> + else if (port_other_interrupt_enabled && dev->irq)
> + irq = dev->irq;
Is there any reason to not use dev->irq if it is non-zero?
-Scott
WARNING: multiple messages have this Message-ID (diff)
From: Scott Wood <scottwood@freescale.com>
To: Shengzhou Liu <Shengzhou.Liu@freescale.com>
Cc: bhelgaas@google.com, linux-pci@vger.kernel.org,
linuxppc-dev@lists.ozlabs.org
Subject: Re: [PATCH] PCI: Add pcie_irq=other to enable non MSI/INTx interrupt for port service driver
Date: Mon, 9 Jul 2012 11:39:03 -0500 [thread overview]
Message-ID: <4FFB0927.7080406@freescale.com> (raw)
In-Reply-To: <1341830970-12779-1-git-send-email-Shengzhou.Liu@freescale.com>
On 07/09/2012 05:49 AM, Shengzhou Liu wrote:
> On some platforms, in RC mode, root port has neither MSI/MSI-X nor INTx
> interrupt generated, which are available only in EP mode on those platform.
> In this case, we try to use other interrupt if supported (i.e. there is the
> shared error interrupt on platform P1010, P3041, P4080, etc) to have AER,
> Hot-plug, etc, services to work.
>
> Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
> ---
> Documentation/kernel-parameters.txt | 4 ++++
> drivers/pci/pcie/portdrv_core.c | 19 +++++++++++++++++++
> 2 files changed, 23 insertions(+), 0 deletions(-)
>
> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> index a92c5eb..af97c81 100644
> --- a/Documentation/kernel-parameters.txt
> +++ b/Documentation/kernel-parameters.txt
> @@ -2218,6 +2218,10 @@ bytes respectively. Such letter suffixes can also be entirely omitted.
> nomsi Do not use MSI for native PCIe PME signaling (this makes
> all PCIe root ports use INTx for all services).
>
> + pcie_irq= [PCIE] Native PCIe root port interrupt options:
> + other Try to use other interrupt when root port has
> + neither MSI/MSI-X nor INTx support.
Why does the user need to specify this? Shouldn't this be a matter of
communication between kernel internals?
> @@ -216,6 +227,14 @@ static int init_service_irqs(struct pci_dev *dev, int *irqs, int mask)
> if (!pci_enable_msi(dev) || dev->pin)
> irq = dev->irq;
>
> + /*
> + * On some platforms, root port has neither MSI/MSI-X nor INTx
> + * interrupt support in RC mode, so try to use other interrupt(i.e.
> + * shared interrupt if supported).
> + */
> + else if (port_other_interrupt_enabled && dev->irq)
> + irq = dev->irq;
Is there any reason to not use dev->irq if it is non-zero?
-Scott
next prev parent reply other threads:[~2012-07-09 16:39 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-09 10:49 [PATCH] PCI: Add pcie_irq=other to enable non MSI/INTx interrupt for port service driver Shengzhou Liu
2012-07-09 10:49 ` Shengzhou Liu
2012-07-09 16:39 ` Scott Wood [this message]
2012-07-09 16:39 ` Scott Wood
2012-07-10 6:13 ` Liu Shengzhou-B36685
2012-07-10 15:31 ` Scott Wood
2012-07-10 15:31 ` Scott Wood
2012-07-10 15:49 ` Kumar Gala
2012-07-10 15:49 ` Kumar Gala
2012-07-11 11:29 ` Liu Shengzhou-B36685
2012-07-11 11:29 ` Liu Shengzhou-B36685
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=4FFB0927.7080406@freescale.com \
--to=scottwood@freescale.com \
--cc=Shengzhou.Liu@freescale.com \
--cc=bhelgaas@google.com \
--cc=linux-pci@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.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.