PCI: qcom: Don't wait for link if we can detect Link Up
authorKrishna chaitanya chundru <quic_krichai@quicinc.com>
Fri, 22 Nov 2024 19:10:00 +0000 (00:40 +0530)
committerBjorn Helgaas <bhelgaas@google.com>
Sat, 18 Jan 2025 17:35:11 +0000 (11:35 -0600)
If we have a 'global' IRQ for Link Up events, we need not wait for the
link to be up during PCI initialization, which reduces startup time.

Check for 'global' IRQ, and if present, set 'use_linkup_irq',
so dw_pcie_host_init() doesn't wait for the link to come up.

Link: https://lore.kernel.org/r/20241123-remove_wait2-v5-2-b5f9e6b794c2@quicinc.com
Signed-off-by: Krishna chaitanya chundru <quic_krichai@quicinc.com>
Signed-off-by: Krzysztof WilczyƄski <kwilczynski@kernel.org>
[bhelgaas: commit log]
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
Reviewed-by: Niklas Cassel <cassel@kernel.org>
drivers/pci/controller/dwc/pcie-qcom.c

index dc102d8..656d2be 100644 (file)
@@ -1703,6 +1703,10 @@ static int qcom_pcie_probe(struct platform_device *pdev)
 
        platform_set_drvdata(pdev, pcie);
 
+       irq = platform_get_irq_byname_optional(pdev, "global");
+       if (irq > 0)
+               pp->use_linkup_irq = true;
+
        ret = dw_pcie_host_init(pp);
        if (ret) {
                dev_err(dev, "cannot initialize host\n");
@@ -1716,7 +1720,6 @@ static int qcom_pcie_probe(struct platform_device *pdev)
                goto err_host_deinit;
        }
 
-       irq = platform_get_irq_byname_optional(pdev, "global");
        if (irq > 0) {
                ret = devm_request_threaded_irq(&pdev->dev, irq, NULL,
                                                qcom_pcie_global_irq_thread,