From 517de2cb0b5ef8e310695fd41b115ad1868db9f4 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Tue, 3 Mar 2026 01:02:13 -0800 Subject: [PATCH 1/2] FROMLIST: bus: mhi: host: pci_generic: Switch to async power up to avoid boot delays Some modem devices can take significant time (up to 20 secs for sdx75) to enter mission mode during initialization. Currently, mhi_sync_power_up() waits for this entire process to complete, blocking other driver probes and delaying system boot. Switch to mhi_async_power_up() so probe can return immediately while MHI initialization continues in the background. This eliminates lengthy boot delays and allows other drivers to probe in parallel, improving overall system boot performance. Link: https://lore.kernel.org/all/20260303-b4-async_power_on-v2-1-d3db81eb457d@oss.qualcomm.com/ Fixes: 5571519009d0 ("bus: mhi: host: pci_generic: Add SDX75 based modem support") Cc: stable@vger.kernel.org Signed-off-by: Qiang Yu --- drivers/bus/mhi/host/pci_generic.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c index ed5f407ac2939..8fb0ec666de07 100644 --- a/drivers/bus/mhi/host/pci_generic.c +++ b/drivers/bus/mhi/host/pci_generic.c @@ -1392,7 +1392,7 @@ static int mhi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *id) goto err_unregister; } - err = mhi_sync_power_up(mhi_cntrl); + err = mhi_async_power_up(mhi_cntrl); if (err) { dev_err(&pdev->dev, "failed to power up MHI controller\n"); goto err_unprepare; From 5aadac8a9d0a2218e194f5bede56461c5a123889 Mon Sep 17 00:00:00 2001 From: Qiang Yu Date: Tue, 3 Mar 2026 01:02:14 -0800 Subject: [PATCH 2/2] FROMLIST: bus: mhi: host: pci_generic: Add pm_runtime_forbid() in remove callback Add pm_runtime_forbid() to balance the pm_runtime_allow() call made during probe. Without this, the device remains in runtime PM allowed state after driver removal. Link: https://lore.kernel.org/all/20260303-b4-async_power_on-v2-2-d3db81eb457d@oss.qualcomm.com/ Fixes: 855a70c12021 ("bus: mhi: Add MHI PCI support for WWAN modems") Signed-off-by: Qiang Yu --- drivers/bus/mhi/host/pci_generic.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/bus/mhi/host/pci_generic.c b/drivers/bus/mhi/host/pci_generic.c index 8fb0ec666de07..760bf923dc593 100644 --- a/drivers/bus/mhi/host/pci_generic.c +++ b/drivers/bus/mhi/host/pci_generic.c @@ -1446,6 +1446,7 @@ static void mhi_pci_remove(struct pci_dev *pdev) mhi_soc_reset(mhi_cntrl); mhi_unregister_controller(mhi_cntrl); + pm_runtime_forbid(&pdev->dev); } static void mhi_pci_shutdown(struct pci_dev *pdev)