Re: [PATCH RESEND v4 00/15] PCI: dwc: Add hw version and dma-ranges support

Serge Semin
2022-07-11T18:48:30Z

Hi Bjorn.

If you are back from vacation yet, could you please consider this patchset
merging in into your repo in the branch 'pci/edma' with Fank Li eDMA
updates?
Link: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git/log/?h=pci/edma

Note this must be done before the series:
Link: https://git.kernel.org/pub/scm/linux/kernel/git/helgaas/pci.git/log/?h=pci%2Fctrl%2Fdwc-fixes
content is moved there.

-Sergey

On Fri, Jun 24, 2022 at 05:39:32PM +0300, Serge Semin wrote:
> This patchset is a second one in the series created in the framework of
> my Baikal-T1 PCIe/eDMA-related work:
>
> [1: In-progress v5] PCI: dwc: Various fixes and cleanups
> Link: https://lore.kernel.org/linux-pci/20220624143428.8334-1-Sergey.Semin@baikalelectronics.ru/
> [2: In-progress v4] PCI: dwc: Add hw version and dma-ranges support
> Link: ---you are looking at it---
> [3: In-progress v3] PCI: dwc: Add extended YAML-schema and Baikal-T1 support
> Link: https://lore.kernel.org/linux-pci/20220610085706.15741-1-Sergey.Semin@baikalelectronics.ru/
> [4: In-progress v3] dmaengine: dw-edma: Add RP/EP local DMA support
> Link: https://lore.kernel.org/linux-pci/20220610091459.17612-1-Sergey.Semin@baikalelectronics.ru
>
> Note it is very recommended to merge the patchsets in the same order as
> they are listed in the set above in order to have them applied smoothly.
> Nothing prevents them from being reviewed synchronously though.
>
> Originally the patches submitted in this patchset were a part of the series:
> Link: https://lore.kernel.org/linux-pci/20220503214638.1895-1-Sergey.Semin@baikalelectronics.ru/
> but due to the reviewers requests the series was expanded to about 30
> patches which made it too bulky for a comfortable review. So I decided to
> split it up into two patchsets: 2. and 3. in the table above.
>
> Regarding the series content. This patchset is about adding new features
> to the DW PCIe core, Root Port and Endpoint drivers. First we suggest to
> add a more verbose link-up log message. Really printing link generation
> and width would be much more informative than just "link up". Then a
> series of IP-core version-related patches go, like using a native FourCC
> version representation, adding the IP-core auto-detection, adding a better
> structured IP-core version/type interface and finally dropping manual
> IP-core version setups from the platforms which are supposed to have it
> auto-detected. After that the platform-specific host de-initialization
> method is introduced. It's unused in the framework of this patchset but
> will be utilized in the next one (see the table above). A series of iATU
> optimizations, cleanups and new features goes afterwards. In particular we
> suggest to drop some redundant enumerations, add iATU regions size
> detection procedure and then use the regions parameters to verify the
> requested by the platform iATU ranges/dma-ranges settings. After that the
> dma-ranges property support is added for the DW PCIe Host controllers.
>
> Link: https://lore.kernel.org/linux-pci/20220324013734.18234-1-Sergey.Semin@baikalelectronics.ru/
> Changelog v2:
> - Test the error condition first and return straight away if it comes true
> in the link up waiting and link state logging method (@Joe).
> - Move the dw_pcie_region_type enumeration removal patch to being applied
> before the IB/OB iATU windows setup simplification patch (@Rob).
> - Move the iATU region selection procedure into a helper function (@Rob).
> - Rebase from kernel v5.17 onto v5.18-rc3 since the later kernel has
> already DT bindings converted. (@Rob)
> - Simplify the iATU region selection procedure by recalculating the base
> address only if the space is unrolled. The iATU viewport base address
> will be saved in the pci->atu_base field.
> - Move the IP-core version detection procedure call from
> dw_pcie_ep_init_complete() to dw_pcie_ep_init().
> - Add a new patch: "PCI: dwc: Detect iATU settings after getting
> "addr_space" resource."
>
> Link: https://lore.kernel.org/linux-pci/20220503225104.12108-1-Sergey.Semin@baikalelectronics.ru
> Changelog v3:
> - Fix pcie-tegra194-acpi.c driver to using the new macros names.
> (@Manivannan)
> - Drop in/outbound iATU window size alignment constraint. (@Manivannan)
> - Detach this series of patches into a dedicated patchset.
> - Rebase onto kernel v5.18.
>
> Link: https://lore.kernel.org/linux-pci/20220610084444.14549-1-Sergey.Semin@baikalelectronics.ru/
> Changelog v4:
> - Just resend.
> - Rebase onto the kernel v5.19-rcX.
>
> Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
> Cc: Alexey Malahov <Alexey.Malahov@baikalelectronics.ru>
> Cc: Pavel Parkhomenko <Pavel.Parkhomenko@baikalelectronics.ru>
> Cc: "Krzysztof Wilczyński" <kw@linux.com>
> Cc: Frank Li <Frank.Li@nxp.com>
> Cc: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
> Cc: Rob Herring <robh+dt@kernel.org>
> Cc: linux-pci@vger.kernel.org
> Cc: devicetree@vger.kernel.org
> Cc: linux-kernel@vger.kernel.org
>
> Serge Semin (15):
> PCI: dwc: Add more verbose link-up message
> PCI: dwc: Detect iATU settings after getting "addr_space" resource
> PCI: dwc: Convert to using native IP-core versions representation
> PCI: dwc: Add IP-core version detection procedure
> PCI: dwc: Introduce Synopsys IP-core versions/types interface
> PCI: intel-gw: Drop manual DW PCIe controller version setup
> PCI: tegra194: Drop manual DW PCIe controller version setup
> PCI: dwc: Add host de-initialization callback
> PCI: dwc: Drop inbound iATU types enumeration - dw_pcie_as_type
> PCI: dwc: Drop iATU regions enumeration - dw_pcie_region_type
> PCI: dwc: Simplify in/outbound iATU setup methods
> PCI: dwc: Add iATU regions size detection procedure
> PCI: dwc: Verify in/out regions against iATU constraints
> PCI: dwc: Check iATU in/outbound ranges setup methods status
> PCI: dwc: Introduce dma-ranges property support for RC-host
>
> drivers/pci/controller/dwc/pci-keystone.c | 12 +-
> .../pci/controller/dwc/pcie-designware-ep.c | 40 +-
> .../pci/controller/dwc/pcie-designware-host.c | 202 +++++---
> drivers/pci/controller/dwc/pcie-designware.c | 461 ++++++++----------
> drivers/pci/controller/dwc/pcie-designware.h | 123 ++---
> drivers/pci/controller/dwc/pcie-intel-gw.c | 22 +-
> .../pci/controller/dwc/pcie-tegra194-acpi.c | 7 +-
> drivers/pci/controller/dwc/pcie-tegra194.c | 1 -
> 8 files changed, 461 insertions(+), 407 deletions(-)
>
> --
> 2.35.1
>