All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stefan Roese <sr@denx.de>
To: "Pali Rohár" <pali@kernel.org>
Cc: linux-pci@vger.kernel.org,
	Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>,
	Bjorn Helgaas <helgaas@kernel.org>,
	Michal Simek <michal.simek@xilinx.com>
Subject: Re: [PATCH v4 2/2] PCI: xilinx-nwl: Add method to init_platform_service_irqs hook
Date: Fri, 14 Jan 2022 13:13:16 +0100	[thread overview]
Message-ID: <22b93b6c-5942-6d60-dc41-0efba27910f6@denx.de> (raw)
In-Reply-To: <20220114114836.o5pjxsp6rjdemavr@pali>

On 1/14/22 12:48, Pali Rohár wrote:
> On Friday 14 January 2022 08:58:34 Stefan Roese wrote:
>> From: Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>
>>
>> Add nwl_init_platform_service_irqs() hook to init_platform_service_irqs
>> to register the platform-specific Service Errors IRQs for this PCIe
>> controller to fully support e.g. AER on this platform.
>>
>> Signed-off-by: Bharat Kumar Gogada <bharat.kumar.gogada@xilinx.com>
>> Signed-off-by: Stefan Roese <sr@denx.de>
>> Cc: Bjorn Helgaas <helgaas@kernel.org>
>> Cc: Pali Rohár <pali@kernel.org>
>> Cc: Michal Simek <michal.simek@xilinx.com>
> 
> Reviewed-by: Pali Rohár <pali@kernel.org>
> 
>> ---
>>   drivers/pci/controller/pcie-xilinx-nwl.c | 18 ++++++++++++++++++
>>   1 file changed, 18 insertions(+)
>>
>> diff --git a/drivers/pci/controller/pcie-xilinx-nwl.c b/drivers/pci/controller/pcie-xilinx-nwl.c
>> index 414b679175b3..540536bbe3f8 100644
>> --- a/drivers/pci/controller/pcie-xilinx-nwl.c
>> +++ b/drivers/pci/controller/pcie-xilinx-nwl.c
>> @@ -24,6 +24,7 @@
>>   #include <linux/irqchip/chained_irq.h>
>>   
>>   #include "../pci.h"
>> +#include "../pcie/portdrv.h"
>>   
>>   /* Bridge core config registers */
>>   #define BRCFG_PCIE_RX0			0x00000000
>> @@ -806,6 +807,22 @@ static int nwl_pcie_parse_dt(struct nwl_pcie *pcie,
>>   	return 0;
>>   }
>>   
>> +static int nwl_init_platform_service_irqs(struct pci_dev *dev, int *irqs,
>> +					  int plat_mask)
>> +{
>> +	struct pci_host_bridge *bridge;
>> +	struct nwl_pcie *pcie;
>> +
>> +	bridge = pci_find_host_bridge(dev->bus);
>> +	pcie = pci_host_bridge_priv(bridge);
>> +	if (plat_mask & PCIE_PORT_SERVICE_AER) {
>> +		irqs[PCIE_PORT_SERVICE_AER_SHIFT] = pcie->irq_misc;
>> +		return 0; /* platform-specific service IRQ installed */
>> +	}
> 
> Just I want to be sure, with this change PME and HP interrupts are not
> provided even when plat_mask argument contains them.

This function is only used for Root Ports. E.g. HP at the downstream
ports of the PCIe switch still works in our case, as here
pcie_init_service_irqs() still gets called:

# cat /proc/interrupts | grep pci
  44:          0          0          0          0     GICv2 150 Level 
   nwl_pcie:misc, aerdrv
  61:          2          0          0          0  nwl_pcie:msi 1064960 
Edge      pciehp
  63:          0          0          0          0  nwl_pcie:msi 1081344 
Edge      pciehp
  65:          4          0          0          0  nwl_pcie:msi 1097728 
Edge      pciehp

Thanks,
Stefan

>> +
>> +	return -ENODEV; /* platform-specific service IRQ not installed */
>> +}
>> +
>>   static const struct of_device_id nwl_pcie_of_match[] = {
>>   	{ .compatible = "xlnx,nwl-pcie-2.11", },
>>   	{}
>> @@ -857,6 +874,7 @@ static int nwl_pcie_probe(struct platform_device *pdev)
>>   
>>   	bridge->sysdata = pcie;
>>   	bridge->ops = &nwl_pcie_ops;
>> +	bridge->init_platform_service_irqs = nwl_init_platform_service_irqs;
>>   
>>   	if (IS_ENABLED(CONFIG_PCI_MSI)) {
>>   		err = nwl_pcie_enable_msi(pcie);
>> -- 
>> 2.34.1
>>

Viele Grüße,
Stefan Roese

-- 
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-51 Fax: (+49)-8142-66989-80 Email: sr@denx.de

  reply	other threads:[~2022-01-14 12:13 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-01-14  7:58 [PATCH v4 0/2] Add support to register platform service IRQ Stefan Roese
2022-01-14  7:58 ` [PATCH v4 1/2] PCI/portdrv: Add option to setup IRQs for platform-specific Service Errors Stefan Roese
2022-01-14 11:46   ` Pali Rohár
2022-05-28  0:09   ` Bjorn Helgaas
2022-05-30  8:18     ` Stefan Roese
2022-05-30  8:32       ` Pali Rohár
2022-05-31 21:31         ` Bjorn Helgaas
2022-05-31 22:57           ` Pali Rohár
2022-06-01 11:47           ` Stefan Roese
2022-06-01 11:53             ` Pali Rohár
2022-06-08 18:39             ` Bjorn Helgaas
2022-01-14  7:58 ` [PATCH v4 2/2] PCI: xilinx-nwl: Add method to init_platform_service_irqs hook Stefan Roese
2022-01-14 11:48   ` Pali Rohár
2022-01-14 12:13     ` Stefan Roese [this message]
2022-01-14 12:34       ` Pali Rohár
2022-01-14 17:03         ` Stefan Roese
2022-03-24 16:52 ` [PATCH v4 0/2] Add support to register platform service IRQ Stefan Roese
2022-03-31 15:30   ` Bjorn Helgaas
2022-04-01  6:28     ` Stefan Roese
2022-04-01 12:35       ` 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=22b93b6c-5942-6d60-dc41-0efba27910f6@denx.de \
    --to=sr@denx.de \
    --cc=bharat.kumar.gogada@xilinx.com \
    --cc=helgaas@kernel.org \
    --cc=linux-pci@vger.kernel.org \
    --cc=michal.simek@xilinx.com \
    --cc=pali@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.