On Tue, May 19, 2020 at 04:33:58PM -0400, Jim Quinlan wrote: > This patchset expands the usefulness of the Broadcom Settop Box PCIe > controller by building upon the PCIe driver used currently by the > Raspbery Pi. Other forms of this patchset were submitted by me years > ago and not accepted; the major sticking point was the code required > for the DMA remapping needed for the PCIe driver to work [1]. > > There have been many changes to the DMA and OF subsystems since that > time, making a cleaner and less intrusive patchset possible. This > patchset implements a generalization of "dev->dma_pfn_offset", except > that instead of a single scalar offset it provides for multiple > offsets via a function which depends upon the "dma-ranges" property of > the PCIe host controller. This is required for proper functionality > of the BrcmSTB PCIe controller and possibly some other devices. > > [1] https://lore.kernel.org/linux-arm-kernel/1516058925-46522-5-git-send-email-jim2101024@xxxxxxxxx/ > > Jim Quinlan (15): > PCI: brcmstb: PCIE_BRCMSTB depends on ARCH_BRCMSTB > ahci_brcm: fix use of BCM7216 reset controller > dt-bindings: PCI: Add bindings for more Brcmstb chips > PCI: brcmstb: Add compatibily of other chips > PCI: brcmstb: Add suspend and resume pm_ops > PCI: brcmstb: Asserting PERST is different for 7278 > PCI: brcmstb: Add control of rescal reset > of: Include a dev param in of_dma_get_range() > device core: Add ability to handle multiple dma offsets > dma-direct: Invoke dma offset func if needed > arm: dma-mapping: Invoke dma offset func if needed > PCI: brcmstb: Set internal memory viewport sizes > PCI: brcmstb: Accommodate MSI for older chips > PCI: brcmstb: Set bus max burst side by chip type > PCI: brcmstb: add compatilbe chips to match list If you have occasion to post a v2 for other reasons, s/PCIE_BRCMSTB depends on ARCH_BRCMSTB/Allow PCIE_BRCMSTB on ARCH_BRCMSTB also/ s/ahci_brcm: fix use of BCM7216 reset controller/ata: ahci_brcm: Fix .../ s/Add compatibily of other chips/Add bcm7278 register info/ s/Asserting PERST is different for 7278/Add bcm7278 PERST support/ s/Set bus max burst side/Set bus max burst size/ s/add compatilbe chips.*/Add bcm7211, bcm7216, bcm7445, bcm7278 to match list/ Rewrap commit logs to use full 75 character lines (to allow for the 4 spaces added by git log). In commit logs, s/This commit// (use imperative mood instead). In "Accommodate MSI for older chips" commit log, s/commont/common/. > .../bindings/pci/brcm,stb-pcie.yaml | 40 +- > arch/arm/include/asm/dma-mapping.h | 17 +- > drivers/ata/ahci_brcm.c | 14 +- > drivers/of/address.c | 54 ++- > drivers/of/device.c | 2 +- > drivers/of/of_private.h | 8 +- > drivers/pci/controller/Kconfig | 4 +- > drivers/pci/controller/pcie-brcmstb.c | 403 +++++++++++++++--- > include/linux/device.h | 9 +- > include/linux/dma-direct.h | 16 + > include/linux/dma-mapping.h | 44 ++ > kernel/dma/Kconfig | 12 + > 12 files changed, 542 insertions(+), 81 deletions(-) > > -- > 2.17.1 >