On Thu, Jun 12, 2025 at 02:24:04PM -0700, Mayank Rana wrote: > Hi Mani > > Gentle reminder for review. > These patches are not applying on top of v6.16-rc1. Please post the rebased version. - Mani > Regards > Mayank > > On 6/4/2025 10:38 AM, Mayank Rana wrote: > > Hi Mani > > > > As we discussed previously, I resumed working on this functionality. > > Please help with reviewing this patchset. > > > > Regards, > > Mayank > > On 5/21/2025 5:14 PM, Mayank Rana wrote: > > > Based on received feedback, this patch series adds support with existing > > > Linux qcom-pcie.c driver to get PCIe host root complex functionality on > > > Qualcomm SA8255P auto platform. > > > > > > 1. Interface to allow requesting firmware to manage system resources and > > > performing PCIe Link up (devicetree binding in terms of power domain and > > > runtime PM APIs is used in driver) > > > > > > 2. SA8255P is using Synopsys Designware PCIe controller which > > > supports MSI > > > controller. Using existing MSI controller based functionality by > > > exporting > > > important pcie dwc core driver based MSI APIs, and using those from > > > pcie-qcom.c driver. > > > > > > Below architecture is used on Qualcomm SA8255P auto platform to get ECAM > > > compliant PCIe controller based functionality. Here firmware VM > > > based PCIe > > > driver takes care of resource management and performing PCIe link related > > > handling (D0 and D3cold). Linux pcie-qcom.c driver uses power domain to > > > request firmware VM to perform these operations using SCMI interface. > > > -------------------- > > > > > > > > > ┌────────────────────────┐ > > > │ │ > > > ┌──────────────────────┐ │ SHARED MEMORY > > > │ ┌──────────────────────────┐ > > > │ Firmware VM │ │ > > > │ │ Linux VM │ > > > │ ┌─────────┐ │ │ > > > │ │ ┌────────────────┐ │ > > > │ │ Drivers │ ┌──────┐ │ │ > > > │ │ │ PCIE Qcom │ │ > > > │ │ PCIE PHY◄─┤ │ │ │ ┌────────────────┐ > > > │ │ │ driver │ │ > > > │ │ │ │ SCMI │ │ │ │ │ > > > │ │ │ │ │ > > > │ │PCIE CTL │ │ │ ├─────────┼───► PCIE > > > ◄───┼─────┐ │ └──┬──────────▲──┘ │ > > > │ │ ├─►Server│ │ │ │ SHMEM │ │ > > > │ │ │ │ │ > > > │ │Clk, Vreg│ │ │ │ │ │ │ │ > > > │ │ ┌──▼──────────┴──┐ │ > > > │ │GPIO,GDSC│ └─▲──┬─┘ │ │ └────────────────┘ │ > > > └──────┼────┤PCIE SCMI Inst │ │ > > > │ └─────────┘ │ │ │ │ > > > │ │ └──▲──────────┬──┘ │ > > > │ │ │ │ │ > > > │ │ │ │ │ > > > └───────────────┼──┼───┘ │ > > > │ └───────┼──────────┼───────┘ > > > │ │ │ > > > │ │ │ > > > │ │ > > > └────────────────────────┘ │ │ > > > │ > > > │ > > > │ │ > > > │ > > > │ > > > │ │ > > > │ > > > │ > > > │ │ > > > │ > > > │ │IRQ > > > │HVC > > > IRQ │ > > > │HVC > > > │ │ > > > │ > > > │ > > > │ │ > > > │ > > > │ > > > │ │ > > > │ > > > │ > > > │ │ > > > ┌─────────────────┴──▼───────────────────────────────────────────────────────────┴──────────▼──────────────┐ > > > │ │ > > > │ │ > > > │ > > > HYPERVISOR > > > │ > > > │ │ > > > │ │ > > > │ │ > > > └──────────────────────────────────────────────────────────────────────────────────────────────────────────┘ > > > ┌─────────────┐ ┌─────────────┐ ┌──────────┐ ┌───────────┐ > > > ┌─────────────┐ ┌────────────┐ > > > │ │ │ │ │ │ │ │ > > > │ PCIE │ │ PCIE │ > > > │ CLOCK │ │ REGULATOR │ │ GPIO │ │ GDSC │ > > > │ PHY │ │ controller │ > > > └─────────────┘ └─────────────┘ └──────────┘ └───────────┘ > > > └─────────────┘ └────────────┘ > > > ----------------- > > > Changes in v4: > > > - Addressed provided review comments from reviewers > > > Link to v3: https://lore.kernel.org/lkml/20241106221341.2218416-1- > > > quic_mrana@xxxxxxxxxxx/ > > > > > > Changes in v3: > > > - Drop usage of PCIE host generic driver usage, and splitting of MSI > > > functionality > > > - Modified existing pcie-qcom.c driver to add support for getting > > > ECAM compliant and firmware managed > > > PCIe root complex functionality > > > Link to v2: https://lore.kernel.org/linux-arm- > > > kernel/925d1eca-975f-4eec-bdf8-ca07a892361a@xxxxxxxxxxx/T/ > > > > > > Changes in v2: > > > - Drop new PCIe Qcom ECAM driver, and use existing PCIe designware > > > based MSI functionality > > > - Add power domain based functionality within existing ECAM driver > > > Link to v1: https://lore.kernel.org/all/d10199df-5fb3-407b-b404- > > > a0a4d067341f@xxxxxxxxxxx/T/ > > > > > > Tested: > > > - Validated NVME functionality with PCIe1 on SA8255P-RIDE platform > > > > > > Mayank Rana (4): > > > PCI: dwc: Export dwc MSI controller related APIs > > > PCI: host-generic: Rename and export gen_pci_init() API to allow ECAM > > > creation > > > dt-bindings: PCI: qcom,pcie-sa8255p: Document ECAM compliant PCIe root > > > complex > > > PCI: qcom: Add Qualcomm SA8255p based PCIe root complex functionality > > > > > > .../bindings/pci/qcom,pcie-sa8255p.yaml | 103 ++++++++++++++++ > > > drivers/pci/controller/dwc/Kconfig | 1 + > > > .../pci/controller/dwc/pcie-designware-host.c | 38 +++--- > > > drivers/pci/controller/dwc/pcie-designware.h | 14 +++ > > > drivers/pci/controller/dwc/pcie-qcom.c | 114 ++++++++++++++++-- > > > drivers/pci/controller/pci-host-common.c | 5 +- > > > include/linux/pci-ecam.h | 2 + > > > 7 files changed, 248 insertions(+), 29 deletions(-) > > > create mode 100644 > > > Documentation/devicetree/bindings/pci/qcom,pcie- sa8255p.yaml > > > > > > -- மணிவண்ணன் சதாசிவம்