Message ID | 20230628152135.56286-1-luoruihong@xiaomi.com |
---|---|
State | Superseded |
Headers | show |
Series | [v1,1/1] serial: 8250: Preserve original value of DLF register | expand |
On Wed, Jun 28, 2023 at 11:21:37PM +0800, ruihongluo wrote: > This commit is aimed at preserving the original value of the "This commit is aimed at preserving the original..." --> "Preserve the original..." > DLF(Divisor Latch Fraction Register). When the DLF register is > modified without preservation, it can disrupt the baudrate settings > established by firmware or bootloader , leading to data corruption > and the generation of unreadable or distorted characters. You have From different to SoB. You need to fix this. It can be done by setting corresponding values in the ~/.gitconfig of your machine where you are making patches on. Quick fix is to run git commit --amend --author="ruihongluo <luoruihong@xiaomi.com>" and resend as a v2. Code wise looks good to me, thank you for fixing this. Perhaps it needs a Fixes tag, as Fixes: 701c5e73b296 ("serial: 8250_dw: add fractional divisor support") added before your SoB line. (Again, use `git commit --amend` to address this.) > Signed-off-by: ruihongluo <luoruihong@xiaomi.com> > --- Also don't forget to add a changelog here for v2 to describe your changes.
On Thu, Jun 29, 2023 at 05:42:05PM +0800, ruihongluo wrote: > This commit is aimed at preserving the original value of the > DLF(Divisor Latch Fraction Register). When the DLF register is > modified without preservation, it can disrupt the baudrate settings > established by firmware or bootloader , leading to data corruption > and the generation of unreadable or distorted characters. > Fixes: 701c5e73b296 ("serial: 8250_dw: add fractional divisor support") > To make it a tag you should avoid blank lines in the tag block. > Signed-off-by: ruihongluo <luoruihong@xiaomi.com> > --- > v2: > - added fixes tag Actually not. See above. And what about the rest of the comments? ... > Just wanted to drop a quick note to say thanks for your help with git > send-email and code modifications. > Your assistance on the details was much appreciated. You're welcome! > Ruihong Luo This seems needs to be in your Git config: $ cat ~/.gitconfig [user] name = Ruihong Luo email = luoruihon@xiaomi.com
diff --git a/drivers/tty/serial/8250/8250_dwlib.c b/drivers/tty/serial/8250/8250_dwlib.c index 75f32f054ebb..d30957722da8 100644 --- a/drivers/tty/serial/8250/8250_dwlib.c +++ b/drivers/tty/serial/8250/8250_dwlib.c @@ -244,7 +244,7 @@ void dw8250_setup_port(struct uart_port *p) struct dw8250_port_data *pd = p->private_data; struct dw8250_data *data = to_dw8250_data(pd); struct uart_8250_port *up = up_to_u8250p(p); - u32 reg; + u32 reg, orig; pd->hw_rs485_support = dw8250_detect_rs485_hw(p); if (pd->hw_rs485_support) { @@ -270,9 +270,11 @@ void dw8250_setup_port(struct uart_port *p) dev_dbg(p->dev, "Designware UART version %c.%c%c\n", (reg >> 24) & 0xff, (reg >> 16) & 0xff, (reg >> 8) & 0xff); + /* Preserve value written by firmware or bootloader */ + orig = dw8250_readl_ext(p, DW_UART_DLF); dw8250_writel_ext(p, DW_UART_DLF, ~0U); reg = dw8250_readl_ext(p, DW_UART_DLF); - dw8250_writel_ext(p, DW_UART_DLF, 0); + dw8250_writel_ext(p, DW_UART_DLF, orig); if (reg) { pd->dlf_size = fls(reg);
This commit is aimed at preserving the original value of the DLF(Divisor Latch Fraction Register). When the DLF register is modified without preservation, it can disrupt the baudrate settings established by firmware or bootloader , leading to data corruption and the generation of unreadable or distorted characters. Signed-off-by: ruihongluo <luoruihong@xiaomi.com> --- drivers/tty/serial/8250/8250_dwlib.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)