]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
PCI: dwc: Pass DWC PCIe mode to dwc_pcie_debugfs_init()
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Mon, 5 May 2025 14:24:40 +0000 (19:54 +0530)
committerKrzysztof Wilczyński <kwilczynski@kernel.org>
Thu, 15 May 2025 09:16:26 +0000 (09:16 +0000)
Upcoming PTM debugfs interface relies on the DWC PCIe mode to expose the
relevant debugfs attributes to userspace. So pass the mode to
dwc_pcie_debugfs_init() API from host and ep drivers and save it in
'struct dw_pcie::mode'.

Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Krzysztof Wilczyński <kwilczynski@kernel.org>
Link: https://patch.msgid.link/20250505-pcie-ptm-v4-2-02d26d51400b@linaro.org
drivers/pci/controller/dwc/pcie-designware-debugfs.c
drivers/pci/controller/dwc/pcie-designware-ep.c
drivers/pci/controller/dwc/pcie-designware-host.c
drivers/pci/controller/dwc/pcie-designware.h

index 9e6f4d00f26298077c976c9e74d8616544f20ddb..896c387450ca45d979f6baa04e6b3ae3e4be167e 100644 (file)
@@ -651,7 +651,7 @@ void dwc_pcie_debugfs_deinit(struct dw_pcie *pci)
        debugfs_remove_recursive(pci->debugfs->debug_dir);
 }
 
-void dwc_pcie_debugfs_init(struct dw_pcie *pci)
+void dwc_pcie_debugfs_init(struct dw_pcie *pci, enum dw_pcie_device_mode mode)
 {
        char dirname[DWC_DEBUGFS_BUF_MAX];
        struct device *dev = pci->dev;
@@ -674,4 +674,6 @@ void dwc_pcie_debugfs_init(struct dw_pcie *pci)
                        err);
 
        dwc_pcie_ltssm_debugfs_init(pci, dir);
+
+       pci->mode = mode;
 }
index 1a0bf9341542eabc4d28070e3a2d6a8b0b444578..6ee14694372c70783c83c2c7483310f4cbfda078 100644 (file)
@@ -1013,7 +1013,7 @@ int dw_pcie_ep_init_registers(struct dw_pcie_ep *ep)
 
        dw_pcie_ep_init_non_sticky_registers(pci);
 
-       dwc_pcie_debugfs_init(pci);
+       dwc_pcie_debugfs_init(pci, DW_PCIE_EP_TYPE);
 
        return 0;
 
index ecc33f6789e32cd022a5e5fb487bdec5d7759880..17c78a3346512bef8319af2ff7b8c412d41394a5 100644 (file)
@@ -567,7 +567,7 @@ int dw_pcie_host_init(struct dw_pcie_rp *pp)
        if (pp->ops->post_init)
                pp->ops->post_init(pp);
 
-       dwc_pcie_debugfs_init(pci);
+       dwc_pcie_debugfs_init(pci, DW_PCIE_RC_TYPE);
 
        return 0;
 
index 56aafdbcdacaff6b738800fb03ae60eb13c9a0f2..7f58c94b5b1e9a590692474d5efa80c5b5ed9b8d 100644 (file)
@@ -503,6 +503,7 @@ struct dw_pcie {
        struct gpio_desc                *pe_rst;
        bool                    suspended;
        struct debugfs_info     *debugfs;
+       enum                    dw_pcie_device_mode mode;
 
        /*
         * If iATU input addresses are offset from CPU physical addresses,
@@ -871,10 +872,11 @@ dw_pcie_ep_get_func_from_ep(struct dw_pcie_ep *ep, u8 func_no)
 #endif
 
 #ifdef CONFIG_PCIE_DW_DEBUGFS
-void dwc_pcie_debugfs_init(struct dw_pcie *pci);
+void dwc_pcie_debugfs_init(struct dw_pcie *pci, enum dw_pcie_device_mode mode);
 void dwc_pcie_debugfs_deinit(struct dw_pcie *pci);
 #else
-static inline void dwc_pcie_debugfs_init(struct dw_pcie *pci)
+static inline void dwc_pcie_debugfs_init(struct dw_pcie *pci,
+                                        enum dw_pcie_device_mode mode)
 {
 }
 static inline void dwc_pcie_debugfs_deinit(struct dw_pcie *pci)