]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
PCI: qcom-ep: Disable resources unconditionally during PERST# assert
authorManivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Tue, 30 Apr 2024 06:13:42 +0000 (11:43 +0530)
committerBjorn Helgaas <bhelgaas@google.com>
Tue, 9 Jul 2024 21:56:30 +0000 (16:56 -0500)
All EP specific resources are enabled during PERST# deassert. As a counter
operation, all resources should be disabled during PERST# assert. There is
no point in skipping that if the link was not enabled.

This will also result in enablement of the resources twice if PERST# got
deasserted again. So remove the check from qcom_pcie_perst_assert() and
disable all the resources unconditionally.

Fixes: f55fee56a631 ("PCI: qcom-ep: Add Qualcomm PCIe Endpoint controller driver")
Link: https://lore.kernel.org/linux-pci/20240430-pci-epf-rework-v4-1-22832d0d456f@linaro.org
Tested-by: Niklas Cassel <cassel@kernel.org>
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Signed-off-by: Krzysztof WilczyƄski <kwilczynski@kernel.org>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
drivers/pci/controller/dwc/pcie-qcom-ep.c

index e2a28939b9588f587465f28c6aab1026daae298f..20c4a8063efb16422305ca98eba160be2617d230 100644 (file)
@@ -521,12 +521,6 @@ err_disable_resources:
 static void qcom_pcie_perst_assert(struct dw_pcie *pci)
 {
        struct qcom_pcie_ep *pcie_ep = to_pcie_ep(pci);
-       struct device *dev = pci->dev;
-
-       if (pcie_ep->link_status == QCOM_PCIE_EP_LINK_DISABLED) {
-               dev_dbg(dev, "Link is already disabled\n");
-               return;
-       }
 
        dw_pcie_ep_cleanup(&pci->ep);
        qcom_pcie_disable_resources(pcie_ep);