serial: 8250_of: Add clock_notifier
authorBastien Curutchet <bastien.curutchet@bootlin.com>
Fri, 5 Apr 2024 12:05:52 +0000 (14:05 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 9 Apr 2024 13:51:19 +0000 (15:51 +0200)
commit32f6ec282fb0ddb45da1a19145ef9eeef088968d
tree84ee3b6005b730ed18787c8c986421655db2e85f
parent8c278ade67bdcd9882d32547015a091fb16132b1
serial: 8250_of: Add clock_notifier

The UART's input clock rate can change at runtime but this is not
handled by the driver.

Add a clock_notifier callback that updates the divisors when the input
clock is updated. The serial8250_update_uartclk() is used to do so.
PRE_RATE_CHANGE and ABORT_RATE_CHANGE notifications are ignored, only
the POST_RATE_CHANGE is used. Not using PRE_RATE_CHANGE notification can
result in a few corrupted bytes during frequency transitions but, IMHO,
it can be acceptable in many use cases.

It has been tested on a DAVINCI/OMAP-L138 processor.

Signed-off-by: Bastien Curutchet <bastien.curutchet@bootlin.com>
Reviewed-by: Herve Codina <herve.codina@bootlin.com>
Link: https://lore.kernel.org/r/20240405120552.35991-1-bastien.curutchet@bootlin.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/tty/serial/8250/8250_of.c