From: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
To: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Cc: "Jingoo Han" <jingoohan1@gmail.com>,
"Gustavo Pimentel" <gustavo.pimentel@synopsys.com>,
"Bjorn Helgaas" <bhelgaas@google.com>,
"Lorenzo Pieralisi" <lorenzo.pieralisi@arm.com>,
"Rob Herring" <robh@kernel.org>,
"Krzysztof Wilczyński" <kw@linux.com>,
"Serge Semin" <fancer.lancer@gmail.com>,
"Alexey Malahov" <Alexey.Malahov@baikalelectronics.ru>,
"Pavel Parkhomenko" <Pavel.Parkhomenko@baikalelectronics.ru>,
"Frank Li" <Frank.Li@nxp.com>,
linux-pci@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 04/12] PCI: dwc: Disable outbound windows for controllers with iATU
Date: Thu, 24 Mar 2022 14:35:14 +0530 [thread overview]
Message-ID: <20220324090514.GD2854@thinkpad> (raw)
In-Reply-To: <20220324012524.16784-5-Sergey.Semin@baikalelectronics.ru>
On Thu, Mar 24, 2022 at 04:25:15AM +0300, Serge Semin wrote:
> In accordance with the dw_pcie_setup_rc() method semantics and judging by
> what the comment added in commit dd193929d91e ("PCI: designware: Explain
> why we don't program ATU for some platforms") states there are DWC
> PCIe-available platforms like Keystone (pci-keystone.c) or Amazon's
> Annapurna Labs (pcie-al.c) which don't have the DW PCIe internal ATU
> enabled and use it's own address translation approach implemented. In
> these cases at the very least there is no point in touching the DW PCIe
> iATU CSRs. Moreover depending on the vendor-specific address translation
> implementation it might be even erroneous. So let's move the iATU windows
> disabling procedure to being under the corresponding conditional statement
> clause thus performing that procedure only if the iATU is expected to be
> available on the platform.
>
> Fixes: 458ad06c4cdd ("PCI: dwc: Ensure all outbound ATU windows are reset")
> Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Thanks,
Mani
> ---
> drivers/pci/controller/dwc/pcie-designware-host.c | 14 ++++++++------
> 1 file changed, 8 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/pci/controller/dwc/pcie-designware-host.c b/drivers/pci/controller/dwc/pcie-designware-host.c
> index f89e6552139b..a048d88e0c30 100644
> --- a/drivers/pci/controller/dwc/pcie-designware-host.c
> +++ b/drivers/pci/controller/dwc/pcie-designware-host.c
> @@ -566,7 +566,6 @@ static struct pci_ops dw_pcie_ops = {
>
> void dw_pcie_setup_rc(struct pcie_port *pp)
> {
> - int i;
> u32 val, ctrl, num_ctrls;
> struct dw_pcie *pci = to_dw_pcie_from_pp(pp);
>
> @@ -618,19 +617,22 @@ void dw_pcie_setup_rc(struct pcie_port *pp)
> PCI_COMMAND_MASTER | PCI_COMMAND_SERR;
> dw_pcie_writel_dbi(pci, PCI_COMMAND, val);
>
> - /* Ensure all outbound windows are disabled so there are multiple matches */
> - for (i = 0; i < pci->num_ob_windows; i++)
> - dw_pcie_disable_atu(pci, i, DW_PCIE_REGION_OUTBOUND);
> -
> /*
> * If the platform provides its own child bus config accesses, it means
> * the platform uses its own address translation component rather than
> * ATU, so we should not program the ATU here.
> */
> if (pp->bridge->child_ops == &dw_child_pcie_ops) {
> - int atu_idx = 0;
> + int i, atu_idx = 0;
> struct resource_entry *entry;
>
> + /*
> + * Ensure all outbound windows are disabled so there are
> + * multiple matches
> + */
> + for (i = 0; i < pci->num_ob_windows; i++)
> + dw_pcie_disable_atu(pci, i, DW_PCIE_REGION_OUTBOUND);
> +
> /* Get last memory resource entry */
> resource_list_for_each_entry(entry, &pp->bridge->windows) {
> if (resource_type(entry->res) != IORESOURCE_MEM)
> --
> 2.35.1
>
next prev parent reply other threads:[~2022-03-24 9:05 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-03-24 1:25 [PATCH 00/12] PCI: dwc: Various fixes and cleanups Serge Semin
2022-03-24 1:25 ` [PATCH 01/12] PCI: dwc: Stop link in the host init error and de-initialization Serge Semin
2022-03-24 8:11 ` Manivannan Sadhasivam
2022-03-24 1:25 ` [PATCH 02/12] PCI: dwc: Don't use generic IO-ops for DBI-space access Serge Semin
2022-03-24 8:27 ` Manivannan Sadhasivam
2022-04-13 21:03 ` Serge Semin
2022-03-24 1:25 ` [PATCH 03/12] PCI: dwc: Add unroll iATU space support to the regions disable method Serge Semin
2022-03-24 8:59 ` Manivannan Sadhasivam
2022-03-28 21:34 ` kernel test robot
2022-03-28 21:34 ` kernel test robot
2022-03-24 1:25 ` [PATCH 04/12] PCI: dwc: Disable outbound windows for controllers with iATU Serge Semin
2022-03-24 9:05 ` Manivannan Sadhasivam [this message]
2022-03-24 1:25 ` [PATCH 05/12] PCI: dwc: Set INCREASE_REGION_SIZE flag based on limit address Serge Semin
2022-03-24 12:05 ` Manivannan Sadhasivam
2022-04-13 21:54 ` Serge Semin
2022-03-24 1:25 ` [PATCH 06/12] PCI: dwc: Add braces to the multi-line if-else statements Serge Semin
2022-03-24 12:13 ` Manivannan Sadhasivam
2022-03-24 1:25 ` [PATCH 07/12] PCI: dwc: Add trailing new-line literals to the log messages Serge Semin
2022-03-24 12:16 ` Manivannan Sadhasivam
2022-03-24 1:25 ` [PATCH 08/12] PCI: dwc: Discard IP-core version checking on unrolled iATU detection Serge Semin
2022-03-24 12:19 ` Manivannan Sadhasivam
2022-03-24 1:25 ` [PATCH 09/12] PCI: dwc: Convert Link-up status method to using dw_pcie_readl_dbi() Serge Semin
2022-03-24 12:20 ` Manivannan Sadhasivam
2022-03-24 1:25 ` [PATCH 10/12] PCI: dwc-plat: Simplify the probe method return value handling Serge Semin
2022-03-24 12:23 ` Manivannan Sadhasivam
2022-03-24 1:25 ` [PATCH 11/12] PCI: dwc-plat: Discard unused regmap pointer Serge Semin
2022-03-24 12:24 ` Manivannan Sadhasivam
2022-03-24 1:25 ` [PATCH 12/12] PCI: dwc-plat: Drop dw_plat_pcie_of_match forward declaration Serge Semin
2022-03-24 12:26 ` Manivannan Sadhasivam
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=20220324090514.GD2854@thinkpad \
--to=manivannan.sadhasivam@linaro.org \
--cc=Alexey.Malahov@baikalelectronics.ru \
--cc=Frank.Li@nxp.com \
--cc=Pavel.Parkhomenko@baikalelectronics.ru \
--cc=Sergey.Semin@baikalelectronics.ru \
--cc=bhelgaas@google.com \
--cc=fancer.lancer@gmail.com \
--cc=gustavo.pimentel@synopsys.com \
--cc=jingoohan1@gmail.com \
--cc=kw@linux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-pci@vger.kernel.org \
--cc=lorenzo.pieralisi@arm.com \
--cc=robh@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.