Re: [PATCH] use callbacks to access UART_DLL/UART_DLM

From: Sebastian Frias
Date: Thu Dec 17 2015 - 13:07:17 EST


On 12/17/2015 05:02 PM, Måns Rullgård wrote:
Sebastian Frias <sf84@xxxxxxxxxxx> writes:

---
resending as plain-text
---
drivers/tty/serial/8250/8250_core.c | 17 +++++++----------
1 file changed, 7 insertions(+), 10 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_core.c
b/drivers/tty/serial/8250/8250_core.c
index 2c46a21..9ca863c 100644
--- a/drivers/tty/serial/8250/8250_core.c
+++ b/drivers/tty/serial/8250/8250_core.c
@@ -791,22 +791,19 @@ static int size_fifo(struct uart_8250_port *up)
*/
static unsigned int autoconfig_read_divisor_id(struct uart_8250_port *p)

What tree are you working against? Current mainline has that function
in 8250_port.c.

Sorry, wrong patch. On mainline is about the same, I'll post it.


{
- unsigned char old_dll, old_dlm, old_lcr;
+ unsigned char old_lcr;
unsigned int id;
+ unsigned int old_dl;

Your patch is messed up. Consider using "git send-email" instead.

I don't know what happened there, thanks for the suggestion.


old_lcr = serial_in(p, UART_LCR);
- serial_out(p, UART_LCR, UART_LCR_CONF_MODE_A);
-
- old_dll = serial_in(p, UART_DLL);
- old_dlm = serial_in(p, UART_DLM);

- serial_out(p, UART_DLL, 0);
- serial_out(p, UART_DLM, 0);
+ serial_out(p, UART_LCR, UART_LCR_CONF_MODE_A);

- id = serial_in(p, UART_DLL) | serial_in(p, UART_DLM) << 8;
+ old_dl = serial_dl_read(p);
+ serial_dl_write(p, 0);
+ id = serial_dl_read(p);
+ serial_dl_write(p, old_dl);

- serial_out(p, UART_DLL, old_dll);
- serial_out(p, UART_DLM, old_dlm);
serial_out(p, UART_LCR, old_lcr);

return id;
--

If you left the blank lines alone, the patch would end up much easier to
understand. In this diff, some of the lines listed as added or removed
have actually not changed, and that's not immediately obvious.


The old code had some blank lines, which I suppose were there for clarity.
I attempted to follow the same idea.
But I don't mind changing the code as you wish.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/