]> git.baikalelectronics.ru Git - kernel.git/commit
serial: 8250_dw: drop bogus uartclk optimisation
authorJohan Hovold <johan@kernel.org>
Fri, 15 Oct 2021 11:14:22 +0000 (13:14 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 21 Oct 2021 08:38:49 +0000 (10:38 +0200)
commit81ef3aa7e03ce9bdf8def681b2a39b6463a50fb8
tree6f47e5d493a5524a41b3ddadb6823491abf72bf2
parentb4dc13b47a4993a08134b6ad4f3263d8b8656eb4
serial: 8250_dw: drop bogus uartclk optimisation

The driver was updating the port uartclk before setting the new rate in
an attempt to avoid having the clock notifier redundantly update the
divisors.

The set_termios() callback is however called under the termios semaphore
and tty-port mutex so the worker scheduled by the clock notifier will
block in serial8250_update_uartclk() until the uartclk and divisors have
been updated anyway.

Drop the unnecessary swaps and incorrect comment and simply update the
uartclk field if the clock-rate change was successful.

Tested-by: Serge Semin <fancer.lancer@gmail.com>
Reviewed-by: Serge Semin <fancer.lancer@gmail.com>
Acked-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Johan Hovold <johan@kernel.org>
Link: https://lore.kernel.org/r/20211015111422.1027-4-johan@kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_dw.c