tup 146 drivers/tty/serial/serial-tegra.c static void tegra_uart_start_next_tx(struct tegra_uart_port *tup); tup 147 drivers/tty/serial/serial-tegra.c static int tegra_uart_start_rx_dma(struct tegra_uart_port *tup); tup 148 drivers/tty/serial/serial-tegra.c static void tegra_uart_dma_channel_free(struct tegra_uart_port *tup, tup 151 drivers/tty/serial/serial-tegra.c static inline unsigned long tegra_uart_read(struct tegra_uart_port *tup, tup 154 drivers/tty/serial/serial-tegra.c return readl(tup->uport.membase + (reg << tup->uport.regshift)); tup 157 drivers/tty/serial/serial-tegra.c static inline void tegra_uart_write(struct tegra_uart_port *tup, unsigned val, tup 160 drivers/tty/serial/serial-tegra.c writel(val, tup->uport.membase + (reg << tup->uport.regshift)); tup 170 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 181 drivers/tty/serial/serial-tegra.c if (tup->enable_modem_interrupt) tup 186 drivers/tty/serial/serial-tegra.c static void set_rts(struct tegra_uart_port *tup, bool active) tup 190 drivers/tty/serial/serial-tegra.c mcr = tup->mcr_shadow; tup 195 drivers/tty/serial/serial-tegra.c if (mcr != tup->mcr_shadow) { tup 196 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, mcr, UART_MCR); tup 197 drivers/tty/serial/serial-tegra.c tup->mcr_shadow = mcr; tup 201 drivers/tty/serial/serial-tegra.c static void set_dtr(struct tegra_uart_port *tup, bool active) tup 205 drivers/tty/serial/serial-tegra.c mcr = tup->mcr_shadow; tup 210 drivers/tty/serial/serial-tegra.c if (mcr != tup->mcr_shadow) { tup 211 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, mcr, UART_MCR); tup 212 drivers/tty/serial/serial-tegra.c tup->mcr_shadow = mcr; tup 216 drivers/tty/serial/serial-tegra.c static void set_loopbk(struct tegra_uart_port *tup, bool active) tup 218 drivers/tty/serial/serial-tegra.c unsigned long mcr = tup->mcr_shadow; tup 225 drivers/tty/serial/serial-tegra.c if (mcr != tup->mcr_shadow) { tup 226 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, mcr, UART_MCR); tup 227 drivers/tty/serial/serial-tegra.c tup->mcr_shadow = mcr; tup 233 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 236 drivers/tty/serial/serial-tegra.c tup->rts_active = !!(mctrl & TIOCM_RTS); tup 237 drivers/tty/serial/serial-tegra.c set_rts(tup, tup->rts_active); tup 240 drivers/tty/serial/serial-tegra.c set_dtr(tup, enable); tup 243 drivers/tty/serial/serial-tegra.c set_loopbk(tup, enable); tup 248 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 251 drivers/tty/serial/serial-tegra.c lcr = tup->lcr_shadow; tup 256 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, lcr, UART_LCR); tup 257 drivers/tty/serial/serial-tegra.c tup->lcr_shadow = lcr; tup 269 drivers/tty/serial/serial-tegra.c static void tegra_uart_wait_cycle_time(struct tegra_uart_port *tup, tup 272 drivers/tty/serial/serial-tegra.c if (tup->current_baud) tup 273 drivers/tty/serial/serial-tegra.c udelay(DIV_ROUND_UP(cycles * 1000000, tup->current_baud * 16)); tup 277 drivers/tty/serial/serial-tegra.c static void tegra_uart_wait_sym_time(struct tegra_uart_port *tup, tup 280 drivers/tty/serial/serial-tegra.c if (tup->current_baud) tup 281 drivers/tty/serial/serial-tegra.c udelay(DIV_ROUND_UP(syms * tup->symb_bit * 1000000, tup 282 drivers/tty/serial/serial-tegra.c tup->current_baud)); tup 285 drivers/tty/serial/serial-tegra.c static int tegra_uart_wait_fifo_mode_enabled(struct tegra_uart_port *tup) tup 291 drivers/tty/serial/serial-tegra.c iir = tegra_uart_read(tup, UART_IIR); tup 300 drivers/tty/serial/serial-tegra.c static void tegra_uart_fifo_reset(struct tegra_uart_port *tup, u8 fcr_bits) tup 302 drivers/tty/serial/serial-tegra.c unsigned long fcr = tup->fcr_shadow; tup 305 drivers/tty/serial/serial-tegra.c if (tup->rts_active) tup 306 drivers/tty/serial/serial-tegra.c set_rts(tup, false); tup 308 drivers/tty/serial/serial-tegra.c if (tup->cdata->allow_txfifo_reset_fifo_mode) { tup 310 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, fcr, UART_FCR); tup 313 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, fcr, UART_FCR); tup 316 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, fcr, UART_FCR); tup 318 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, fcr, UART_FCR); tup 319 drivers/tty/serial/serial-tegra.c if (tup->cdata->fifo_mode_enable_status) tup 320 drivers/tty/serial/serial-tegra.c tegra_uart_wait_fifo_mode_enabled(tup); tup 324 drivers/tty/serial/serial-tegra.c tegra_uart_read(tup, UART_SCR); tup 331 drivers/tty/serial/serial-tegra.c tegra_uart_wait_cycle_time(tup, 32); tup 334 drivers/tty/serial/serial-tegra.c lsr = tegra_uart_read(tup, UART_LSR); tup 340 drivers/tty/serial/serial-tegra.c if (tup->rts_active) tup 341 drivers/tty/serial/serial-tegra.c set_rts(tup, true); tup 344 drivers/tty/serial/serial-tegra.c static long tegra_get_tolerance_rate(struct tegra_uart_port *tup, tup 349 drivers/tty/serial/serial-tegra.c for (i = 0; i < tup->n_adjustable_baud_rates; ++i) { tup 350 drivers/tty/serial/serial-tegra.c if (baud >= tup->baud_tolerance[i].lower_range_baud && tup 351 drivers/tty/serial/serial-tegra.c baud <= tup->baud_tolerance[i].upper_range_baud) tup 353 drivers/tty/serial/serial-tegra.c tup->baud_tolerance[i].tolerance) / 10000); tup 359 drivers/tty/serial/serial-tegra.c static int tegra_check_rate_in_range(struct tegra_uart_port *tup) tup 363 drivers/tty/serial/serial-tegra.c diff = ((long)(tup->configured_rate - tup->required_rate) * 10000) tup 364 drivers/tty/serial/serial-tegra.c / tup->required_rate; tup 365 drivers/tty/serial/serial-tegra.c if (diff < (tup->cdata->error_tolerance_low_range * 100) || tup 366 drivers/tty/serial/serial-tegra.c diff > (tup->cdata->error_tolerance_high_range * 100)) { tup 367 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, tup 375 drivers/tty/serial/serial-tegra.c static int tegra_set_baudrate(struct tegra_uart_port *tup, unsigned int baud) tup 383 drivers/tty/serial/serial-tegra.c if (tup->current_baud == baud) tup 386 drivers/tty/serial/serial-tegra.c if (tup->cdata->support_clk_src_div) { tup 388 drivers/tty/serial/serial-tegra.c tup->required_rate = rate; tup 390 drivers/tty/serial/serial-tegra.c if (tup->n_adjustable_baud_rates) tup 391 drivers/tty/serial/serial-tegra.c rate = tegra_get_tolerance_rate(tup, baud, rate); tup 393 drivers/tty/serial/serial-tegra.c ret = clk_set_rate(tup->uart_clk, rate); tup 395 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, tup 399 drivers/tty/serial/serial-tegra.c tup->configured_rate = clk_get_rate(tup->uart_clk); tup 401 drivers/tty/serial/serial-tegra.c ret = tegra_check_rate_in_range(tup); tup 405 drivers/tty/serial/serial-tegra.c rate = clk_get_rate(tup->uart_clk); tup 409 drivers/tty/serial/serial-tegra.c spin_lock_irqsave(&tup->uport.lock, flags); tup 410 drivers/tty/serial/serial-tegra.c lcr = tup->lcr_shadow; tup 412 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, lcr, UART_LCR); tup 414 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, divisor & 0xFF, UART_TX); tup 415 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, ((divisor >> 8) & 0xFF), UART_IER); tup 418 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, lcr, UART_LCR); tup 421 drivers/tty/serial/serial-tegra.c tegra_uart_read(tup, UART_SCR); tup 422 drivers/tty/serial/serial-tegra.c spin_unlock_irqrestore(&tup->uport.lock, flags); tup 424 drivers/tty/serial/serial-tegra.c tup->current_baud = baud; tup 427 drivers/tty/serial/serial-tegra.c tegra_uart_wait_sym_time(tup, 2); tup 431 drivers/tty/serial/serial-tegra.c static char tegra_uart_decode_rx_error(struct tegra_uart_port *tup, tup 440 drivers/tty/serial/serial-tegra.c tup->uport.icount.overrun++; tup 441 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "Got overrun errors\n"); tup 445 drivers/tty/serial/serial-tegra.c tup->uport.icount.parity++; tup 446 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "Got Parity errors\n"); tup 449 drivers/tty/serial/serial-tegra.c tup->uport.icount.frame++; tup 450 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "Got frame errors\n"); tup 457 drivers/tty/serial/serial-tegra.c tegra_uart_fifo_reset(tup, UART_FCR_CLEAR_RCVR); tup 458 drivers/tty/serial/serial-tegra.c if (tup->uport.ignore_status_mask & UART_LSR_BI) tup 461 drivers/tty/serial/serial-tegra.c tup->uport.icount.brk++; tup 462 drivers/tty/serial/serial-tegra.c dev_dbg(tup->uport.dev, "Got Break\n"); tup 464 drivers/tty/serial/serial-tegra.c uart_insert_char(&tup->uport, lsr, UART_LSR_OE, 0, flag); tup 480 drivers/tty/serial/serial-tegra.c static void tegra_uart_fill_tx_fifo(struct tegra_uart_port *tup, int max_bytes) tup 482 drivers/tty/serial/serial-tegra.c struct circ_buf *xmit = &tup->uport.state->xmit; tup 487 drivers/tty/serial/serial-tegra.c if (tup->cdata->tx_fifo_full_status) { tup 488 drivers/tty/serial/serial-tegra.c unsigned long lsr = tegra_uart_read(tup, UART_LSR); tup 492 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, xmit->buf[xmit->tail], UART_TX); tup 494 drivers/tty/serial/serial-tegra.c tup->uport.icount.tx++; tup 498 drivers/tty/serial/serial-tegra.c static void tegra_uart_start_pio_tx(struct tegra_uart_port *tup, tup 504 drivers/tty/serial/serial-tegra.c tup->tx_in_progress = TEGRA_UART_TX_PIO; tup 505 drivers/tty/serial/serial-tegra.c tup->tx_bytes = bytes; tup 506 drivers/tty/serial/serial-tegra.c tup->ier_shadow |= UART_IER_THRI; tup 507 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, tup->ier_shadow, UART_IER); tup 512 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = args; tup 513 drivers/tty/serial/serial-tegra.c struct circ_buf *xmit = &tup->uport.state->xmit; tup 518 drivers/tty/serial/serial-tegra.c dmaengine_tx_status(tup->tx_dma_chan, tup->tx_cookie, &state); tup 519 drivers/tty/serial/serial-tegra.c count = tup->tx_bytes_requested - state.residue; tup 520 drivers/tty/serial/serial-tegra.c async_tx_ack(tup->tx_dma_desc); tup 521 drivers/tty/serial/serial-tegra.c spin_lock_irqsave(&tup->uport.lock, flags); tup 523 drivers/tty/serial/serial-tegra.c tup->tx_in_progress = 0; tup 525 drivers/tty/serial/serial-tegra.c uart_write_wakeup(&tup->uport); tup 526 drivers/tty/serial/serial-tegra.c tegra_uart_start_next_tx(tup); tup 527 drivers/tty/serial/serial-tegra.c spin_unlock_irqrestore(&tup->uport.lock, flags); tup 530 drivers/tty/serial/serial-tegra.c static int tegra_uart_start_tx_dma(struct tegra_uart_port *tup, tup 533 drivers/tty/serial/serial-tegra.c struct circ_buf *xmit = &tup->uport.state->xmit; tup 536 drivers/tty/serial/serial-tegra.c dma_sync_single_for_device(tup->uport.dev, tup->tx_dma_buf_phys, tup 539 drivers/tty/serial/serial-tegra.c tup->tx_bytes = count & ~(0xF); tup 540 drivers/tty/serial/serial-tegra.c tx_phys_addr = tup->tx_dma_buf_phys + xmit->tail; tup 541 drivers/tty/serial/serial-tegra.c tup->tx_dma_desc = dmaengine_prep_slave_single(tup->tx_dma_chan, tup 542 drivers/tty/serial/serial-tegra.c tx_phys_addr, tup->tx_bytes, DMA_MEM_TO_DEV, tup 544 drivers/tty/serial/serial-tegra.c if (!tup->tx_dma_desc) { tup 545 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "Not able to get desc for Tx\n"); tup 549 drivers/tty/serial/serial-tegra.c tup->tx_dma_desc->callback = tegra_uart_tx_dma_complete; tup 550 drivers/tty/serial/serial-tegra.c tup->tx_dma_desc->callback_param = tup; tup 551 drivers/tty/serial/serial-tegra.c tup->tx_in_progress = TEGRA_UART_TX_DMA; tup 552 drivers/tty/serial/serial-tegra.c tup->tx_bytes_requested = tup->tx_bytes; tup 553 drivers/tty/serial/serial-tegra.c tup->tx_cookie = dmaengine_submit(tup->tx_dma_desc); tup 554 drivers/tty/serial/serial-tegra.c dma_async_issue_pending(tup->tx_dma_chan); tup 558 drivers/tty/serial/serial-tegra.c static void tegra_uart_start_next_tx(struct tegra_uart_port *tup) tup 562 drivers/tty/serial/serial-tegra.c struct circ_buf *xmit = &tup->uport.state->xmit; tup 564 drivers/tty/serial/serial-tegra.c if (!tup->current_baud) tup 572 drivers/tty/serial/serial-tegra.c if (tup->use_tx_pio || count < TEGRA_UART_MIN_DMA) tup 573 drivers/tty/serial/serial-tegra.c tegra_uart_start_pio_tx(tup, count); tup 575 drivers/tty/serial/serial-tegra.c tegra_uart_start_pio_tx(tup, BYTES_TO_ALIGN(tail)); tup 577 drivers/tty/serial/serial-tegra.c tegra_uart_start_tx_dma(tup, count); tup 583 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 586 drivers/tty/serial/serial-tegra.c if (!uart_circ_empty(xmit) && !tup->tx_in_progress) tup 587 drivers/tty/serial/serial-tegra.c tegra_uart_start_next_tx(tup); tup 592 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 597 drivers/tty/serial/serial-tegra.c if (!tup->tx_in_progress) { tup 598 drivers/tty/serial/serial-tegra.c unsigned long lsr = tegra_uart_read(tup, UART_LSR); tup 608 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 609 drivers/tty/serial/serial-tegra.c struct circ_buf *xmit = &tup->uport.state->xmit; tup 613 drivers/tty/serial/serial-tegra.c if (tup->tx_in_progress != TEGRA_UART_TX_DMA) tup 616 drivers/tty/serial/serial-tegra.c dmaengine_terminate_all(tup->tx_dma_chan); tup 617 drivers/tty/serial/serial-tegra.c dmaengine_tx_status(tup->tx_dma_chan, tup->tx_cookie, &state); tup 618 drivers/tty/serial/serial-tegra.c count = tup->tx_bytes_requested - state.residue; tup 619 drivers/tty/serial/serial-tegra.c async_tx_ack(tup->tx_dma_desc); tup 621 drivers/tty/serial/serial-tegra.c tup->tx_in_progress = 0; tup 624 drivers/tty/serial/serial-tegra.c static void tegra_uart_handle_tx_pio(struct tegra_uart_port *tup) tup 626 drivers/tty/serial/serial-tegra.c struct circ_buf *xmit = &tup->uport.state->xmit; tup 628 drivers/tty/serial/serial-tegra.c tegra_uart_fill_tx_fifo(tup, tup->tx_bytes); tup 629 drivers/tty/serial/serial-tegra.c tup->tx_in_progress = 0; tup 631 drivers/tty/serial/serial-tegra.c uart_write_wakeup(&tup->uport); tup 632 drivers/tty/serial/serial-tegra.c tegra_uart_start_next_tx(tup); tup 635 drivers/tty/serial/serial-tegra.c static void tegra_uart_handle_rx_pio(struct tegra_uart_port *tup, tup 643 drivers/tty/serial/serial-tegra.c lsr = tegra_uart_read(tup, UART_LSR); tup 647 drivers/tty/serial/serial-tegra.c flag = tegra_uart_decode_rx_error(tup, lsr); tup 651 drivers/tty/serial/serial-tegra.c ch = (unsigned char) tegra_uart_read(tup, UART_RX); tup 652 drivers/tty/serial/serial-tegra.c tup->uport.icount.rx++; tup 654 drivers/tty/serial/serial-tegra.c if (!uart_handle_sysrq_char(&tup->uport, ch) && tty) tup 657 drivers/tty/serial/serial-tegra.c if (tup->uport.ignore_status_mask & UART_LSR_DR) tup 662 drivers/tty/serial/serial-tegra.c static void tegra_uart_copy_rx_to_tty(struct tegra_uart_port *tup, tup 672 drivers/tty/serial/serial-tegra.c tup->uport.icount.rx += count; tup 674 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "No tty port\n"); tup 678 drivers/tty/serial/serial-tegra.c if (tup->uport.ignore_status_mask & UART_LSR_DR) tup 681 drivers/tty/serial/serial-tegra.c dma_sync_single_for_cpu(tup->uport.dev, tup->rx_dma_buf_phys, tup 684 drivers/tty/serial/serial-tegra.c ((unsigned char *)(tup->rx_dma_buf_virt)), count); tup 687 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "RxData copy to tty layer failed\n"); tup 689 drivers/tty/serial/serial-tegra.c dma_sync_single_for_device(tup->uport.dev, tup->rx_dma_buf_phys, tup 693 drivers/tty/serial/serial-tegra.c static void tegra_uart_rx_buffer_push(struct tegra_uart_port *tup, tup 696 drivers/tty/serial/serial-tegra.c struct tty_port *port = &tup->uport.state->port; tup 700 drivers/tty/serial/serial-tegra.c async_tx_ack(tup->rx_dma_desc); tup 701 drivers/tty/serial/serial-tegra.c count = tup->rx_bytes_requested - residue; tup 704 drivers/tty/serial/serial-tegra.c tegra_uart_copy_rx_to_tty(tup, port, count); tup 706 drivers/tty/serial/serial-tegra.c tegra_uart_handle_rx_pio(tup, port); tup 715 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = args; tup 716 drivers/tty/serial/serial-tegra.c struct uart_port *u = &tup->uport; tup 723 drivers/tty/serial/serial-tegra.c status = dmaengine_tx_status(tup->rx_dma_chan, tup->rx_cookie, &state); tup 726 drivers/tty/serial/serial-tegra.c dev_dbg(tup->uport.dev, "RX DMA is in progress\n"); tup 731 drivers/tty/serial/serial-tegra.c if (tup->rts_active) tup 732 drivers/tty/serial/serial-tegra.c set_rts(tup, false); tup 734 drivers/tty/serial/serial-tegra.c tegra_uart_rx_buffer_push(tup, 0); tup 735 drivers/tty/serial/serial-tegra.c tegra_uart_start_rx_dma(tup); tup 738 drivers/tty/serial/serial-tegra.c if (tup->rts_active) tup 739 drivers/tty/serial/serial-tegra.c set_rts(tup, true); tup 745 drivers/tty/serial/serial-tegra.c static void tegra_uart_handle_rx_dma(struct tegra_uart_port *tup) tup 750 drivers/tty/serial/serial-tegra.c if (tup->rts_active) tup 751 drivers/tty/serial/serial-tegra.c set_rts(tup, false); tup 753 drivers/tty/serial/serial-tegra.c dmaengine_terminate_all(tup->rx_dma_chan); tup 754 drivers/tty/serial/serial-tegra.c dmaengine_tx_status(tup->rx_dma_chan, tup->rx_cookie, &state); tup 755 drivers/tty/serial/serial-tegra.c tegra_uart_rx_buffer_push(tup, state.residue); tup 756 drivers/tty/serial/serial-tegra.c tegra_uart_start_rx_dma(tup); tup 758 drivers/tty/serial/serial-tegra.c if (tup->rts_active) tup 759 drivers/tty/serial/serial-tegra.c set_rts(tup, true); tup 762 drivers/tty/serial/serial-tegra.c static int tegra_uart_start_rx_dma(struct tegra_uart_port *tup) tup 766 drivers/tty/serial/serial-tegra.c tup->rx_dma_desc = dmaengine_prep_slave_single(tup->rx_dma_chan, tup 767 drivers/tty/serial/serial-tegra.c tup->rx_dma_buf_phys, count, DMA_DEV_TO_MEM, tup 769 drivers/tty/serial/serial-tegra.c if (!tup->rx_dma_desc) { tup 770 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "Not able to get desc for Rx\n"); tup 774 drivers/tty/serial/serial-tegra.c tup->rx_dma_desc->callback = tegra_uart_rx_dma_complete; tup 775 drivers/tty/serial/serial-tegra.c tup->rx_dma_desc->callback_param = tup; tup 776 drivers/tty/serial/serial-tegra.c dma_sync_single_for_device(tup->uport.dev, tup->rx_dma_buf_phys, tup 778 drivers/tty/serial/serial-tegra.c tup->rx_bytes_requested = count; tup 779 drivers/tty/serial/serial-tegra.c tup->rx_cookie = dmaengine_submit(tup->rx_dma_desc); tup 780 drivers/tty/serial/serial-tegra.c dma_async_issue_pending(tup->rx_dma_chan); tup 786 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 789 drivers/tty/serial/serial-tegra.c msr = tegra_uart_read(tup, UART_MSR); tup 794 drivers/tty/serial/serial-tegra.c tup->uport.icount.rng++; tup 796 drivers/tty/serial/serial-tegra.c tup->uport.icount.dsr++; tup 799 drivers/tty/serial/serial-tegra.c uart_handle_dcd_change(&tup->uport, msr & UART_MSR_DCD); tup 802 drivers/tty/serial/serial-tegra.c uart_handle_cts_change(&tup->uport, msr & UART_MSR_CTS); tup 805 drivers/tty/serial/serial-tegra.c static void do_handle_rx_pio(struct tegra_uart_port *tup) tup 807 drivers/tty/serial/serial-tegra.c struct tty_struct *tty = tty_port_tty_get(&tup->uport.state->port); tup 808 drivers/tty/serial/serial-tegra.c struct tty_port *port = &tup->uport.state->port; tup 810 drivers/tty/serial/serial-tegra.c tegra_uart_handle_rx_pio(tup, port); tup 819 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = data; tup 820 drivers/tty/serial/serial-tegra.c struct uart_port *u = &tup->uport; tup 828 drivers/tty/serial/serial-tegra.c iir = tegra_uart_read(tup, UART_IIR); tup 830 drivers/tty/serial/serial-tegra.c if (!tup->use_rx_pio && is_rx_int) { tup 831 drivers/tty/serial/serial-tegra.c tegra_uart_handle_rx_dma(tup); tup 832 drivers/tty/serial/serial-tegra.c if (tup->rx_in_progress) { tup 833 drivers/tty/serial/serial-tegra.c ier = tup->ier_shadow; tup 836 drivers/tty/serial/serial-tegra.c tup->ier_shadow = ier; tup 837 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, ier, UART_IER); tup 850 drivers/tty/serial/serial-tegra.c tup->ier_shadow &= ~UART_IER_THRI; tup 851 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, tup->ier_shadow, UART_IER); tup 852 drivers/tty/serial/serial-tegra.c tegra_uart_handle_tx_pio(tup); tup 858 drivers/tty/serial/serial-tegra.c if (!tup->use_rx_pio && !is_rx_int) { tup 861 drivers/tty/serial/serial-tegra.c ier = tup->ier_shadow; tup 863 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, ier, UART_IER); tup 866 drivers/tty/serial/serial-tegra.c tup->ier_shadow = ier; tup 867 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, ier, UART_IER); tup 869 drivers/tty/serial/serial-tegra.c do_handle_rx_pio(tup); tup 874 drivers/tty/serial/serial-tegra.c tegra_uart_decode_rx_error(tup, tup 875 drivers/tty/serial/serial-tegra.c tegra_uart_read(tup, UART_LSR)); tup 887 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 888 drivers/tty/serial/serial-tegra.c struct tty_port *port = &tup->uport.state->port; tup 892 drivers/tty/serial/serial-tegra.c if (tup->rts_active) tup 893 drivers/tty/serial/serial-tegra.c set_rts(tup, false); tup 895 drivers/tty/serial/serial-tegra.c if (!tup->rx_in_progress) tup 898 drivers/tty/serial/serial-tegra.c tegra_uart_wait_sym_time(tup, 1); /* wait one character interval */ tup 900 drivers/tty/serial/serial-tegra.c ier = tup->ier_shadow; tup 903 drivers/tty/serial/serial-tegra.c tup->ier_shadow = ier; tup 904 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, ier, UART_IER); tup 905 drivers/tty/serial/serial-tegra.c tup->rx_in_progress = 0; tup 906 drivers/tty/serial/serial-tegra.c if (tup->rx_dma_chan && !tup->use_rx_pio) { tup 907 drivers/tty/serial/serial-tegra.c dmaengine_terminate_all(tup->rx_dma_chan); tup 908 drivers/tty/serial/serial-tegra.c dmaengine_tx_status(tup->rx_dma_chan, tup->rx_cookie, &state); tup 909 drivers/tty/serial/serial-tegra.c tegra_uart_rx_buffer_push(tup, state.residue); tup 911 drivers/tty/serial/serial-tegra.c tegra_uart_handle_rx_pio(tup, port); tup 915 drivers/tty/serial/serial-tegra.c static void tegra_uart_hw_deinit(struct tegra_uart_port *tup) tup 918 drivers/tty/serial/serial-tegra.c unsigned long char_time = DIV_ROUND_UP(10000000, tup->current_baud); tup 919 drivers/tty/serial/serial-tegra.c unsigned long fifo_empty_time = tup->uport.fifosize * char_time; tup 926 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, 0, UART_IER); tup 928 drivers/tty/serial/serial-tegra.c lsr = tegra_uart_read(tup, UART_LSR); tup 930 drivers/tty/serial/serial-tegra.c msr = tegra_uart_read(tup, UART_MSR); tup 931 drivers/tty/serial/serial-tegra.c mcr = tegra_uart_read(tup, UART_MCR); tup 933 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, tup 942 drivers/tty/serial/serial-tegra.c msr = tegra_uart_read(tup, UART_MSR); tup 943 drivers/tty/serial/serial-tegra.c mcr = tegra_uart_read(tup, UART_MCR); tup 946 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, tup 950 drivers/tty/serial/serial-tegra.c lsr = tegra_uart_read(tup, UART_LSR); tup 954 drivers/tty/serial/serial-tegra.c spin_lock_irqsave(&tup->uport.lock, flags); tup 956 drivers/tty/serial/serial-tegra.c tegra_uart_fifo_reset(tup, UART_FCR_CLEAR_XMIT | UART_FCR_CLEAR_RCVR); tup 957 drivers/tty/serial/serial-tegra.c tup->current_baud = 0; tup 958 drivers/tty/serial/serial-tegra.c spin_unlock_irqrestore(&tup->uport.lock, flags); tup 960 drivers/tty/serial/serial-tegra.c tup->rx_in_progress = 0; tup 961 drivers/tty/serial/serial-tegra.c tup->tx_in_progress = 0; tup 963 drivers/tty/serial/serial-tegra.c if (!tup->use_rx_pio) tup 964 drivers/tty/serial/serial-tegra.c tegra_uart_dma_channel_free(tup, true); tup 965 drivers/tty/serial/serial-tegra.c if (!tup->use_tx_pio) tup 966 drivers/tty/serial/serial-tegra.c tegra_uart_dma_channel_free(tup, false); tup 968 drivers/tty/serial/serial-tegra.c clk_disable_unprepare(tup->uart_clk); tup 971 drivers/tty/serial/serial-tegra.c static int tegra_uart_hw_init(struct tegra_uart_port *tup) tup 975 drivers/tty/serial/serial-tegra.c tup->fcr_shadow = 0; tup 976 drivers/tty/serial/serial-tegra.c tup->mcr_shadow = 0; tup 977 drivers/tty/serial/serial-tegra.c tup->lcr_shadow = 0; tup 978 drivers/tty/serial/serial-tegra.c tup->ier_shadow = 0; tup 979 drivers/tty/serial/serial-tegra.c tup->current_baud = 0; tup 981 drivers/tty/serial/serial-tegra.c clk_prepare_enable(tup->uart_clk); tup 984 drivers/tty/serial/serial-tegra.c reset_control_assert(tup->rst); tup 986 drivers/tty/serial/serial-tegra.c reset_control_deassert(tup->rst); tup 988 drivers/tty/serial/serial-tegra.c tup->rx_in_progress = 0; tup 989 drivers/tty/serial/serial-tegra.c tup->tx_in_progress = 0; tup 1009 drivers/tty/serial/serial-tegra.c tup->fcr_shadow = UART_FCR_ENABLE_FIFO; tup 1011 drivers/tty/serial/serial-tegra.c if (tup->use_rx_pio) { tup 1012 drivers/tty/serial/serial-tegra.c tup->fcr_shadow |= UART_FCR_R_TRIG_11; tup 1014 drivers/tty/serial/serial-tegra.c if (tup->cdata->max_dma_burst_bytes == 8) tup 1015 drivers/tty/serial/serial-tegra.c tup->fcr_shadow |= UART_FCR_R_TRIG_10; tup 1017 drivers/tty/serial/serial-tegra.c tup->fcr_shadow |= UART_FCR_R_TRIG_01; tup 1020 drivers/tty/serial/serial-tegra.c tup->fcr_shadow |= TEGRA_UART_TX_TRIG_16B; tup 1021 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, tup->fcr_shadow, UART_FCR); tup 1024 drivers/tty/serial/serial-tegra.c tegra_uart_read(tup, UART_SCR); tup 1026 drivers/tty/serial/serial-tegra.c if (tup->cdata->fifo_mode_enable_status) { tup 1027 drivers/tty/serial/serial-tegra.c ret = tegra_uart_wait_fifo_mode_enabled(tup); tup 1028 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "FIFO mode not enabled\n"); tup 1038 drivers/tty/serial/serial-tegra.c tegra_uart_wait_cycle_time(tup, 3); tup 1046 drivers/tty/serial/serial-tegra.c ret = tegra_set_baudrate(tup, TEGRA_UART_DEFAULT_BAUD); tup 1048 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "Failed to set baud rate\n"); tup 1051 drivers/tty/serial/serial-tegra.c if (!tup->use_rx_pio) { tup 1052 drivers/tty/serial/serial-tegra.c tup->lcr_shadow = TEGRA_UART_DEFAULT_LSR; tup 1053 drivers/tty/serial/serial-tegra.c tup->fcr_shadow |= UART_FCR_DMA_SELECT; tup 1054 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, tup->fcr_shadow, UART_FCR); tup 1056 drivers/tty/serial/serial-tegra.c ret = tegra_uart_start_rx_dma(tup); tup 1058 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "Not able to start Rx DMA\n"); tup 1062 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, tup->fcr_shadow, UART_FCR); tup 1064 drivers/tty/serial/serial-tegra.c tup->rx_in_progress = 1; tup 1084 drivers/tty/serial/serial-tegra.c if (!tup->use_rx_pio) tup 1085 drivers/tty/serial/serial-tegra.c tup->ier_shadow = UART_IER_RLSI | UART_IER_RTOIE | tup 1088 drivers/tty/serial/serial-tegra.c tup->ier_shadow = UART_IER_RLSI | UART_IER_RTOIE | UART_IER_RDI; tup 1090 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, tup->ier_shadow, UART_IER); tup 1094 drivers/tty/serial/serial-tegra.c static void tegra_uart_dma_channel_free(struct tegra_uart_port *tup, tup 1098 drivers/tty/serial/serial-tegra.c dmaengine_terminate_all(tup->rx_dma_chan); tup 1099 drivers/tty/serial/serial-tegra.c dma_release_channel(tup->rx_dma_chan); tup 1100 drivers/tty/serial/serial-tegra.c dma_free_coherent(tup->uport.dev, TEGRA_UART_RX_DMA_BUFFER_SIZE, tup 1101 drivers/tty/serial/serial-tegra.c tup->rx_dma_buf_virt, tup->rx_dma_buf_phys); tup 1102 drivers/tty/serial/serial-tegra.c tup->rx_dma_chan = NULL; tup 1103 drivers/tty/serial/serial-tegra.c tup->rx_dma_buf_phys = 0; tup 1104 drivers/tty/serial/serial-tegra.c tup->rx_dma_buf_virt = NULL; tup 1106 drivers/tty/serial/serial-tegra.c dmaengine_terminate_all(tup->tx_dma_chan); tup 1107 drivers/tty/serial/serial-tegra.c dma_release_channel(tup->tx_dma_chan); tup 1108 drivers/tty/serial/serial-tegra.c dma_unmap_single(tup->uport.dev, tup->tx_dma_buf_phys, tup 1110 drivers/tty/serial/serial-tegra.c tup->tx_dma_chan = NULL; tup 1111 drivers/tty/serial/serial-tegra.c tup->tx_dma_buf_phys = 0; tup 1112 drivers/tty/serial/serial-tegra.c tup->tx_dma_buf_virt = NULL; tup 1116 drivers/tty/serial/serial-tegra.c static int tegra_uart_dma_channel_allocate(struct tegra_uart_port *tup, tup 1125 drivers/tty/serial/serial-tegra.c dma_chan = dma_request_slave_channel_reason(tup->uport.dev, tup 1129 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, tup 1135 drivers/tty/serial/serial-tegra.c dma_buf = dma_alloc_coherent(tup->uport.dev, tup 1139 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, tup 1144 drivers/tty/serial/serial-tegra.c dma_sconfig.src_addr = tup->uport.mapbase; tup 1146 drivers/tty/serial/serial-tegra.c dma_sconfig.src_maxburst = tup->cdata->max_dma_burst_bytes; tup 1147 drivers/tty/serial/serial-tegra.c tup->rx_dma_chan = dma_chan; tup 1148 drivers/tty/serial/serial-tegra.c tup->rx_dma_buf_virt = dma_buf; tup 1149 drivers/tty/serial/serial-tegra.c tup->rx_dma_buf_phys = dma_phys; tup 1151 drivers/tty/serial/serial-tegra.c dma_phys = dma_map_single(tup->uport.dev, tup 1152 drivers/tty/serial/serial-tegra.c tup->uport.state->xmit.buf, UART_XMIT_SIZE, tup 1154 drivers/tty/serial/serial-tegra.c if (dma_mapping_error(tup->uport.dev, dma_phys)) { tup 1155 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "dma_map_single tx failed\n"); tup 1159 drivers/tty/serial/serial-tegra.c dma_buf = tup->uport.state->xmit.buf; tup 1160 drivers/tty/serial/serial-tegra.c dma_sconfig.dst_addr = tup->uport.mapbase; tup 1163 drivers/tty/serial/serial-tegra.c tup->tx_dma_chan = dma_chan; tup 1164 drivers/tty/serial/serial-tegra.c tup->tx_dma_buf_virt = dma_buf; tup 1165 drivers/tty/serial/serial-tegra.c tup->tx_dma_buf_phys = dma_phys; tup 1170 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, tup 1172 drivers/tty/serial/serial-tegra.c tegra_uart_dma_channel_free(tup, dma_to_memory); tup 1181 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 1184 drivers/tty/serial/serial-tegra.c if (!tup->use_tx_pio) { tup 1185 drivers/tty/serial/serial-tegra.c ret = tegra_uart_dma_channel_allocate(tup, false); tup 1193 drivers/tty/serial/serial-tegra.c if (!tup->use_rx_pio) { tup 1194 drivers/tty/serial/serial-tegra.c ret = tegra_uart_dma_channel_allocate(tup, true); tup 1202 drivers/tty/serial/serial-tegra.c ret = tegra_uart_hw_init(tup); tup 1209 drivers/tty/serial/serial-tegra.c dev_name(u->dev), tup); tup 1217 drivers/tty/serial/serial-tegra.c if (!tup->use_rx_pio) tup 1218 drivers/tty/serial/serial-tegra.c tegra_uart_dma_channel_free(tup, true); tup 1220 drivers/tty/serial/serial-tegra.c if (!tup->use_tx_pio) tup 1221 drivers/tty/serial/serial-tegra.c tegra_uart_dma_channel_free(tup, false); tup 1231 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 1233 drivers/tty/serial/serial-tegra.c tup->tx_bytes = 0; tup 1234 drivers/tty/serial/serial-tegra.c if (tup->tx_dma_chan) tup 1235 drivers/tty/serial/serial-tegra.c dmaengine_terminate_all(tup->tx_dma_chan); tup 1240 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 1242 drivers/tty/serial/serial-tegra.c tegra_uart_hw_deinit(tup); tup 1243 drivers/tty/serial/serial-tegra.c free_irq(u->irq, tup); tup 1248 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 1250 drivers/tty/serial/serial-tegra.c if (tup->enable_modem_interrupt) { tup 1251 drivers/tty/serial/serial-tegra.c tup->ier_shadow |= UART_IER_MSI; tup 1252 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, tup->ier_shadow, UART_IER); tup 1259 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = to_tegra_uport(u); tup 1264 drivers/tty/serial/serial-tegra.c struct clk *parent_clk = clk_get_parent(tup->uart_clk); tup 1266 drivers/tty/serial/serial-tegra.c int max_divider = (tup->cdata->support_clk_src_div) ? 0x7FFF : 0xFFFF; tup 1273 drivers/tty/serial/serial-tegra.c if (tup->rts_active) tup 1274 drivers/tty/serial/serial-tegra.c set_rts(tup, false); tup 1277 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, tup->ier_shadow | UART_IER_RDI, UART_IER); tup 1278 drivers/tty/serial/serial-tegra.c tegra_uart_read(tup, UART_IER); tup 1279 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, 0, UART_IER); tup 1280 drivers/tty/serial/serial-tegra.c tegra_uart_read(tup, UART_IER); tup 1283 drivers/tty/serial/serial-tegra.c lcr = tup->lcr_shadow; tup 1331 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, lcr, UART_LCR); tup 1332 drivers/tty/serial/serial-tegra.c tup->lcr_shadow = lcr; tup 1333 drivers/tty/serial/serial-tegra.c tup->symb_bit = symb_bit; tup 1340 drivers/tty/serial/serial-tegra.c ret = tegra_set_baudrate(tup, baud); tup 1342 drivers/tty/serial/serial-tegra.c dev_err(tup->uport.dev, "Failed to set baud rate\n"); tup 1351 drivers/tty/serial/serial-tegra.c tup->mcr_shadow |= TEGRA_UART_MCR_CTS_EN; tup 1352 drivers/tty/serial/serial-tegra.c tup->mcr_shadow &= ~TEGRA_UART_MCR_RTS_EN; tup 1353 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, tup->mcr_shadow, UART_MCR); tup 1355 drivers/tty/serial/serial-tegra.c if (tup->rts_active) tup 1356 drivers/tty/serial/serial-tegra.c set_rts(tup, true); tup 1358 drivers/tty/serial/serial-tegra.c tup->mcr_shadow &= ~TEGRA_UART_MCR_CTS_EN; tup 1359 drivers/tty/serial/serial-tegra.c tup->mcr_shadow &= ~TEGRA_UART_MCR_RTS_EN; tup 1360 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, tup->mcr_shadow, UART_MCR); tup 1367 drivers/tty/serial/serial-tegra.c tegra_uart_read(tup, UART_IER); tup 1370 drivers/tty/serial/serial-tegra.c tegra_uart_write(tup, tup->ier_shadow, UART_IER); tup 1371 drivers/tty/serial/serial-tegra.c tegra_uart_read(tup, UART_IER); tup 1373 drivers/tty/serial/serial-tegra.c tup->uport.ignore_status_mask = 0; tup 1376 drivers/tty/serial/serial-tegra.c tup->uport.ignore_status_mask |= UART_LSR_DR; tup 1378 drivers/tty/serial/serial-tegra.c tup->uport.ignore_status_mask |= UART_LSR_BI; tup 1415 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup) tup 1430 drivers/tty/serial/serial-tegra.c tup->uport.line = port; tup 1432 drivers/tty/serial/serial-tegra.c tup->enable_modem_interrupt = of_property_read_bool(np, tup 1437 drivers/tty/serial/serial-tegra.c tup->use_rx_pio = true; tup 1442 drivers/tty/serial/serial-tegra.c tup->use_tx_pio = true; tup 1448 drivers/tty/serial/serial-tegra.c tup->n_adjustable_baud_rates = n_entries / 3; tup 1449 drivers/tty/serial/serial-tegra.c tup->baud_tolerance = tup 1450 drivers/tty/serial/serial-tegra.c devm_kzalloc(&pdev->dev, (tup->n_adjustable_baud_rates) * tup 1451 drivers/tty/serial/serial-tegra.c sizeof(*tup->baud_tolerance), GFP_KERNEL); tup 1452 drivers/tty/serial/serial-tegra.c if (!tup->baud_tolerance) tup 1461 drivers/tty/serial/serial-tegra.c tup->baud_tolerance[index].lower_range_baud = tup 1468 drivers/tty/serial/serial-tegra.c tup->baud_tolerance[index].upper_range_baud = tup 1475 drivers/tty/serial/serial-tegra.c tup->baud_tolerance[index].tolerance = tup 1479 drivers/tty/serial/serial-tegra.c tup->n_adjustable_baud_rates = 0; tup 1549 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup; tup 1563 drivers/tty/serial/serial-tegra.c tup = devm_kzalloc(&pdev->dev, sizeof(*tup), GFP_KERNEL); tup 1564 drivers/tty/serial/serial-tegra.c if (!tup) { tup 1569 drivers/tty/serial/serial-tegra.c ret = tegra_uart_parse_dt(pdev, tup); tup 1573 drivers/tty/serial/serial-tegra.c u = &tup->uport; tup 1578 drivers/tty/serial/serial-tegra.c tup->cdata = cdata; tup 1580 drivers/tty/serial/serial-tegra.c platform_set_drvdata(pdev, tup); tup 1592 drivers/tty/serial/serial-tegra.c tup->uart_clk = devm_clk_get(&pdev->dev, NULL); tup 1593 drivers/tty/serial/serial-tegra.c if (IS_ERR(tup->uart_clk)) { tup 1595 drivers/tty/serial/serial-tegra.c return PTR_ERR(tup->uart_clk); tup 1598 drivers/tty/serial/serial-tegra.c tup->rst = devm_reset_control_get_exclusive(&pdev->dev, "serial"); tup 1599 drivers/tty/serial/serial-tegra.c if (IS_ERR(tup->rst)) { tup 1601 drivers/tty/serial/serial-tegra.c return PTR_ERR(tup->rst); tup 1620 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = platform_get_drvdata(pdev); tup 1621 drivers/tty/serial/serial-tegra.c struct uart_port *u = &tup->uport; tup 1630 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = dev_get_drvdata(dev); tup 1631 drivers/tty/serial/serial-tegra.c struct uart_port *u = &tup->uport; tup 1638 drivers/tty/serial/serial-tegra.c struct tegra_uart_port *tup = dev_get_drvdata(dev); tup 1639 drivers/tty/serial/serial-tegra.c struct uart_port *u = &tup->uport; tup 48 tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c struct bpf_sock_tuple tup; tup 77 tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c tup.ipv4.saddr = ipv4h->saddr; tup 78 tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c tup.ipv4.daddr = ipv4h->daddr; tup 79 tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c tup.ipv4.sport = tcph->source; tup 80 tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c tup.ipv4.dport = tcph->dest; tup 82 tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c sk = bpf_skc_lookup_tcp(ctx, &tup, sizeof(tup.ipv4), tup 109 tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c memcpy(tup.ipv6.saddr, &ipv6h->saddr, sizeof(tup.ipv6.saddr)); tup 110 tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c memcpy(tup.ipv6.daddr, &ipv6h->daddr, sizeof(tup.ipv6.daddr)); tup 111 tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c tup.ipv6.sport = tcph->source; tup 112 tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c tup.ipv6.dport = tcph->dest; tup 114 tools/testing/selftests/bpf/progs/test_tcp_check_syncookie_kern.c sk = bpf_skc_lookup_tcp(ctx, &tup, sizeof(tup.ipv6),