Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1294654

[PATCH v2] use callbacks to access UART_DLL/UART_DLM

From Sebastian Frias <sf84@laposte.net>
Newsgroups linux.kernel
Subject [PATCH v2] use callbacks to access UART_DLL/UART_DLM
Date 2015-12-18 11:50 +0100
Message-ID <qH0LM-4tM-13@gated-at.bofh.it> (permalink)
References <qGJhT-1Gz-5@gated-at.bofh.it> <qGJhT-1Gz-9@gated-at.bofh.it> <qGLa2-2TY-9@gated-at.bofh.it>
Organization linux.* mail to news gateway

Show all headers | View raw


---

Some UART HW has a single register combining UART_DLL/UART_DLM
(this was probably forgotten in the change that introduced the
callbacks, commit b32b19b8ffc05cbd3bf91c65e205f6a912ca15d9)

Fixes: b32b19b8ffc0

Signed-off-by: Sebastian Frias <sf84@laposte.net>
---
  drivers/tty/serial/8250/8250_port.c |   17 ++++++-----------
  1 file changed, 6 insertions(+), 11 deletions(-)

diff --git a/drivers/tty/serial/8250/8250_port.c 
b/drivers/tty/serial/8250/8250_port.c
index 52d82d2..827eb6f 100644
--- a/drivers/tty/serial/8250/8250_port.c
+++ b/drivers/tty/serial/8250/8250_port.c
@@ -713,22 +713,17 @@ static int size_fifo(struct uart_8250_port *up)
   */
  static unsigned int autoconfig_read_divisor_id(struct uart_8250_port *p)
  {
-	unsigned char old_dll, old_dlm, old_lcr;
+	unsigned char old_lcr;
  	unsigned int id;
+	unsigned int old_dl;

  	old_lcr = serial_in(p, UART_LCR);
  	serial_out(p, UART_LCR, UART_LCR_CONF_MODE_A);
+	old_dl = serial_dl_read(p);
+	serial_dl_write(p, 0);
+	id = serial_dl_read(p);
+	serial_dl_write(p, old_dl);

-	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);
-
-	id = serial_in(p, UART_DLL) | serial_in(p, UART_DLM) << 8;
-
-	serial_out(p, UART_DLL, old_dll);
-	serial_out(p, UART_DLM, old_dlm);
  	serial_out(p, UART_LCR, old_lcr);

  	return id;
-- 
1.7.10.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Back to linux.kernel | Previous | NextPrevious in thread | Next in thread | Find similar | Unroll thread


Thread

Re: [PATCH] use callbacks to access UART_DLL/UART_DLM Måns Rullgård <mans@mansr.com> - 2015-12-17 17:10 +0100
  Re: [PATCH] use callbacks to access UART_DLL/UART_DLM Måns Rullgård <mans@mansr.com> - 2015-12-17 19:10 +0100
    Re: [PATCH] use callbacks to access UART_DLL/UART_DLM Mason <slash.tmp@free.fr> - 2015-12-17 20:20 +0100
  Re: [PATCH] use callbacks to access UART_DLL/UART_DLM Sebastian Frias <sf84@laposte.net> - 2015-12-17 19:10 +0100
    [PATCH v2] use callbacks to access UART_DLL/UART_DLM Sebastian Frias <sf84@laposte.net> - 2015-12-18 11:50 +0100
      Re: [PATCH v2] use callbacks to access UART_DLL/UART_DLM Peter Hurley <peter@hurleysoftware.com> - 2015-12-18 17:10 +0100
        Re: [PATCH v2] use callbacks to access UART_DLL/UART_DLM Sebastian Frias <sf84@laposte.net> - 2015-12-18 17:30 +0100
          Re: [PATCH v2] use callbacks to access UART_DLL/UART_DLM Sebastian Frias <sf84@laposte.net> - 2015-12-18 17:40 +0100
          Re: [PATCH v2] use callbacks to access UART_DLL/UART_DLM Peter Hurley <peter@hurleysoftware.com> - 2015-12-18 17:40 +0100
        Re: [PATCH v3] use callbacks to access UART_DLL/UART_DLM Peter Hurley <peter@hurleysoftware.com> - 2015-12-18 17:50 +0100
        [PATCH v3] use callbacks to access UART_DLL/UART_DLM Sebastian Frias <sf84@laposte.net> - 2015-12-18 17:50 +0100

csiph-web