public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH v1] serial: qcom_geni: Fix BT failure regression on RB2 platform
@ 2026-01-07  6:48 Praveen Talari
  2026-01-07  6:54 ` Dmitry Baryshkov
                   ` (2 more replies)
  0 siblings, 3 replies; 12+ messages in thread
From: Praveen Talari @ 2026-01-07  6:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, Jiri Slaby, Praveen Talari, linux-arm-msm,
	linux-kernel, linux-serial, bryan.odonoghue, dmitry.baryshkov,
	andersson
  Cc: psodagud, djaggi, quic_msavaliy, quic_vtanuku, quic_arandive,
	quic_shazhuss, quic_cchiluve

A regression in linux-next causes Bluetooth functionality to fail during
bootup on the RB2 platform, preventing proper BT initialization. However,
BT works correctly after bootup completes.

The issue occurs when runtime PM is enabled and uart_add_one_port() is
called before wakeup IRQ setup. The uart_add_one_port() call activates the
device through runtime PM, which configures GPIOs to their default state.
When wakeup IRQ registration happens afterward, it conflicts with these
GPIO settings, causing state corruption that breaks Bluetooth
functionality.

Fix this by moving runtime PM enablement and uart_add_one_port() after
wakeup IRQ registration, ensuring proper initialization order.

Reported-by: Dmitry Baryshkov <dmitry.baryshkov@oss.qualcomm.com>
Closes:
https://lore.kernel.org/all/20251110101043.2108414-4-praveen.talari@oss.qualcomm.com/
Fixes: 10904d725f6e ("serial: qcom-geni: Enable PM runtime for serial driver")
Signed-off-by: Praveen Talari <praveen.talari@oss.qualcomm.com>
---
 drivers/tty/serial/qcom_geni_serial.c | 12 ++++++------
 1 file changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c
index 6ce6528f5c10..46a9c71630d5 100644
--- a/drivers/tty/serial/qcom_geni_serial.c
+++ b/drivers/tty/serial/qcom_geni_serial.c
@@ -1888,12 +1888,6 @@ static int qcom_geni_serial_probe(struct platform_device *pdev)
 	if (ret)
 		goto error;
 
-	devm_pm_runtime_enable(port->se.dev);
-
-	ret = uart_add_one_port(drv, uport);
-	if (ret)
-		goto error;
-
 	if (port->wakeup_irq > 0) {
 		device_init_wakeup(&pdev->dev, true);
 		ret = dev_pm_set_dedicated_wake_irq(&pdev->dev,
@@ -1906,6 +1900,12 @@ static int qcom_geni_serial_probe(struct platform_device *pdev)
 		}
 	}
 
+	devm_pm_runtime_enable(port->se.dev);
+
+	ret = uart_add_one_port(drv, uport);
+	if (ret)
+		goto error;
+
 	return 0;
 
 error:

base-commit: 6cd6c12031130a349a098dbeb19d8c3070d2dfbe
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2026-01-07 16:13 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-01-07  6:48 [PATCH v1] serial: qcom_geni: Fix BT failure regression on RB2 platform Praveen Talari
2026-01-07  6:54 ` Dmitry Baryshkov
2026-01-07  7:06   ` Praveen Talari
2026-01-07  7:22     ` Dmitry Baryshkov
2026-01-07  9:24       ` Praveen Talari
2026-01-07 10:46         ` Konrad Dybcio
2026-01-07 10:58           ` Praveen Talari
2026-01-07 11:35             ` Dmitry Baryshkov
2026-01-07 14:08               ` Praveen Talari
2026-01-07 16:13                 ` Dmitry Baryshkov
2026-01-07  7:25 ` Greg Kroah-Hartman
2026-01-07  7:25 ` Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox