Message ID | 20250325102610.2073863-1-maz@kernel.org (mailing list archive) |
---|---|
Headers | show |
Series | PCI: apple: Add support for t6020 | expand |
On Tue, Mar 25, 2025 at 10:25:57AM +0000, Marc Zyngier wrote: > As Alyssa didn't have the bandwidth to deal with this series, I have > taken it over. All bugs are therefore mine. > > The initial series [1] stated: > > "This series adds T6020 support to the Apple PCIe controller. Mostly > Apple shuffled registers around (presumably to accommodate the larger > configurations on those machines). So there's a bit of churn here but > not too much in the way of functional changes." > > The biggest change is affecting the ECAM layer, allowing an ECAM > driver to provide its own probe function instead of relying on the > .init() callback to do the work. The ECAM layer can therefore be used > as a library instead of a convoluted driver. > > The rest is a mix of bug fixes, cleanups, and required abstraction. > > This has been tested on T6020 (M2-Pro mini) and T8102 (M1 mini). > > * From v1[1]: > > - Described the PHY registers in the DT binding > > - Extracted a ecam bridge creation helper from the host-common layer > > - Moved probing into its own function instead of pci_host_common_probe() > > - Moved host-specific data to the of_device_id[] table > > - Added dynamic allocation of the RID/SID bitmap > > - Fixed latent bug in RC-generated interrupts > > - Renamed reg_info to hw_info > > - Dropped useless max_msimap > > - Dropped code being moved around without justification > > - Re-split some of the patches to follow a more logical progression > > - General cleanup to fit my own taste > > [1] https://lore.kernel.org/r/20250211-pcie-t6-v1-0-b60e6d2501bb@rosenzweig.io > > Alyssa Rosenzweig (1): > dt-bindings: pci: apple,pcie: Add t6020 compatible string > > Hector Martin (6): > PCI: apple: Fix missing OF node reference in apple_pcie_setup_port > PCI: apple: Move port PHY registers to their own reg items > PCI: apple: Drop poll for CORE_RC_PHYIF_STAT_REFCLK > PCI: apple: Use gpiod_set_value_cansleep in probe flow > PCI: apple: Abstract register offsets via a SoC-specific structure > PCI: apple: Add T602x PCIe support > > Janne Grunau (1): > PCI: apple: Set only available ports up > > Marc Zyngier (5): > PCI: host-generic: Extract an ecam bridge creation helper from > pci_host_common_probe() > PCI: ecam: Allow cfg->priv to be pre-populated from the root port > device > PCI: apple: Move over to standalone probing > PCI: apple: Dynamically allocate RID-to_SID bitmap > PCI: apple: Move away from INTMSK{SET,CLR} for INTx and private > interrupts > > .../devicetree/bindings/pci/apple,pcie.yaml | 11 +- > drivers/pci/controller/pci-host-common.c | 24 +- > drivers/pci/controller/pcie-apple.c | 241 +++++++++++++----- > drivers/pci/ecam.c | 2 + > include/linux/pci-ecam.h | 2 + > 5 files changed, 204 insertions(+), 76 deletions(-) For the series, Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Acked-by: Alyssa Rosenzweig <alyssa@rosenzweig.io> Thanks maz! Everything here looks good to me aside from the dt-bindings that I screwed up (sorry!). But I didn't do a thorough review. Le Tue , Mar 25, 2025 at 10:25:57AM +0000, Marc Zyngier a écrit : > As Alyssa didn't have the bandwidth to deal with this series, I have > taken it over. All bugs are therefore mine. > > The initial series [1] stated: > > "This series adds T6020 support to the Apple PCIe controller. Mostly > Apple shuffled registers around (presumably to accommodate the larger > configurations on those machines). So there's a bit of churn here but > not too much in the way of functional changes." > > The biggest change is affecting the ECAM layer, allowing an ECAM > driver to provide its own probe function instead of relying on the > .init() callback to do the work. The ECAM layer can therefore be used > as a library instead of a convoluted driver. > > The rest is a mix of bug fixes, cleanups, and required abstraction. > > This has been tested on T6020 (M2-Pro mini) and T8102 (M1 mini). > > * From v1[1]: > > - Described the PHY registers in the DT binding > > - Extracted a ecam bridge creation helper from the host-common layer > > - Moved probing into its own function instead of pci_host_common_probe() > > - Moved host-specific data to the of_device_id[] table > > - Added dynamic allocation of the RID/SID bitmap > > - Fixed latent bug in RC-generated interrupts > > - Renamed reg_info to hw_info > > - Dropped useless max_msimap > > - Dropped code being moved around without justification > > - Re-split some of the patches to follow a more logical progression > > - General cleanup to fit my own taste > > [1] https://lore.kernel.org/r/20250211-pcie-t6-v1-0-b60e6d2501bb@rosenzweig.io > > Alyssa Rosenzweig (1): > dt-bindings: pci: apple,pcie: Add t6020 compatible string > > Hector Martin (6): > PCI: apple: Fix missing OF node reference in apple_pcie_setup_port > PCI: apple: Move port PHY registers to their own reg items > PCI: apple: Drop poll for CORE_RC_PHYIF_STAT_REFCLK > PCI: apple: Use gpiod_set_value_cansleep in probe flow > PCI: apple: Abstract register offsets via a SoC-specific structure > PCI: apple: Add T602x PCIe support > > Janne Grunau (1): > PCI: apple: Set only available ports up > > Marc Zyngier (5): > PCI: host-generic: Extract an ecam bridge creation helper from > pci_host_common_probe() > PCI: ecam: Allow cfg->priv to be pre-populated from the root port > device > PCI: apple: Move over to standalone probing > PCI: apple: Dynamically allocate RID-to_SID bitmap > PCI: apple: Move away from INTMSK{SET,CLR} for INTx and private > interrupts > > .../devicetree/bindings/pci/apple,pcie.yaml | 11 +- > drivers/pci/controller/pci-host-common.c | 24 +- > drivers/pci/controller/pcie-apple.c | 241 +++++++++++++----- > drivers/pci/ecam.c | 2 + > include/linux/pci-ecam.h | 2 + > 5 files changed, 204 insertions(+), 76 deletions(-) > > -- > 2.39.2 >
On Tue, Mar 25, 2025 at 10:25:57AM +0000, Marc Zyngier wrote: > As Alyssa didn't have the bandwidth to deal with this series, I have > taken it over. All bugs are therefore mine. > > The initial series [1] stated: > > "This series adds T6020 support to the Apple PCIe controller. Mostly > Apple shuffled registers around (presumably to accommodate the larger > configurations on those machines). So there's a bit of churn here but > not too much in the way of functional changes." > > The biggest change is affecting the ECAM layer, allowing an ECAM > driver to provide its own probe function instead of relying on the > .init() callback to do the work. The ECAM layer can therefore be used > as a library instead of a convoluted driver. > > The rest is a mix of bug fixes, cleanups, and required abstraction. > > This has been tested on T6020 (M2-Pro mini) and T8102 (M1 mini). > > * From v1[1]: > > - Described the PHY registers in the DT binding > > - Extracted a ecam bridge creation helper from the host-common layer > > - Moved probing into its own function instead of pci_host_common_probe() > > - Moved host-specific data to the of_device_id[] table > > - Added dynamic allocation of the RID/SID bitmap > > - Fixed latent bug in RC-generated interrupts > > - Renamed reg_info to hw_info > > - Dropped useless max_msimap > > - Dropped code being moved around without justification > > - Re-split some of the patches to follow a more logical progression > > - General cleanup to fit my own taste > > [1] https://lore.kernel.org/r/20250211-pcie-t6-v1-0-b60e6d2501bb@rosenzweig.io > > Alyssa Rosenzweig (1): > dt-bindings: pci: apple,pcie: Add t6020 compatible string > > Hector Martin (6): > PCI: apple: Fix missing OF node reference in apple_pcie_setup_port > PCI: apple: Move port PHY registers to their own reg items > PCI: apple: Drop poll for CORE_RC_PHYIF_STAT_REFCLK > PCI: apple: Use gpiod_set_value_cansleep in probe flow > PCI: apple: Abstract register offsets via a SoC-specific structure > PCI: apple: Add T602x PCIe support > > Janne Grunau (1): > PCI: apple: Set only available ports up > > Marc Zyngier (5): > PCI: host-generic: Extract an ecam bridge creation helper from > pci_host_common_probe() > PCI: ecam: Allow cfg->priv to be pre-populated from the root port > device > PCI: apple: Move over to standalone probing > PCI: apple: Dynamically allocate RID-to_SID bitmap > PCI: apple: Move away from INTMSK{SET,CLR} for INTx and private > interrupts > > .../devicetree/bindings/pci/apple,pcie.yaml | 11 +- > drivers/pci/controller/pci-host-common.c | 24 +- > drivers/pci/controller/pcie-apple.c | 241 +++++++++++++----- > drivers/pci/ecam.c | 2 + > include/linux/pci-ecam.h | 2 + > 5 files changed, 204 insertions(+), 76 deletions(-) Whole series is Tested-by: Janne Grunau <j@jannau.net> on t6020 and t8103 based Apple silicon devices. ciao Janne