[PATCH] serial: sh-sci: optimize max_freq determination

From: Hugo Villeneuve

Date: Fri Apr 17 2026 - 15:36:22 EST


From: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx>

Follow example of rsci driver to avoid code duplication and useless
max_freq search when port->uartclk is set to zero.

Signed-off-by: Hugo Villeneuve <hvilleneuve@xxxxxxxxxxxx>
---
Cc: biju.das.jz@xxxxxxxxxxxxxx

Biju: if you want, feel free to pickup this patch when you resubmit your
serie for "sh-sci/rsci: Fix divide by zero and clean up baud rate logic".
---
drivers/tty/serial/sh-sci.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
index 6c819b6b24258..dcee8b69adab2 100644
--- a/drivers/tty/serial/sh-sci.c
+++ b/drivers/tty/serial/sh-sci.c
@@ -2711,14 +2711,15 @@ static void sci_set_termios(struct uart_port *port, struct ktermios *termios,
* setup the baud rate generator hardware for us already.
*/
if (!port->uartclk) {
- baud = uart_get_baud_rate(port, termios, old, 0, 115200);
- goto done;
+ max_freq = 115200;
+ } else {
+ for (i = 0; i < SCI_NUM_CLKS; i++)
+ max_freq = max(max_freq, s->clk_rates[i]);
+
+ max_freq /= min_sr(s);
}

- for (i = 0; i < SCI_NUM_CLKS; i++)
- max_freq = max(max_freq, s->clk_rates[i]);
-
- baud = uart_get_baud_rate(port, termios, old, 0, max_freq / min_sr(s));
+ baud = uart_get_baud_rate(port, termios, old, 0, max_freq);
if (!baud)
goto done;


base-commit: a1a81aef99e853dec84241d701fbf587d713eb5b
--
2.47.3