:::::: 
:::::: Manual check reason: "low confidence static check warning: 
drivers/tty/serial/mux.c:181:8: sparse: sparse: Trying to use reserved word 
'for' as identifier"
:::::: 

BCC: [email protected]
CC: [email protected]
In-Reply-To: <[email protected]>
References: <[email protected]>
TO: Jiri Slaby <[email protected]>

Hi Jiri,

I love your patch! Perhaps something to improve:

[auto build test WARNING on tty/tty-testing]
[also build test WARNING on usb/usb-testing shawnguo/for-next linus/master 
v6.0-rc3 next-20220901]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    
https://github.com/intel-lab-lkp/linux/commits/Jiri-Slaby/tty-TX-helpers/20220901-190806
base:   https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git 
tty-testing
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: parisc-randconfig-s031-20220901 
(https://download.01.org/0day-ci/archive/20220903/[email protected]/config)
compiler: hppa-linux-gcc (GCC) 12.1.0
reproduce:
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # apt-get install sparse
        # sparse version: v0.6.4-39-gce1a6720-dirty
        # 
https://github.com/intel-lab-lkp/linux/commit/f6f99189d77ea45bc72efe7393bb91f4eb46a2fb
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review 
Jiri-Slaby/tty-TX-helpers/20220901-190806
        git checkout f6f99189d77ea45bc72efe7393bb91f4eb46a2fb
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-12.1.0 make.cross C=1 
CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__' O=build_dir ARCH=parisc 
SHELL=/bin/bash drivers/tty/serial/

If you fix the issue, kindly add following tag where applicable
Reported-by: kernel test robot <[email protected]>

sparse warnings: (new ones prefixed by >>)
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ) in function 
declarator
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got __VA_OPT__
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ) in function 
declarator
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got ;
>> drivers/tty/serial/mux.c:181:8: sparse: sparse: Trying to use reserved word 
>> 'for' as identifier
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ; at end of 
declaration
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got &&
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ) in nested 
declarator
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got --
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ) in function 
declarator
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got (
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ; at end of 
declaration
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got ->
>> drivers/tty/serial/mux.c:181:8: sparse: sparse: Trying to use reserved word 
>> 'continue' as identifier
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ; at the end of 
type declaration
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got }
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ) in function 
declarator
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got (
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ; at end of 
declaration
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got ->
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ; at the end of 
type declaration
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got }
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ) in function 
declarator
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got <
>> drivers/tty/serial/mux.c:181:8: sparse: sparse: Trying to use reserved word 
>> 'if' as identifier
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ) in function 
declarator
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got ==
>> drivers/tty/serial/mux.c:181:8: sparse: sparse: Trying to use reserved word 
>> 'if' as identifier
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ; at the end of 
type declaration
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got }
   drivers/tty/serial/mux.c:181:8: sparse: sparse: Expected ; at the end of 
type declaration
   drivers/tty/serial/mux.c:181:8: sparse: sparse: got }
   drivers/tty/serial/mux.c:181:8: sparse: sparse: symbol '__raw_writel' 
redeclared with different type (different argument counts):
>> drivers/tty/serial/mux.c:181:8: sparse:    int static [signed] [toplevel] 
>> __raw_writel( ... )
   drivers/tty/serial/mux.c: note: in included file (through 
include/linux/scatterlist.h, include/linux/kfifo.h, include/linux/tty_port.h, 
...):
   arch/parisc/include/asm/io.h:159:20: sparse: note: previously declared as:
>> arch/parisc/include/asm/io.h:159:20: sparse:    void static inline 
>> [gnu_inline] [toplevel] __raw_writel( ... )
   drivers/tty/serial/mux.c:181:8: sparse: sparse: undefined identifier 'xmit'
   drivers/tty/serial/mux.c:181:8: sparse: sparse: undefined identifier 'xmit'
   drivers/tty/serial/mux.c:181:8: sparse: sparse: symbol 'ch' redeclared with 
different type (different type sizes):
>> drivers/tty/serial/mux.c:181:8: sparse:    int [addressable] [toplevel] ch
   drivers/tty/serial/mux.c:181:8: sparse: note: previously declared as:
>> drivers/tty/serial/mux.c:181:8: sparse:    unsigned char [addressable] 
>> [toplevel] [usertype] ch
   drivers/tty/serial/mux.c:181:8: sparse: sparse: symbol '__raw_writel' 
redeclared with different type (different argument counts):
>> drivers/tty/serial/mux.c:181:8: sparse:    int static [signed] [toplevel] 
>> __raw_writel( ... )
   arch/parisc/include/asm/io.h:159:20: sparse: note: previously declared as:
>> arch/parisc/include/asm/io.h:159:20: sparse:    void static inline 
>> [gnu_inline] [toplevel] __raw_writel( ... )
>> drivers/tty/serial/mux.c:181:8: sparse: sparse: cannot dereference this type
>> drivers/tty/serial/mux.c:181:8: sparse: sparse: cannot dereference this type
   drivers/tty/serial/mux.c:181:8: sparse: sparse: symbol 'pending' redeclared 
with different type (different signedness):
>> drivers/tty/serial/mux.c:181:8: sparse:    int [addressable] [toplevel] 
>> pending
   drivers/tty/serial/mux.c:181:8: sparse: note: previously declared as:
>> drivers/tty/serial/mux.c:181:8: sparse:    unsigned int [addressable] 
>> [toplevel] pending
>> drivers/tty/serial/mux.c:195:21: sparse: sparse: too many arguments for 
>> function mux_transmit
>> drivers/tty/serial/mux.c:375:25: sparse: sparse: too many arguments for 
>> function __raw_writel
   drivers/tty/serial/mux.c:377:17: sparse: sparse: too many arguments for 
function __raw_writel

vim +/for +181 drivers/tty/serial/mux.c

f6f99189d77ea4 drivers/tty/serial/mux.c Jiri Slaby     2022-09-01  180  
f6f99189d77ea4 drivers/tty/serial/mux.c Jiri Slaby     2022-09-01 @181  static 
DEFINE_UART_PORT_TX_HELPER_LIMITED(mux_transmit, port, ch,
f6f99189d77ea4 drivers/tty/serial/mux.c Jiri Slaby     2022-09-01  182          
        true,
f6f99189d77ea4 drivers/tty/serial/mux.c Jiri Slaby     2022-09-01  183          
        UART_PUT_CHAR(port, ch),
f6f99189d77ea4 drivers/tty/serial/mux.c Jiri Slaby     2022-09-01  184          
        mux_tx_done(port));
f6f99189d77ea4 drivers/tty/serial/mux.c Jiri Slaby     2022-09-01  185  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  186  /**
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  187   * 
mux_write - Write chars to the mux fifo.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  188   * 
@port: Ptr to the uart_port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  189   *
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  190   * This 
function writes all the data from the uart buffer to
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  191   * the 
mux fifo.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  192   */
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  193  static 
void mux_write(struct uart_port *port)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  194  {
f6f99189d77ea4 drivers/tty/serial/mux.c Jiri Slaby     2022-09-01 @195          
mux_transmit(port, port->fifosize - UART_GET_FIFO_CNT(port));
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  196  }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  197  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  198  /**
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  199   * 
mux_read - Read chars from the mux fifo.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  200   * 
@port: Ptr to the uart_port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  201   *
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  202   * This 
reads all available data from the mux's fifo and pushes
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  203   * the 
data to the tty layer.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  204   */
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  205  static 
void mux_read(struct uart_port *port)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  206  {
92a19f9cec9a80 drivers/tty/serial/mux.c Jiri Slaby     2013-01-03  207          
struct tty_port *tport = &port->state->port;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  208          
int data;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  209          
__u32 start_count = port->icount.rx;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  210  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  211          
while(1) {
92495c0ebc99ee drivers/serial/mux.c     Ryan Bradetich 2005-11-17  212          
        data = __raw_readl(port->membase + IO_DATA_REG_OFFSET);
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  213  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  214          
        if (MUX_STATUS(data))
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  215          
                continue;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  216  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  217          
        if (MUX_EOFIFO(data))
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  218          
                break;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  219  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  220          
        port->icount.rx++;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  221  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  222          
        if (MUX_BREAK(data)) {
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  223          
                port->icount.brk++;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  224          
                if(uart_handle_break(port))
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  225          
                        continue;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  226          
        }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  227  
be577a5220b25e drivers/serial/mux.c     Matthew Wilcox 2006-10-06  228          
        if (uart_handle_sysrq_char(port, data & 0xffu))
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  229          
                continue;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  230  
92a19f9cec9a80 drivers/tty/serial/mux.c Jiri Slaby     2013-01-03  231          
        tty_insert_flip_char(tport, data & 0xFF, TTY_NORMAL);
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  232          
}
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  233          
2e124b4a390ca8 drivers/tty/serial/mux.c Jiri Slaby     2013-01-03  234          
if (start_count != port->icount.rx)
2e124b4a390ca8 drivers/tty/serial/mux.c Jiri Slaby     2013-01-03  235          
        tty_flip_buffer_push(tport);
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  236  }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  237  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  238  /**
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  239   * 
mux_startup - Initialize the port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  240   * 
@port: Ptr to the uart_port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  241   *
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  242   * Grab 
any resources needed for this port and start the
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  243   * mux 
timer.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  244   */
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  245  static 
int mux_startup(struct uart_port *port)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  246  {
4bd5d82779466a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  247          
mux_ports[port->line].enabled = 1;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  248          
return 0;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  249  }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  250  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  251  /**
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  252   * 
mux_shutdown - Disable the port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  253   * 
@port: Ptr to the uart_port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  254   *
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  255   * 
Release any resources needed for the port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  256   */
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  257  static 
void mux_shutdown(struct uart_port *port)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  258  {
4bd5d82779466a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  259          
mux_ports[port->line].enabled = 0;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  260  }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  261  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  262  /**
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  263   * 
mux_set_termios - Chane port parameters.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  264   * 
@port: Ptr to the uart_port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  265   * 
@termios: new termios settings.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  266   * 
@old: old termios settings.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  267   *
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  268   * The 
Serial Mux does not support this function.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  269   */
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  270  static 
void
606d099cdd1080 drivers/serial/mux.c     Alan Cox       2006-12-08  271  
mux_set_termios(struct uart_port *port, struct ktermios *termios,
bec5b814d46c2a drivers/tty/serial/mux.c Ilpo Järvinen  2022-08-16  272          
        const struct ktermios *old)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  273  {
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  274  }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  275  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  276  /**
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  277   * 
mux_type - Describe the port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  278   * 
@port: Ptr to the uart_port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  279   *
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  280   * 
Return a pointer to a string constant describing the
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  281   * 
specified port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  282   */
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  283  static 
const char *mux_type(struct uart_port *port)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  284  {
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  285          
return "Mux";
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  286  }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  287  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  288  /**
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  289   * 
mux_release_port - Release memory and IO regions.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  290   * 
@port: Ptr to the uart_port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  291   * 
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  292   * 
Release any memory and IO region resources currently in use by
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  293   * the 
port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  294   */
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  295  static 
void mux_release_port(struct uart_port *port)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  296  {
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  297  }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  298  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  299  /**
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  300   * 
mux_request_port - Request memory and IO regions.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  301   * 
@port: Ptr to the uart_port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  302   *
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  303   * 
Request any memory and IO region resources required by the port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  304   * If 
any fail, no resources should be registered when this function
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  305   * 
returns, and it should return -EBUSY on failure.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  306   */
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  307  static 
int mux_request_port(struct uart_port *port)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  308  {
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  309          
return 0;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  310  }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  311  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  312  /**
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  313   * 
mux_config_port - Perform port autoconfiguration.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  314   * 
@port: Ptr to the uart_port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  315   * 
@type: Bitmask of required configurations.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  316   *
4bd5d82779466a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  317   * 
Perform any autoconfiguration steps for the port.  This function is
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  318   * 
called if the UPF_BOOT_AUTOCONF flag is specified for the port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  319   * 
[Note: This is required for now because of a bug in the Serial core.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  320   *  rmk 
has already submitted a patch to linus, should be available for
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  321   *  
2.5.47.]
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  322   */
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  323  static 
void mux_config_port(struct uart_port *port, int type)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  324  {
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  325          
port->type = PORT_MUX;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  326  }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  327  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  328  /**
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  329   * 
mux_verify_port - Verify the port information.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  330   * 
@port: Ptr to the uart_port.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  331   * 
@ser: Ptr to the serial information.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  332   *
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  333   * 
Verify the new serial port information contained within serinfo is
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  334   * 
suitable for this port type.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  335   */
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  336  static 
int mux_verify_port(struct uart_port *port, struct serial_struct *ser)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  337  {
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  338          
if(port->membase == NULL)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  339          
        return -EINVAL;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  340  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  341          
return 0;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  342  }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  343  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  344  /**
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  345   * 
mux_drv_poll - Mux poll function.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  346   * 
@unused: Unused variable
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  347   *
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  348   * This 
function periodically polls the Serial MUX to check for new data.
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  349   */
e99e88a9d2b067 drivers/tty/serial/mux.c Kees Cook      2017-10-16  350  static 
void mux_poll(struct timer_list *unused)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  351  {  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  352          
int i;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  353  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  354          
for(i = 0; i < port_cnt; ++i) {
4bd5d82779466a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  355          
        if(!mux_ports[i].enabled)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  356          
                continue;
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  357  
4bd5d82779466a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  358          
        mux_read(&mux_ports[i].port);
4bd5d82779466a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  359          
        mux_write(&mux_ports[i].port);
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  360          
}
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  361  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  362          
mod_timer(&mux_timer, jiffies + MUX_POLL_DELAY);
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  363  }
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  364  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  365  
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  366  #ifdef 
CONFIG_SERIAL_MUX_CONSOLE
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  367  static 
void mux_console_write(struct console *co, const char *s, unsigned count)
^1da177e4c3f41 drivers/serial/mux.c     Linus Torvalds 2005-04-16  368  {
3de7b6482b4e9a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  369          
/* Wait until the FIFO drains. */
3de7b6482b4e9a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  370          
while(UART_GET_FIFO_CNT(&mux_ports[0].port))
3de7b6482b4e9a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  371          
        udelay(1);
3de7b6482b4e9a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  372  
3de7b6482b4e9a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  373          
while(count--) {
3de7b6482b4e9a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  374          
        if(*s == '\n') {
3de7b6482b4e9a drivers/serial/mux.c     Ryan Bradetich 2006-11-03 @375          
                UART_PUT_CHAR(&mux_ports[0].port, '\r');
3de7b6482b4e9a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  376          
        }
3de7b6482b4e9a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  377          
        UART_PUT_CHAR(&mux_ports[0].port, *s++);
3de7b6482b4e9a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  378          
}
3de7b6482b4e9a drivers/serial/mux.c     Ryan Bradetich 2006-11-03  379  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to