Re: [PATCH 2/2] tty: serial: qcom_geni_serial: Keep console RX functional after deep idle

From: Konrad Dybcio

Date: Wed Sep 09 2026 - 07:56:06 EST


On 9/8/26 9:05 PM, Viken Dadhaniya wrote:
> 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@xxxxxxxxxxxxxxxx>
> ---
> 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 <konrad.dybcio@xxxxxxxxxxxxxxxx>

Konrad