[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240724162304.GA802428@bhelgaas>
Date: Wed, 24 Jul 2024 11:23:04 -0500
From: Bjorn Helgaas <helgaas@...nel.org>
To: Siddharth Vadapalli <s-vadapalli@...com>
Cc: bhelgaas@...gle.com, lpieralisi@...nel.org, kw@...ux.com,
robh@...nel.org, vigneshr@...com, kishon@...nel.org,
linux-pci@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-arm-kernel@...ts.infradead.org, stable@...r.kernel.org,
ahalaney@...hat.com, srk@...com
Subject: Re: [PATCH] PCI: j721e: Set .map_irq and .swizzle_irq to NULL
Subject should say something about why this change is needed, not just
translate the C code to English.
On Wed, Jul 24, 2024 at 12:20:48PM +0530, Siddharth Vadapalli wrote:
> Since the configuration of Legacy Interrupts (INTx) is not supported, set
I assume you mean J721E doesn't support INTx?
> the .map_irq and .swizzle_irq callbacks to NULL. This fixes the error:
> of_irq_parse_pci: failed with rc=-22
I guess this happens because devm_of_pci_bridge_init() initializes
.map_irq and .swizzle_irq unconditionally?
I'm not sure the default assumption should be that a host bridge
supports INTx.
Maybe .map_irq and .swizzle_irq should only be set when we discover
some information about INTx routing, e.g., an ACPI _PRT or the
corresponding DT properties.
> due to the absence of Legacy Interrupts in the device-tree.
>
> Fixes: f3e25911a430 ("PCI: j721e: Add TI J721E PCIe driver")
> Reported-by: Andrew Halaney <ahalaney@...hat.com>
> Signed-off-by: Siddharth Vadapalli <s-vadapalli@...com>
> ---
>
> Hello,
>
> This patch is based on commit
> 786c8248dbd3 Merge tag 'perf-tools-fixes-for-v6.11-2024-07-23' of git://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools
> of Mainline Linux.
>
> Patch has been tested on J784S4-EVM and J721e-EVM, both of which have
> the PCIe Controller configured by the pci-j721e.c driver.
>
> Regards,
> Siddharth.
>
> drivers/pci/controller/cadence/pci-j721e.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/drivers/pci/controller/cadence/pci-j721e.c b/drivers/pci/controller/cadence/pci-j721e.c
> index 85718246016b..5372218849a8 100644
> --- a/drivers/pci/controller/cadence/pci-j721e.c
> +++ b/drivers/pci/controller/cadence/pci-j721e.c
> @@ -417,6 +417,10 @@ static int j721e_pcie_probe(struct platform_device *pdev)
> if (!bridge)
> return -ENOMEM;
>
> + /* Legacy interrupts are not supported */
Say "INTx" explicitly here instead of assuming "legacy" == "INTx".
> + bridge->map_irq = NULL;
> + bridge->swizzle_irq = NULL;
> +
> if (!data->byte_access_allowed)
> bridge->ops = &cdns_ti_pcie_host_ops;
> rc = pci_host_bridge_priv(bridge);
> --
> 2.40.1
>
Powered by blists - more mailing lists