tty: Update serial core API documentation
authorKevin Cernekee <cernekee@gmail.com>
Thu, 27 Dec 2012 04:43:42 +0000 (20:43 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 16 Jan 2013 05:57:44 +0000 (21:57 -0800)
Signed-off-by: Kevin Cernekee <cernekee@gmail.com>
Acked-by: Alan Cox <alan@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/serial/driver
include/linux/serial_core.h

index a6ef8dc436f1c822c84ac4395bd45e317d0ff0fc..067c47d4691747757b9b0a36efc37d95e79df1e3 100644 (file)
@@ -133,6 +133,16 @@ hardware.
        Interrupts: locally disabled.
        This call must not sleep
 
+  send_xchar(port,ch)
+       Transmit a high priority character, even if the port is stopped.
+       This is used to implement XON/XOFF flow control and tcflow().  If
+       the serial driver does not implement this function, the tty core
+       will append the character to the circular buffer and then call
+       start_tx() / stop_tx() to flush the data out.
+
+       Locking: none.
+       Interrupts: caller dependent.
+
   stop_rx(port)
        Stop receiving characters; the port is in the process of
        being closed.
@@ -254,6 +264,10 @@ hardware.
        Locking: none.
        Interrupts: caller dependent.
 
+  set_wake(port,state)
+       Enable/disable power management wakeup on serial activity.  Not
+       currently implemented.
+
   type(port)
        Return a pointer to a string constant describing the specified
        port, or return NULL, in which case the string 'unknown' is
@@ -306,6 +320,31 @@ hardware.
        Locking: none.
        Interrupts: caller dependent.
 
+  poll_init(port)
+       Called by kgdb to perform the minimal hardware initialization needed
+       to support poll_put_char() and poll_get_char().  Unlike ->startup()
+       this should not request interrupts.
+
+       Locking: tty_mutex and tty_port->mutex taken.
+       Interrupts: n/a.
+
+  poll_put_char(port,ch)
+       Called by kgdb to write a single character directly to the serial
+       port.  It can and should block until there is space in the TX FIFO.
+
+       Locking: none.
+       Interrupts: caller dependent.
+       This call must not sleep
+
+  poll_get_char(port)
+       Called by kgdb to read a single character directly from the serial
+       port.  If data is available, it should be returned; otherwise
+       the function should return NO_POLL_CHAR immediately.
+
+       Locking: none.
+       Interrupts: caller dependent.
+       This call must not sleep
+
 Other functions
 ---------------
 
index ec5df74c4506f2d189ed7fe2cd38d30430ee6b7c..82aebc8ff77f2c26e8e185fe6ad8d31bb7d13b14 100644 (file)
@@ -37,8 +37,8 @@ struct serial_struct;
 struct device;
 
 /*
- * This structure describes all the operations that can be
- * done on the physical hardware.
+ * This structure describes all the operations that can be done on the
+ * physical hardware.  See Documentation/serial/driver for details.
  */
 struct uart_ops {
        unsigned int    (*tx_empty)(struct uart_port *);
@@ -65,7 +65,7 @@ struct uart_ops {
        /*
         * Return a string describing the type of the port
         */
-       const char *(*type)(struct uart_port *);
+       const char      *(*type)(struct uart_port *);
 
        /*
         * Release IO and memory resources used by the port.
@@ -83,7 +83,7 @@ struct uart_ops {
        int             (*ioctl)(struct uart_port *, unsigned int, unsigned long);
 #ifdef CONFIG_CONSOLE_POLL
        int             (*poll_init)(struct uart_port *);
-       void    (*poll_put_char)(struct uart_port *, unsigned char);
+       void            (*poll_put_char)(struct uart_port *, unsigned char);
        int             (*poll_get_char)(struct uart_port *);
 #endif
 };