Re: [PATCH 2/2] tty: serial: qcom_geni_serial: Keep console RX functional after deep idle
From: Konrad Dybcio <hidden>
Date: 2026-09-09 11:44:58
Also in:
linux-arm-msm, lkml
On 9/8/26 9:05 PM, Viken Dadhaniya wrote:
quoted hunk ↗ jump to hunk
At baud rates up to 115200, the serial console uses only a 1 kBps keepalive vote for the GENI_TO_CORE ("qup-core") ICC path. This vote keeps the path active but does not request a QUP Core 2X clock rate. When the CPU enters a deeper idle state, the missing Core clock vote can leave the console RX path unresponsive. Use the 19.2 MHz Core 2X vote at low baud rates, while retaining the 50 MHz vote at higher baud rates, so that console RX remains functional after deep idle transitions. Fixes: 7cf563b2c846 ("tty: serial: qcom_geni_serial: Add interconnect support") Signed-off-by: Viken Dadhaniya <viken.dadhaniya@oss.qualcomm.com> --- drivers/tty/serial/qcom_geni_serial.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-)diff --git a/drivers/tty/serial/qcom_geni_serial.c b/drivers/tty/serial/qcom_geni_serial.c index 3633723acef8..b4b4724f1c5b 100644 --- a/drivers/tty/serial/qcom_geni_serial.c +++ b/drivers/tty/serial/qcom_geni_serial.c@@ -1482,9 +1482,8 @@ static int geni_serial_set_rate(struct geni_se *se, unsigned long baud) * Bump up BW vote on CPU and CORE path as driver supports FIFO mode * only. */ - avg_bw_core = (baud > 115200) ? Bps_to_icc(CORE_2X_50_MHZ) - : GENI_DEFAULT_BW; - port->se.icc_paths[GENI_TO_CORE].avg_bw = avg_bw_core; + avg_bw_core = (baud > 115200) ? CORE_2X_50_MHZ : CORE_2X_19_2_MHZ;
Downstream selects this based on whether the UART is a console, but I believe baud rate is much more likely to be a good discriminant here FWIW you can remove the parentheses Reviewed-by: Konrad Dybcio <redacted> Konrad