On Fri, Jun 10, 2022 at 11:44:28AM +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 v4] PCI: dwc: Various fixes and cleanups > Link: https://lore.kernel.org/linux-pci/20220610082535.12802-1-Sergey.Semin@xxxxxxxxxxxxxxxxxxxx/ > [2: In-progress v3] 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: ---being submitted afterwards--- > [4: In-progress v2] dmaengine: dw-edma: Add RP/EP local DMA support > Link: https://lore.kernel.org/linux-pci/20220503225104.12108-1-Sergey.Semin@xxxxxxxxxxxxxxxxxxxx/ > > 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@xxxxxxxxxxxxxxxxxxxx/ > 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@xxxxxxxxxxxxxxxxxxxx/ > 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@xxxxxxxxxxxxxxxxxxxx > 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. @Mani, several patches have been changed or removed from the series so I have to drop you tag from some of them. Could you please have alook at the patchset one more time? -Sergey > - Rebase onto kernel v5.18. > > Signed-off-by: Serge Semin <Sergey.Semin@xxxxxxxxxxxxxxxxxxxx> > Cc: Alexey Malahov <Alexey.Malahov@xxxxxxxxxxxxxxxxxxxx> > Cc: Pavel Parkhomenko <Pavel.Parkhomenko@xxxxxxxxxxxxxxxxxxxx> > Cc: "Krzysztof Wilczyński" <kw@xxxxxxxxx> > Cc: Frank Li <Frank.Li@xxxxxxx> > Cc: Manivannan Sadhasivam <manivannan.sadhasivam@xxxxxxxxxx> > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > Cc: linux-pci@xxxxxxxxxxxxxxx > Cc: devicetree@xxxxxxxxxxxxxxx > Cc: linux-kernel@xxxxxxxxxxxxxxx > > 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 >