From: Lorenzo Pieralisi <lorenzo.pieralisi@arm.com>
To: Tomasz Nowicki <tn@semihalf.com>
Cc: bhelgaas@google.com, arnd@arndb.de, will.deacon@arm.com,
catalin.marinas@arm.com, rjw@rjwysocki.net,
hanjun.guo@linaro.org, okaya@codeaurora.org,
jiang.liu@linux.intel.com, Stefano.Stabellini@eu.citrix.com,
robert.richter@caviumnetworks.com, mw@semihalf.com,
Liviu.Dudau@arm.com, ddaney@caviumnetworks.com,
wangyijing@huawei.com, Suravee.Suthikulpanit@amd.com,
msalter@redhat.com, linux-pci@vger.kernel.org,
linux-arm-kernel@lists.infradead.org, linux-acpi@vger.kernel.org,
linux-kernel@vger.kernel.org, linaro-acpi@lists.linaro.org,
jchandra@broadcom.com, jcm@redhat.com
Subject: Re: [PATCH V4 22/23] arm64, pci, acpi: Assign legacy IRQs once device is enable.
Date: Thu, 11 Feb 2016 11:58:53 +0000 [thread overview]
Message-ID: <20160211115843.GA24136@red-moon> (raw)
In-Reply-To: <1454606941-9523-23-git-send-email-tn@semihalf.com>
On Thu, Feb 04, 2016 at 06:29:00PM +0100, Tomasz Nowicki wrote:
> This is the last step before enabling generic ACPI PCI host controller
> for ARM64. We need to take care of legacy IRQ mapping for non-MSI(X)
> PCI devices. pcibios_enable_device() boot order is not sensitive to
> ACPI device enumeration, so it is the best place to assign device's IRQs.
I guess you are referring to:
https://lists.linaro.org/pipermail/linaro-acpi/2015-October/005944.html
It is weird that the dependency can't be enforced, I will have a look
into this, it would be nice to have DT and ACPI legacy IRQs mapping
confined in pcibios_add_device() so that we can remove them in one go
when Matthew's series is merged.
As for the MSI check, by reading commit history its need I think
it harks back to bba6f6fc, which was supposed to be a quick hack and it
has been in the kernel for 9 years :), is it really needed ?
> NOTE: *This is going to be temporary solution*. There is ongoing work
> which aims for cleaning legacy IRQ allocation, see [1].
> We can consider this patch as the necessary evil which will be removed
> once [1] series hits mailnline in the near future.
>
> 1. http://comments.gmane.org/gmane.linux.kernel.pci/46461
>
> Signed-off-by: Tomasz Nowicki <tn@semihalf.com>
> ---
> arch/arm64/kernel/pci.c | 14 ++++++++++++--
> 1 file changed, 12 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/kernel/pci.c b/arch/arm64/kernel/pci.c
> index 023b983..d1a701f 100644
> --- a/arch/arm64/kernel/pci.c
> +++ b/arch/arm64/kernel/pci.c
> @@ -39,16 +39,26 @@ resource_size_t pcibios_align_resource(void *data, const struct resource *res,
> }
>
> /**
> - * pcibios_enable_device - Enable I/O and memory.
> + * pcibios_enable_device - Enable I/O, memory and legacy IRQs for ACPI.
> * @dev: PCI device to be enabled
> * @mask: bitmask of BARs to enable
> */
> int pcibios_enable_device(struct pci_dev *dev, int mask)
> {
> + int ret;
> +
> if (pci_has_flag(PCI_PROBE_ONLY))
> return 0;
>
> - return pci_enable_resources(dev, mask);
> + ret = pci_enable_resources(dev, mask);
> + if (ret < 0)
> + return ret;
> +
> +#ifdef CONFIG_ACPI
> + if (!pci_dev_msi_enabled(dev))
> + return acpi_pci_irq_enable(dev);
You need a guard here anyway, we do not want to probe ACPI IRQ if
it is disabled (ie acpi_pci_disabled). Same goes for DT in
pcibios_add_device(), which is not making this code any nicer.
Lorenzo
> +#endif
> + return 0;
> }
>
> /*
> --
> 1.9.1
>
next prev parent reply other threads:[~2016-02-11 11:58 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-04 17:28 [PATCH V4 00/23] MMCONFIG refactoring and support for ARM64 PCI hostbridge init based on ACPI Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 01/23] x86, pci: Reorder logic of pci_mmconfig_insert() function Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 02/23] x86, pci, acpi: Move arch-agnostic MMCONFIG (aka ECAM) and ACPI code out of arch/x86/ directory Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 03/23] pci, acpi, mcfg: Provide generic implementation of MCFG code initialization Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 04/23] x86, pci: mmconfig_{32,64}.c code refactoring - remove code duplication Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 05/23] x86, pci, ecam: mmconfig_64.c becomes default implementation for ECAM driver Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 06/23] XEN / PCI: Remove the dependence on arch x86 when PCI_MMCONFIG=y Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 07/23] pci, acpi, mcfg: Provide default RAW ACPI PCI config space accessors Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 08/23] arm64, acpi: Use MCFG and empty PCI config space accessors from mcfg.c file Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 09/23] pci, acpi, ecam: Add flag to indicate whether ECAM region was hot added or not Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 10/23] x86, pci: Cleanup platform specific MCFG data by using ECAM hot_added flag Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 11/23] pci, acpi: Move ACPI host bridge device companion assignment to core code Tomasz Nowicki
2016-02-09 18:02 ` Lorenzo Pieralisi
2016-02-10 21:09 ` Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 12/23] x86, ia64, pci: Remove ACPI companion device from platform specific data Tomasz Nowicki
2016-02-09 17:28 ` Lorenzo Pieralisi
2016-02-10 21:21 ` Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 13/23] pci, acpi: Provide generic way to assign bus domain number Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 14/23] x86, ia64: Include acpi_pci_{add|remove}_bus to the default pcibios_{add|remove}_bus implementation Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 15/23] acpi, mcfg: Implement two calls that might be used to inject/remove MCFG region Tomasz Nowicki
2016-02-10 14:06 ` Lorenzo Pieralisi
2016-02-12 8:56 ` Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 16/23] x86, acpi, pci: Use equivalent function from mcfg.c driver Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 17/23] acpi, mcfg: Add default PCI config accessors implementation and initial support for related quirks Tomasz Nowicki
2016-02-29 8:03 ` Jayachandran Chandrashekaran Nair
2016-03-02 10:42 ` Lorenzo Pieralisi
2016-02-04 17:28 ` [PATCH V4 18/23] pci, of: Move the PCI I/O space management to PCI core code Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 19/23] drivers: pci: add generic code to claim bus resources Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 20/23] pci, acpi: Support for ACPI based generic PCI host controller init Tomasz Nowicki
2016-02-04 17:28 ` [PATCH V4 21/23] pci, acpi: Match PCI config space accessors against platfrom specific quirks Tomasz Nowicki
2016-02-04 17:29 ` [PATCH V4 22/23] arm64, pci, acpi: Assign legacy IRQs once device is enable Tomasz Nowicki
2016-02-11 11:58 ` Lorenzo Pieralisi [this message]
2016-02-11 17:17 ` Lorenzo Pieralisi
2016-02-11 18:39 ` Tomasz Nowicki
2016-02-11 18:46 ` Tomasz Nowicki
2016-02-04 17:29 ` [PATCH V4 23/23] arm64, pci, acpi: Start using ACPI based PCI host bridge driver for ARM64 Tomasz Nowicki
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=20160211115843.GA24136@red-moon \
--to=lorenzo.pieralisi@arm.com \
--cc=Liviu.Dudau@arm.com \
--cc=Stefano.Stabellini@eu.citrix.com \
--cc=Suravee.Suthikulpanit@amd.com \
--cc=arnd@arndb.de \
--cc=bhelgaas@google.com \
--cc=catalin.marinas@arm.com \
--cc=ddaney@caviumnetworks.com \
--cc=hanjun.guo@linaro.org \
--cc=jchandra@broadcom.com \
--cc=jcm@redhat.com \
--cc=jiang.liu@linux.intel.com \
--cc=linaro-acpi@lists.linaro.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=msalter@redhat.com \
--cc=mw@semihalf.com \
--cc=okaya@codeaurora.org \
--cc=rjw@rjwysocki.net \
--cc=robert.richter@caviumnetworks.com \
--cc=tn@semihalf.com \
--cc=wangyijing@huawei.com \
--cc=will.deacon@arm.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).