]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
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 dc102d8bd58c69b7da7ff1073cbf12de9e0b8896..656d2be9d87feb4d5ac6a8160004932bae1209cd 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,