* [jirislaby:devel 45/50] drivers/tty/serial/samsung_tty.c:285:45: error: 'struct uart_state' has no member named 'xmit'
@ 2022-04-07 14:45 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2022-04-07 14:45 UTC (permalink / raw)
To: Jiri Slaby; +Cc: kbuild-all, linux-kernel
tree: https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git devel
head: 100a309b4d75252d31b3ae0e69d6469ac0e0f522
commit: 977858b1b952395763e2a47a94e69dd0b2f22a42 [45/50] tty: serial, use kfifo
config: riscv-allmodconfig (https://download.01.org/0day-ci/archive/20220407/202204072258.fsF8e9At-lkp@intel.com/config)
compiler: riscv64-linux-gcc (GCC) 11.2.0
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
# https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git/commit/?id=977858b1b952395763e2a47a94e69dd0b2f22a42
git remote add jirislaby https://git.kernel.org/pub/scm/linux/kernel/git/jirislaby/linux.git
git fetch --no-tags jirislaby devel
git checkout 977858b1b952395763e2a47a94e69dd0b2f22a42
# save the config file to linux build tree
mkdir build_dir
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=gcc-11.2.0 make.cross O=build_dir ARCH=riscv SHELL=/bin/bash drivers/tty/serial/
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
All errors (new ones prefixed by >>):
drivers/tty/serial/samsung_tty.c: In function 's3c24xx_serial_stop_tx':
>> drivers/tty/serial/samsung_tty.c:285:45: error: 'struct uart_state' has no member named 'xmit'
285 | struct circ_buf *xmit = &port->state->xmit;
| ^~
>> drivers/tty/serial/samsung_tty.c:313:21: error: invalid use of undefined type 'struct circ_buf'
313 | xmit->tail = (xmit->tail + count) & (UART_XMIT_SIZE - 1);
| ^~
drivers/tty/serial/samsung_tty.c:313:35: error: invalid use of undefined type 'struct circ_buf'
313 | xmit->tail = (xmit->tail + count) & (UART_XMIT_SIZE - 1);
| ^~
drivers/tty/serial/samsung_tty.c: In function 's3c24xx_serial_tx_dma_complete':
drivers/tty/serial/samsung_tty.c:332:45: error: 'struct uart_state' has no member named 'xmit'
332 | struct circ_buf *xmit = &port->state->xmit;
| ^~
drivers/tty/serial/samsung_tty.c:348:13: error: invalid use of undefined type 'struct circ_buf'
348 | xmit->tail = (xmit->tail + count) & (UART_XMIT_SIZE - 1);
| ^~
drivers/tty/serial/samsung_tty.c:348:27: error: invalid use of undefined type 'struct circ_buf'
348 | xmit->tail = (xmit->tail + count) & (UART_XMIT_SIZE - 1);
| ^~
>> drivers/tty/serial/samsung_tty.c:352:13: error: implicit declaration of function 'uart_circ_chars_pending' [-Werror=implicit-function-declaration]
352 | if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/samsung_tty.c: In function 's3c24xx_serial_start_tx_dma':
drivers/tty/serial/samsung_tty.c:439:45: error: 'struct uart_state' has no member named 'xmit'
439 | struct circ_buf *xmit = &port->state->xmit;
| ^~
drivers/tty/serial/samsung_tty.c:446:52: error: invalid use of undefined type 'struct circ_buf'
446 | dma->tx_transfer_addr = dma->tx_addr + xmit->tail;
| ^~
drivers/tty/serial/samsung_tty.c: In function 's3c24xx_serial_start_next_tx':
drivers/tty/serial/samsung_tty.c:473:45: error: 'struct uart_state' has no member named 'xmit'
473 | struct circ_buf *xmit = &port->state->xmit;
| ^~
>> drivers/tty/serial/samsung_tty.c:477:17: error: implicit declaration of function 'CIRC_CNT_TO_END' [-Werror=implicit-function-declaration]
477 | count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~~~~~~~~~~~~~~
drivers/tty/serial/samsung_tty.c:477:37: error: invalid use of undefined type 'struct circ_buf'
477 | count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~
drivers/tty/serial/samsung_tty.c:477:49: error: invalid use of undefined type 'struct circ_buf'
477 | count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~
drivers/tty/serial/samsung_tty.c:486:17: error: invalid use of undefined type 'struct circ_buf'
486 | xmit->tail & (dma_get_cache_alignment() - 1))
| ^~
drivers/tty/serial/samsung_tty.c: In function 's3c24xx_serial_start_tx':
drivers/tty/serial/samsung_tty.c:495:45: error: 'struct uart_state' has no member named 'xmit'
495 | struct circ_buf *xmit = &port->state->xmit;
| ^~
>> drivers/tty/serial/samsung_tty.c:507:22: error: implicit declaration of function 'uart_circ_empty' [-Werror=implicit-function-declaration]
507 | if (!uart_circ_empty(xmit) && !ourport->tx_in_progress)
| ^~~~~~~~~~~~~~~
drivers/tty/serial/samsung_tty.c: In function 's3c24xx_serial_tx_chars':
drivers/tty/serial/samsung_tty.c:871:45: error: 'struct uart_state' has no member named 'xmit'
871 | struct circ_buf *xmit = &port->state->xmit;
| ^~
drivers/tty/serial/samsung_tty.c:874:37: error: invalid use of undefined type 'struct circ_buf'
874 | count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~
drivers/tty/serial/samsung_tty.c:874:49: error: invalid use of undefined type 'struct circ_buf'
874 | count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~
drivers/tty/serial/samsung_tty.c:879:30: error: invalid use of undefined type 'struct circ_buf'
879 | (xmit->tail & (dma_get_cache_alignment() - 1));
| ^~
drivers/tty/serial/samsung_tty.c:913:48: error: invalid use of undefined type 'struct circ_buf'
913 | wr_reg(port, S3C2410_UTXH, xmit->buf[xmit->tail]);
| ^~
drivers/tty/serial/samsung_tty.c:913:58: error: invalid use of undefined type 'struct circ_buf'
913 | wr_reg(port, S3C2410_UTXH, xmit->buf[xmit->tail]);
| ^~
drivers/tty/serial/samsung_tty.c:914:21: error: invalid use of undefined type 'struct circ_buf'
914 | xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
| ^~
drivers/tty/serial/samsung_tty.c:914:35: error: invalid use of undefined type 'struct circ_buf'
914 | xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
| ^~
In file included from drivers/tty/serial/samsung_tty.c:25:
drivers/tty/serial/samsung_tty.c: In function 's3c24xx_serial_request_dma':
drivers/tty/serial/samsung_tty.c:1115:52: error: 'struct uart_state' has no member named 'xmit'
1115 | p->port.state->xmit.buf, UART_XMIT_SIZE,
| ^~
include/linux/dma-mapping.h:406:60: note: in definition of macro 'dma_map_single'
406 | #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
| ^
cc1: some warnings being treated as errors
--
drivers/tty/serial/max310x.c: In function 'max310x_handle_tx':
>> drivers/tty/serial/max310x.c:750:45: error: 'struct uart_state' has no member named 'xmit'
750 | struct circ_buf *xmit = &port->state->xmit;
| ^~
>> drivers/tty/serial/max310x.c:760:13: error: implicit declaration of function 'uart_circ_empty' [-Werror=implicit-function-declaration]
760 | if (uart_circ_empty(xmit) || uart_tx_stopped(port))
| ^~~~~~~~~~~~~~~
>> drivers/tty/serial/max310x.c:764:19: error: implicit declaration of function 'uart_circ_chars_pending' [-Werror=implicit-function-declaration]
764 | to_send = uart_circ_chars_pending(xmit);
| ^~~~~~~~~~~~~~~~~~~~~~~
>> drivers/tty/serial/max310x.c:765:21: error: implicit declaration of function 'CIRC_CNT_TO_END' [-Werror=implicit-function-declaration]
765 | until_end = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~~~~~~~~~~~~~~
>> drivers/tty/serial/max310x.c:765:41: error: invalid use of undefined type 'struct circ_buf'
765 | until_end = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~
drivers/tty/serial/max310x.c:765:53: error: invalid use of undefined type 'struct circ_buf'
765 | until_end = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~
drivers/tty/serial/max310x.c:775:55: error: invalid use of undefined type 'struct circ_buf'
775 | max310x_batch_write(port, xmit->buf + xmit->tail, until_end);
| ^~
drivers/tty/serial/max310x.c:775:67: error: invalid use of undefined type 'struct circ_buf'
775 | max310x_batch_write(port, xmit->buf + xmit->tail, until_end);
| ^~
drivers/tty/serial/max310x.c:776:55: error: invalid use of undefined type 'struct circ_buf'
776 | max310x_batch_write(port, xmit->buf, to_send - until_end);
| ^~
drivers/tty/serial/max310x.c:778:55: error: invalid use of undefined type 'struct circ_buf'
778 | max310x_batch_write(port, xmit->buf + xmit->tail, to_send);
| ^~
drivers/tty/serial/max310x.c:778:67: error: invalid use of undefined type 'struct circ_buf'
778 | max310x_batch_write(port, xmit->buf + xmit->tail, to_send);
| ^~
drivers/tty/serial/max310x.c:783:21: error: invalid use of undefined type 'struct circ_buf'
783 | xmit->tail = (xmit->tail + to_send) & (UART_XMIT_SIZE - 1);
| ^~
drivers/tty/serial/max310x.c:783:35: error: invalid use of undefined type 'struct circ_buf'
783 | xmit->tail = (xmit->tail + to_send) & (UART_XMIT_SIZE - 1);
| ^~
cc1: some warnings being treated as errors
--
drivers/tty/serial/sh-sci.c: In function 'sci_start_tx':
drivers/tty/serial/sh-sci.c:588:28: error: implicit declaration of function 'uart_circ_empty' [-Werror=implicit-function-declaration]
588 | if (s->chan_tx && !uart_circ_empty(&s->port.state->xmit) &&
| ^~~~~~~~~~~~~~~
>> drivers/tty/serial/sh-sci.c:588:58: error: 'struct uart_state' has no member named 'xmit'
588 | if (s->chan_tx && !uart_circ_empty(&s->port.state->xmit) &&
| ^~
drivers/tty/serial/sh-sci.c: In function 'sci_transmit_chars':
drivers/tty/serial/sh-sci.c:807:45: error: 'struct uart_state' has no member named 'xmit'
807 | struct circ_buf *xmit = &port->state->xmit;
| ^~
drivers/tty/serial/sh-sci.c:833:33: error: invalid use of undefined type 'struct circ_buf'
833 | c = xmit->buf[xmit->tail];
| ^~
drivers/tty/serial/sh-sci.c:833:43: error: invalid use of undefined type 'struct circ_buf'
833 | c = xmit->buf[xmit->tail];
| ^~
drivers/tty/serial/sh-sci.c:834:29: error: invalid use of undefined type 'struct circ_buf'
834 | xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
| ^~
drivers/tty/serial/sh-sci.c:834:43: error: invalid use of undefined type 'struct circ_buf'
834 | xmit->tail = (xmit->tail + 1) & (UART_XMIT_SIZE - 1);
| ^~
drivers/tty/serial/sh-sci.c:846:13: error: implicit declaration of function 'uart_circ_chars_pending' [-Werror=implicit-function-declaration]
846 | if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/sh-sci.c: In function 'sci_dma_tx_complete':
drivers/tty/serial/sh-sci.c:1177:45: error: 'struct uart_state' has no member named 'xmit'
1177 | struct circ_buf *xmit = &port->state->xmit;
| ^~
drivers/tty/serial/sh-sci.c:1184:13: error: invalid use of undefined type 'struct circ_buf'
1184 | xmit->tail += s->tx_dma_len;
| ^~
drivers/tty/serial/sh-sci.c:1185:13: error: invalid use of undefined type 'struct circ_buf'
1185 | xmit->tail &= UART_XMIT_SIZE - 1;
| ^~
drivers/tty/serial/sh-sci.c: In function 'sci_dma_tx_work_fn':
drivers/tty/serial/sh-sci.c:1395:45: error: 'struct uart_state' has no member named 'xmit'
1395 | struct circ_buf *xmit = &port->state->xmit;
| ^~
drivers/tty/serial/sh-sci.c:1408:20: error: invalid use of undefined type 'struct circ_buf'
1408 | head = xmit->head;
| ^~
drivers/tty/serial/sh-sci.c:1409:20: error: invalid use of undefined type 'struct circ_buf'
1409 | tail = xmit->tail;
| ^~
In file included from include/linux/kernel.h:26,
from include/linux/clk.h:13,
from drivers/tty/serial/sh-sci.c:20:
>> drivers/tty/serial/sh-sci.c:1412:17: error: implicit declaration of function 'CIRC_CNT' [-Werror=implicit-function-declaration]
1412 | CIRC_CNT(head, tail, UART_XMIT_SIZE),
| ^~~~~~~~
include/linux/minmax.h:20:28: note: in definition of macro '__typecheck'
20 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
| ^
include/linux/minmax.h:36:31: note: in expansion of macro '__safe_cmp'
36 | __builtin_choose_expr(__safe_cmp(x, y), \
| ^~~~~~~~~~
include/linux/minmax.h:104:33: note: in expansion of macro '__careful_cmp'
104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
| ^~~~~~~~~~~~~
drivers/tty/serial/sh-sci.c:1411:25: note: in expansion of macro 'min_t'
1411 | s->tx_dma_len = min_t(unsigned int,
| ^~~~~
>> drivers/tty/serial/sh-sci.c:1413:17: error: implicit declaration of function 'CIRC_CNT_TO_END' [-Werror=implicit-function-declaration]
1413 | CIRC_CNT_TO_END(head, tail, UART_XMIT_SIZE));
| ^~~~~~~~~~~~~~~
include/linux/minmax.h:20:46: note: in definition of macro '__typecheck'
20 | (!!(sizeof((typeof(x) *)1 == (typeof(y) *)1)))
| ^
include/linux/minmax.h:36:31: note: in expansion of macro '__safe_cmp'
36 | __builtin_choose_expr(__safe_cmp(x, y), \
| ^~~~~~~~~~
include/linux/minmax.h:104:33: note: in expansion of macro '__careful_cmp'
104 | #define min_t(type, x, y) __careful_cmp((type)(x), (type)(y), <)
| ^~~~~~~~~~~~~
drivers/tty/serial/sh-sci.c:1411:25: note: in expansion of macro 'min_t'
1411 | s->tx_dma_len = min_t(unsigned int,
| ^~~~~
In file included from include/linux/printk.h:555,
from include/linux/kernel.h:29,
from include/linux/clk.h:13,
from drivers/tty/serial/sh-sci.c:20:
drivers/tty/serial/sh-sci.c:1443:31: error: invalid use of undefined type 'struct circ_buf'
1443 | __func__, xmit->buf, tail, head, s->cookie_tx);
| ^~
include/linux/dynamic_debug.h:134:29: note: in definition of macro '__dynamic_func_call'
134 | func(&id, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/dynamic_debug.h:166:9: note: in expansion of macro '_dynamic_func_call'
166 | _dynamic_func_call(fmt,__dynamic_dev_dbg, \
| ^~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:155:9: note: in expansion of macro 'dynamic_dev_dbg'
155 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~
drivers/tty/serial/sh-sci.c:1442:9: note: in expansion of macro 'dev_dbg'
1442 | dev_dbg(port->dev, "%s: %p: %d...%d, cookie %d\n",
| ^~~~~~~
In file included from drivers/tty/serial/sh-sci.c:26:
drivers/tty/serial/sh-sci.c: In function 'sci_request_dma':
drivers/tty/serial/sh-sci.c:1589:60: error: 'struct uart_state' has no member named 'xmit'
1589 | port->state->xmit.buf,
| ^~
include/linux/dma-mapping.h:406:60: note: in definition of macro 'dma_map_single'
406 | #define dma_map_single(d, a, s, r) dma_map_single_attrs(d, a, s, r, 0)
| ^
In file included from include/linux/printk.h:555,
from include/linux/kernel.h:29,
from include/linux/clk.h:13,
from drivers/tty/serial/sh-sci.c:20:
drivers/tty/serial/sh-sci.c:1598:44: error: 'struct uart_state' has no member named 'xmit'
1598 | port->state->xmit.buf, &s->tx_dma_addr);
| ^~
include/linux/dynamic_debug.h:134:29: note: in definition of macro '__dynamic_func_call'
134 | func(&id, ##__VA_ARGS__); \
| ^~~~~~~~~~~
include/linux/dynamic_debug.h:166:9: note: in expansion of macro '_dynamic_func_call'
166 | _dynamic_func_call(fmt,__dynamic_dev_dbg, \
| ^~~~~~~~~~~~~~~~~~
include/linux/dev_printk.h:155:9: note: in expansion of macro 'dynamic_dev_dbg'
155 | dynamic_dev_dbg(dev, dev_fmt(fmt), ##__VA_ARGS__)
| ^~~~~~~~~~~~~~~
drivers/tty/serial/sh-sci.c:1596:25: note: in expansion of macro 'dev_dbg'
1596 | dev_dbg(port->dev, "%s: mapped %lu@%p to %pad\n",
| ^~~~~~~
cc1: some warnings being treated as errors
--
drivers/tty/serial/msm_serial.c: In function 'msm_complete_tx_dma':
>> drivers/tty/serial/msm_serial.c:437:45: error: 'struct uart_state' has no member named 'xmit'
437 | struct circ_buf *xmit = &port->state->xmit;
| ^~
>> drivers/tty/serial/msm_serial.c:467:13: error: invalid use of undefined type 'struct circ_buf'
467 | xmit->tail += count;
| ^~
drivers/tty/serial/msm_serial.c:468:13: error: invalid use of undefined type 'struct circ_buf'
468 | xmit->tail &= UART_XMIT_SIZE - 1;
| ^~
>> drivers/tty/serial/msm_serial.c:474:13: error: implicit declaration of function 'uart_circ_chars_pending' [-Werror=implicit-function-declaration]
474 | if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
| ^~~~~~~~~~~~~~~~~~~~~~~
drivers/tty/serial/msm_serial.c: In function 'msm_handle_tx_dma':
drivers/tty/serial/msm_serial.c:484:54: error: 'struct uart_state' has no member named 'xmit'
484 | struct circ_buf *xmit = &msm_port->uart.state->xmit;
| ^~
drivers/tty/serial/msm_serial.c:491:25: error: invalid use of undefined type 'struct circ_buf'
491 | cpu_addr = &xmit->buf[xmit->tail];
| ^~
drivers/tty/serial/msm_serial.c:491:35: error: invalid use of undefined type 'struct circ_buf'
491 | cpu_addr = &xmit->buf[xmit->tail];
| ^~
drivers/tty/serial/msm_serial.c: In function 'msm_handle_tx_pio':
drivers/tty/serial/msm_serial.c:839:45: error: 'struct uart_state' has no member named 'xmit'
839 | struct circ_buf *xmit = &port->state->xmit;
| ^~
drivers/tty/serial/msm_serial.c:867:38: error: invalid use of undefined type 'struct circ_buf'
867 | buf[i] = xmit->buf[xmit->tail + i];
| ^~
drivers/tty/serial/msm_serial.c:867:48: error: invalid use of undefined type 'struct circ_buf'
867 | buf[i] = xmit->buf[xmit->tail + i];
| ^~
drivers/tty/serial/msm_serial.c:872:21: error: invalid use of undefined type 'struct circ_buf'
872 | xmit->tail = (xmit->tail + num_chars) & (UART_XMIT_SIZE - 1);
| ^~
drivers/tty/serial/msm_serial.c:872:35: error: invalid use of undefined type 'struct circ_buf'
872 | xmit->tail = (xmit->tail + num_chars) & (UART_XMIT_SIZE - 1);
| ^~
>> drivers/tty/serial/msm_serial.c:877:13: error: implicit declaration of function 'uart_circ_empty' [-Werror=implicit-function-declaration]
877 | if (uart_circ_empty(xmit))
| ^~~~~~~~~~~~~~~
drivers/tty/serial/msm_serial.c: In function 'msm_handle_tx':
drivers/tty/serial/msm_serial.c:887:54: error: 'struct uart_state' has no member named 'xmit'
887 | struct circ_buf *xmit = &msm_port->uart.state->xmit;
| ^~
>> drivers/tty/serial/msm_serial.c:916:21: error: implicit declaration of function 'CIRC_CNT_TO_END' [-Werror=implicit-function-declaration]
916 | pio_count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~~~~~~~~~~~~~~
drivers/tty/serial/msm_serial.c:916:41: error: invalid use of undefined type 'struct circ_buf'
916 | pio_count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~
drivers/tty/serial/msm_serial.c:916:53: error: invalid use of undefined type 'struct circ_buf'
916 | pio_count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~
drivers/tty/serial/msm_serial.c:917:41: error: invalid use of undefined type 'struct circ_buf'
917 | dma_count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~
drivers/tty/serial/msm_serial.c:917:53: error: invalid use of undefined type 'struct circ_buf'
917 | dma_count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
| ^~
cc1: some warnings being treated as errors
..
vim +285 drivers/tty/serial/samsung_tty.c
b497549a035c2a drivers/serial/samsung.c Ben Dooks 2008-07-03 280
b497549a035c2a drivers/serial/samsung.c Ben Dooks 2008-07-03 281 static void s3c24xx_serial_stop_tx(struct uart_port *port)
b497549a035c2a drivers/serial/samsung.c Ben Dooks 2008-07-03 282 {
b73c289cc90138 drivers/serial/samsung.c Ben Dooks 2008-10-21 283 struct s3c24xx_uart_port *ourport = to_ourport(port);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 284 struct s3c24xx_uart_dma *dma = ourport->dma;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 @285 struct circ_buf *xmit = &port->state->xmit;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 286 struct dma_tx_state state;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 287 int count;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 288
8336240ebb248b drivers/tty/serial/samsung_tty.c Greg Kroah-Hartman 2019-12-17 289 if (!ourport->tx_enabled)
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 290 return;
b73c289cc90138 drivers/serial/samsung.c Ben Dooks 2008-10-21 291
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 292 switch (ourport->info->type) {
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 293 case TYPE_S3C6400:
bbb5ff91225dfb drivers/tty/serial/samsung.c Matthew Leach 2016-06-22 294 s3c24xx_set_bit(port, S3C64XX_UINTM_TXD, S3C64XX_UINTM);
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 295 break;
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 296 case TYPE_APPLE_S5L:
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 297 s3c24xx_clear_bit(port, APPLE_S5L_UCON_TXTHRESH_ENA, S3C2410_UCON);
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 298 break;
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 299 default:
41609ff43005de drivers/serial/samsung.c Mark Brown 2009-04-14 300 disable_irq_nosync(ourport->tx_irq);
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 301 break;
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 302 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 303
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 304 if (dma && dma->tx_chan && ourport->tx_in_progress == S3C24XX_TX_DMA) {
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 305 dmaengine_pause(dma->tx_chan);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 306 dmaengine_tx_status(dma->tx_chan, dma->tx_cookie, &state);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 307 dmaengine_terminate_all(dma->tx_chan);
4fc2d3cd6d3a48 drivers/tty/serial/samsung_tty.c Tamseel Shams 2021-06-29 308 dma_sync_single_for_cpu(dma->tx_chan->device->dev,
4fc2d3cd6d3a48 drivers/tty/serial/samsung_tty.c Tamseel Shams 2021-06-29 309 dma->tx_transfer_addr, dma->tx_size,
4fc2d3cd6d3a48 drivers/tty/serial/samsung_tty.c Tamseel Shams 2021-06-29 310 DMA_TO_DEVICE);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 311 async_tx_ack(dma->tx_desc);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 312 count = dma->tx_bytes_requested - state.residue;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 @313 xmit->tail = (xmit->tail + count) & (UART_XMIT_SIZE - 1);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 314 port->icount.tx += count;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 315 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 316
8336240ebb248b drivers/tty/serial/samsung_tty.c Greg Kroah-Hartman 2019-12-17 317 ourport->tx_enabled = 0;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 318 ourport->tx_in_progress = 0;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 319
b497549a035c2a drivers/serial/samsung.c Ben Dooks 2008-07-03 320 if (port->flags & UPF_CONS_FLOW)
b497549a035c2a drivers/serial/samsung.c Ben Dooks 2008-07-03 321 s3c24xx_serial_rx_enable(port);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 322
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 323 ourport->tx_mode = 0;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 324 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 325
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 326 static void s3c24xx_serial_start_next_tx(struct s3c24xx_uart_port *ourport);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 327
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 328 static void s3c24xx_serial_tx_dma_complete(void *args)
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 329 {
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 330 struct s3c24xx_uart_port *ourport = args;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 331 struct uart_port *port = &ourport->port;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 @332 struct circ_buf *xmit = &port->state->xmit;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 333 struct s3c24xx_uart_dma *dma = ourport->dma;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 334 struct dma_tx_state state;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 335 unsigned long flags;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 336 int count;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 337
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 338 dmaengine_tx_status(dma->tx_chan, dma->tx_cookie, &state);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 339 count = dma->tx_bytes_requested - state.residue;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 340 async_tx_ack(dma->tx_desc);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 341
4fc2d3cd6d3a48 drivers/tty/serial/samsung_tty.c Tamseel Shams 2021-06-29 342 dma_sync_single_for_cpu(dma->tx_chan->device->dev,
4fc2d3cd6d3a48 drivers/tty/serial/samsung_tty.c Tamseel Shams 2021-06-29 343 dma->tx_transfer_addr, dma->tx_size,
4fc2d3cd6d3a48 drivers/tty/serial/samsung_tty.c Tamseel Shams 2021-06-29 344 DMA_TO_DEVICE);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 345
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 346 spin_lock_irqsave(&port->lock, flags);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 347
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 348 xmit->tail = (xmit->tail + count) & (UART_XMIT_SIZE - 1);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 349 port->icount.tx += count;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 350 ourport->tx_in_progress = 0;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 351
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 @352 if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 353 uart_write_wakeup(port);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 354
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 355 s3c24xx_serial_start_next_tx(ourport);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 356 spin_unlock_irqrestore(&port->lock, flags);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 357 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 358
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 359 static void enable_tx_dma(struct s3c24xx_uart_port *ourport)
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 360 {
bb1d98187b09d4 drivers/tty/serial/samsung_tty.c Krzysztof Kozlowski 2022-03-08 361 const struct uart_port *port = &ourport->port;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 362 u32 ucon;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 363
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 364 /* Mask Tx interrupt */
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 365 switch (ourport->info->type) {
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 366 case TYPE_S3C6400:
bbb5ff91225dfb drivers/tty/serial/samsung.c Matthew Leach 2016-06-22 367 s3c24xx_set_bit(port, S3C64XX_UINTM_TXD, S3C64XX_UINTM);
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 368 break;
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 369 case TYPE_APPLE_S5L:
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 370 WARN_ON(1); // No DMA
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 371 break;
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 372 default:
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 373 disable_irq_nosync(ourport->tx_irq);
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 374 break;
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 375 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 376
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 377 /* Enable tx dma mode */
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 378 ucon = rd_regl(port, S3C2410_UCON);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 379 ucon &= ~(S3C64XX_UCON_TXBURST_MASK | S3C64XX_UCON_TXMODE_MASK);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 380 ucon |= (dma_get_cache_alignment() >= 16) ?
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 381 S3C64XX_UCON_TXBURST_16 : S3C64XX_UCON_TXBURST_1;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 382 ucon |= S3C64XX_UCON_TXMODE_DMA;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 383 wr_regl(port, S3C2410_UCON, ucon);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 384
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 385 ourport->tx_mode = S3C24XX_TX_DMA;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 386 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 387
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 388 static void enable_tx_pio(struct s3c24xx_uart_port *ourport)
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 389 {
bb1d98187b09d4 drivers/tty/serial/samsung_tty.c Krzysztof Kozlowski 2022-03-08 390 const struct uart_port *port = &ourport->port;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 391 u32 ucon, ufcon;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 392
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 393 /* Set ufcon txtrig */
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 394 ourport->tx_in_progress = S3C24XX_TX_PIO;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 395 ufcon = rd_regl(port, S3C2410_UFCON);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 396 wr_regl(port, S3C2410_UFCON, ufcon);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 397
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 398 /* Enable tx pio mode */
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 399 ucon = rd_regl(port, S3C2410_UCON);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 400 ucon &= ~(S3C64XX_UCON_TXMODE_MASK);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 401 ucon |= S3C64XX_UCON_TXMODE_CPU;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 402 wr_regl(port, S3C2410_UCON, ucon);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 403
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 404 /* Unmask Tx interrupt */
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 405 switch (ourport->info->type) {
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 406 case TYPE_S3C6400:
bbb5ff91225dfb drivers/tty/serial/samsung.c Matthew Leach 2016-06-22 407 s3c24xx_clear_bit(port, S3C64XX_UINTM_TXD,
bbb5ff91225dfb drivers/tty/serial/samsung.c Matthew Leach 2016-06-22 408 S3C64XX_UINTM);
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 409 break;
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 410 case TYPE_APPLE_S5L:
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 411 ucon |= APPLE_S5L_UCON_TXTHRESH_ENA_MSK;
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 412 wr_regl(port, S3C2410_UCON, ucon);
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 413 break;
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 414 default:
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 415 enable_irq(ourport->tx_irq);
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 416 break;
aaf144059ba474 drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 417 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 418
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 419 ourport->tx_mode = S3C24XX_TX_PIO;
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 420
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 421 /*
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 422 * The Apple version only has edge triggered TX IRQs, so we need
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 423 * to kick off the process by sending some characters here.
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 424 */
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 425 if (ourport->info->type == TYPE_APPLE_S5L)
fcbba344907afe drivers/tty/serial/samsung_tty.c Hector Martin 2021-03-05 426 s3c24xx_serial_tx_chars(ourport);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 427 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 428
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 429 static void s3c24xx_serial_start_tx_pio(struct s3c24xx_uart_port *ourport)
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 430 {
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 431 if (ourport->tx_mode != S3C24XX_TX_PIO)
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 432 enable_tx_pio(ourport);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 433 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 434
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 435 static int s3c24xx_serial_start_tx_dma(struct s3c24xx_uart_port *ourport,
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 436 unsigned int count)
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 437 {
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 438 struct uart_port *port = &ourport->port;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 439 struct circ_buf *xmit = &port->state->xmit;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 440 struct s3c24xx_uart_dma *dma = ourport->dma;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 441
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 442 if (ourport->tx_mode != S3C24XX_TX_DMA)
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 443 enable_tx_dma(ourport);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 444
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 445 dma->tx_size = count & ~(dma_get_cache_alignment() - 1);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 @446 dma->tx_transfer_addr = dma->tx_addr + xmit->tail;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 447
4fc2d3cd6d3a48 drivers/tty/serial/samsung_tty.c Tamseel Shams 2021-06-29 448 dma_sync_single_for_device(dma->tx_chan->device->dev,
4fc2d3cd6d3a48 drivers/tty/serial/samsung_tty.c Tamseel Shams 2021-06-29 449 dma->tx_transfer_addr, dma->tx_size,
4fc2d3cd6d3a48 drivers/tty/serial/samsung_tty.c Tamseel Shams 2021-06-29 450 DMA_TO_DEVICE);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 451
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 452 dma->tx_desc = dmaengine_prep_slave_single(dma->tx_chan,
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 453 dma->tx_transfer_addr, dma->tx_size,
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 454 DMA_MEM_TO_DEV, DMA_PREP_INTERRUPT);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 455 if (!dma->tx_desc) {
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 456 dev_err(ourport->port.dev, "Unable to get desc for Tx\n");
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 457 return -EIO;
b497549a035c2a drivers/serial/samsung.c Ben Dooks 2008-07-03 458 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 459
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 460 dma->tx_desc->callback = s3c24xx_serial_tx_dma_complete;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 461 dma->tx_desc->callback_param = ourport;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 462 dma->tx_bytes_requested = dma->tx_size;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 463
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 464 ourport->tx_in_progress = S3C24XX_TX_DMA;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 465 dma->tx_cookie = dmaengine_submit(dma->tx_desc);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 466 dma_async_issue_pending(dma->tx_chan);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 467 return 0;
b497549a035c2a drivers/serial/samsung.c Ben Dooks 2008-07-03 468 }
b497549a035c2a drivers/serial/samsung.c Ben Dooks 2008-07-03 469
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 470 static void s3c24xx_serial_start_next_tx(struct s3c24xx_uart_port *ourport)
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 471 {
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 472 struct uart_port *port = &ourport->port;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 473 struct circ_buf *xmit = &port->state->xmit;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 474 unsigned long count;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 475
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 476 /* Get data size up to the end of buffer */
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 @477 count = CIRC_CNT_TO_END(xmit->head, xmit->tail, UART_XMIT_SIZE);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 478
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 479 if (!count) {
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 480 s3c24xx_serial_stop_tx(port);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 481 return;
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 482 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 483
81ccb2a69f76b8 drivers/tty/serial/samsung.c Marek Szyprowski 2015-07-31 484 if (!ourport->dma || !ourport->dma->tx_chan ||
736cd79f483fd7 drivers/tty/serial/samsung.c Robert Baldyga 2015-07-31 485 count < ourport->min_dma_size ||
736cd79f483fd7 drivers/tty/serial/samsung.c Robert Baldyga 2015-07-31 486 xmit->tail & (dma_get_cache_alignment() - 1))
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 487 s3c24xx_serial_start_tx_pio(ourport);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 488 else
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 489 s3c24xx_serial_start_tx_dma(ourport, count);
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 490 }
29bef79908459d drivers/tty/serial/samsung.c Robert Baldyga 2014-12-10 491
:::::: The code at line 285 was first introduced by commit
:::::: 29bef79908459d20a7a3db654bceb8f3ce4601dc serial: samsung: add DMA support for TX
:::::: TO: Robert Baldyga <r.baldyga@samsung.com>
:::::: CC: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2022-04-07 14:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-07 14:45 [jirislaby:devel 45/50] drivers/tty/serial/samsung_tty.c:285:45: error: 'struct uart_state' has no member named 'xmit' kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.