tree: https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git tty-testing head: a6d8f09319fff9e6e7a91cadb19923b8cb2573e0 commit: b6f8eaea0cf1afe2500f8af7b6cc805647fe4889 [31/42] sdio_uart: make use of UART_LCR_WLEN() + tty_get_char_size() config: arm-s3c2410_defconfig (https://download.01.org/0day-ci/archive/20220226/202202260016.JwqeCxcs-lkp@xxxxxxxxx/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project d271fc04d5b97b12e6b797c6067d3c96a8d7470e) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install arm cross compiling tool for clang build # apt-get install binutils-arm-linux-gnueabi # https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git/commit/?id=b6f8eaea0cf1afe2500f8af7b6cc805647fe4889 git remote add tty https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty.git git fetch --no-tags tty tty-testing git checkout b6f8eaea0cf1afe2500f8af7b6cc805647fe4889 # save the config file to linux build tree mkdir build_dir COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross W=1 O=build_dir ARCH=arm SHELL=/bin/bash drivers/mmc/core/ If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <lkp@xxxxxxxxx> All errors (new ones prefixed by >>): >> drivers/mmc/core/sdio_uart.c:253:9: error: implicit declaration of function 'UART_LCR_WLEN' [-Werror,-Wimplicit-function-declaration] cval = UART_LCR_WLEN(tty_get_char_size(termios->c_cflag)); ^ 1 error generated. vim +/UART_LCR_WLEN +253 drivers/mmc/core/sdio_uart.c 245 246 static void sdio_uart_change_speed(struct sdio_uart_port *port, 247 struct ktermios *termios, 248 struct ktermios *old) 249 { 250 unsigned char cval, fcr = 0; 251 unsigned int baud, quot; 252 > 253 cval = UART_LCR_WLEN(tty_get_char_size(termios->c_cflag)); 254 255 if (termios->c_cflag & CSTOPB) 256 cval |= UART_LCR_STOP; 257 if (termios->c_cflag & PARENB) 258 cval |= UART_LCR_PARITY; 259 if (!(termios->c_cflag & PARODD)) 260 cval |= UART_LCR_EPAR; 261 262 for (;;) { 263 baud = tty_termios_baud_rate(termios); 264 if (baud == 0) 265 baud = 9600; /* Special case: B0 rate. */ 266 if (baud <= port->uartclk) 267 break; 268 /* 269 * Oops, the quotient was zero. Try again with the old 270 * baud rate if possible, otherwise default to 9600. 271 */ 272 termios->c_cflag &= ~CBAUD; 273 if (old) { 274 termios->c_cflag |= old->c_cflag & CBAUD; 275 old = NULL; 276 } else 277 termios->c_cflag |= B9600; 278 } 279 quot = (2 * port->uartclk + baud) / (2 * baud); 280 281 if (baud < 2400) 282 fcr = UART_FCR_ENABLE_FIFO | UART_FCR_TRIGGER_1; 283 else 284 fcr = UART_FCR_ENABLE_FIFO | UART_FCR_R_TRIG_10; 285 286 port->read_status_mask = UART_LSR_OE | UART_LSR_THRE | UART_LSR_DR; 287 if (termios->c_iflag & INPCK) 288 port->read_status_mask |= UART_LSR_FE | UART_LSR_PE; 289 if (termios->c_iflag & (BRKINT | PARMRK)) 290 port->read_status_mask |= UART_LSR_BI; 291 292 /* 293 * Characters to ignore 294 */ 295 port->ignore_status_mask = 0; 296 if (termios->c_iflag & IGNPAR) 297 port->ignore_status_mask |= UART_LSR_PE | UART_LSR_FE; 298 if (termios->c_iflag & IGNBRK) { 299 port->ignore_status_mask |= UART_LSR_BI; 300 /* 301 * If we're ignoring parity and break indicators, 302 * ignore overruns too (for real raw support). 303 */ 304 if (termios->c_iflag & IGNPAR) 305 port->ignore_status_mask |= UART_LSR_OE; 306 } 307 308 /* 309 * ignore all characters if CREAD is not set 310 */ 311 if ((termios->c_cflag & CREAD) == 0) 312 port->ignore_status_mask |= UART_LSR_DR; 313 314 /* 315 * CTS flow control flag and modem status interrupts 316 */ 317 port->ier &= ~UART_IER_MSI; 318 if ((termios->c_cflag & CRTSCTS) || !(termios->c_cflag & CLOCAL)) 319 port->ier |= UART_IER_MSI; 320 321 port->lcr = cval; 322 323 sdio_out(port, UART_IER, port->ier); 324 sdio_out(port, UART_LCR, cval | UART_LCR_DLAB); 325 sdio_out(port, UART_DLL, quot & 0xff); 326 sdio_out(port, UART_DLM, quot >> 8); 327 sdio_out(port, UART_LCR, cval); 328 sdio_out(port, UART_FCR, fcr); 329 330 sdio_uart_write_mctrl(port, port->mctrl); 331 } 332 --- 0-DAY CI Kernel Test Service, Intel Corporation https://lists.01.org/hyperkitty/list/kbuild-all@xxxxxxxxxxxx