atmel_port 246 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 248 drivers/tty/serial/atmel_serial.c return atmel_port->use_pdc_rx; atmel_port 253 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 255 drivers/tty/serial/atmel_serial.c return atmel_port->use_pdc_tx; atmel_port 271 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 273 drivers/tty/serial/atmel_serial.c return atmel_port->use_dma_tx; atmel_port 278 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 280 drivers/tty/serial/atmel_serial.c return atmel_port->use_dma_rx; atmel_port 285 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 287 drivers/tty/serial/atmel_serial.c return atmel_port->fifo_size; atmel_port 290 drivers/tty/serial/atmel_serial.c static void atmel_tasklet_schedule(struct atmel_uart_port *atmel_port, atmel_port 293 drivers/tty/serial/atmel_serial.c if (!atomic_read(&atmel_port->tasklet_shutdown)) atmel_port 301 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 305 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_IDR, atmel_port->tx_done_mask); atmel_port 316 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask = ATMEL_US_TXEMPTY; atmel_port 323 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask = ATMEL_US_ENDTX | atmel_port 326 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask = ATMEL_US_TXRDY; atmel_port 331 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_IER, atmel_port->tx_done_mask); atmel_port 339 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 343 drivers/tty/serial/atmel_serial.c mck_rate = (u64)clk_get_rate(atmel_port->clk); atmel_port 366 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 372 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_IDR, atmel_port->tx_done_mask); atmel_port 410 drivers/tty/serial/atmel_serial.c } else if (fidi < atmel_port->fidi_min atmel_port 411 drivers/tty/serial/atmel_serial.c || fidi > atmel_port->fidi_max) { atmel_port 420 drivers/tty/serial/atmel_serial.c atmel_port->backup_mode = atmel_uart_readl(port, ATMEL_US_MR); atmel_port 421 drivers/tty/serial/atmel_serial.c atmel_port->backup_brgr = atmel_uart_readl(port, ATMEL_US_BRGR); atmel_port 429 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask = ATMEL_US_TXEMPTY | ATMEL_US_NACK | ATMEL_US_ITERATION; atmel_port 433 drivers/tty/serial/atmel_serial.c mode = atmel_port->backup_mode; atmel_port 436 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_BRGR, atmel_port->backup_brgr); atmel_port 440 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask = ATMEL_US_ENDTX | atmel_port 443 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask = ATMEL_US_TXRDY; atmel_port 452 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_IER, atmel_port->tx_done_mask); atmel_port 462 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 464 drivers/tty/serial/atmel_serial.c if (atmel_port->tx_stopped) atmel_port 479 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 516 drivers/tty/serial/atmel_serial.c mctrl_gpio_set(atmel_port->gpios, mctrl); atmel_port 533 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 550 drivers/tty/serial/atmel_serial.c return mctrl_gpio_get(atmel_port->gpios, &ret); atmel_port 558 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 571 drivers/tty/serial/atmel_serial.c atmel_port->tx_stopped = true; atmel_port 574 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_IDR, atmel_port->tx_done_mask); atmel_port 577 drivers/tty/serial/atmel_serial.c if (!atomic_read(&atmel_port->tasklet_shutdown)) atmel_port 587 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 604 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_IER, atmel_port->tx_done_mask); atmel_port 608 drivers/tty/serial/atmel_serial.c atmel_port->tx_stopped = false; atmel_port 655 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 661 drivers/tty/serial/atmel_serial.c if (atmel_port->ms_irq_enabled) atmel_port 664 drivers/tty/serial/atmel_serial.c atmel_port->ms_irq_enabled = true; atmel_port 666 drivers/tty/serial/atmel_serial.c if (!mctrl_gpio_to_gpiod(atmel_port->gpios, UART_GPIO_CTS)) atmel_port 669 drivers/tty/serial/atmel_serial.c if (!mctrl_gpio_to_gpiod(atmel_port->gpios, UART_GPIO_DSR)) atmel_port 672 drivers/tty/serial/atmel_serial.c if (!mctrl_gpio_to_gpiod(atmel_port->gpios, UART_GPIO_RI)) atmel_port 675 drivers/tty/serial/atmel_serial.c if (!mctrl_gpio_to_gpiod(atmel_port->gpios, UART_GPIO_DCD)) atmel_port 680 drivers/tty/serial/atmel_serial.c mctrl_gpio_enable_ms(atmel_port->gpios); atmel_port 688 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 694 drivers/tty/serial/atmel_serial.c if (!atmel_port->ms_irq_enabled) atmel_port 697 drivers/tty/serial/atmel_serial.c atmel_port->ms_irq_enabled = false; atmel_port 699 drivers/tty/serial/atmel_serial.c mctrl_gpio_disable_ms(atmel_port->gpios); atmel_port 701 drivers/tty/serial/atmel_serial.c if (!mctrl_gpio_to_gpiod(atmel_port->gpios, UART_GPIO_CTS)) atmel_port 704 drivers/tty/serial/atmel_serial.c if (!mctrl_gpio_to_gpiod(atmel_port->gpios, UART_GPIO_DSR)) atmel_port 707 drivers/tty/serial/atmel_serial.c if (!mctrl_gpio_to_gpiod(atmel_port->gpios, UART_GPIO_RI)) atmel_port 710 drivers/tty/serial/atmel_serial.c if (!mctrl_gpio_to_gpiod(atmel_port->gpios, UART_GPIO_DCD)) atmel_port 736 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 737 drivers/tty/serial/atmel_serial.c struct circ_buf *ring = &atmel_port->rx_ring; atmel_port 780 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 793 drivers/tty/serial/atmel_serial.c || atmel_port->break_active)) { atmel_port 799 drivers/tty/serial/atmel_serial.c && !atmel_port->break_active) { atmel_port 800 drivers/tty/serial/atmel_serial.c atmel_port->break_active = 1; atmel_port 814 drivers/tty/serial/atmel_serial.c atmel_port->break_active = 0; atmel_port 822 drivers/tty/serial/atmel_serial.c atmel_tasklet_schedule(atmel_port, &atmel_port->tasklet_rx); atmel_port 832 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 835 drivers/tty/serial/atmel_serial.c (atmel_uart_readl(port, ATMEL_US_CSR) & atmel_port->tx_done_mask)) { atmel_port 844 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask) { atmel_port 858 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask); atmel_port 863 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = arg; atmel_port 864 drivers/tty/serial/atmel_serial.c struct uart_port *port = &atmel_port->uart; atmel_port 866 drivers/tty/serial/atmel_serial.c struct dma_chan *chan = atmel_port->chan_tx; atmel_port 873 drivers/tty/serial/atmel_serial.c xmit->tail += atmel_port->tx_len; atmel_port 876 drivers/tty/serial/atmel_serial.c port->icount.tx += atmel_port->tx_len; atmel_port 878 drivers/tty/serial/atmel_serial.c spin_lock_irq(&atmel_port->lock_tx); atmel_port 879 drivers/tty/serial/atmel_serial.c async_tx_ack(atmel_port->desc_tx); atmel_port 880 drivers/tty/serial/atmel_serial.c atmel_port->cookie_tx = -EINVAL; atmel_port 881 drivers/tty/serial/atmel_serial.c atmel_port->desc_tx = NULL; atmel_port 882 drivers/tty/serial/atmel_serial.c spin_unlock_irq(&atmel_port->lock_tx); atmel_port 893 drivers/tty/serial/atmel_serial.c atmel_tasklet_schedule(atmel_port, &atmel_port->tasklet_tx); atmel_port 899 drivers/tty/serial/atmel_serial.c atmel_port->hd_start_rx = true; atmel_port 901 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask); atmel_port 909 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 910 drivers/tty/serial/atmel_serial.c struct dma_chan *chan = atmel_port->chan_tx; atmel_port 915 drivers/tty/serial/atmel_serial.c dma_unmap_sg(port->dev, &atmel_port->sg_tx, 1, atmel_port 919 drivers/tty/serial/atmel_serial.c atmel_port->desc_tx = NULL; atmel_port 920 drivers/tty/serial/atmel_serial.c atmel_port->chan_tx = NULL; atmel_port 921 drivers/tty/serial/atmel_serial.c atmel_port->cookie_tx = -EINVAL; atmel_port 929 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 931 drivers/tty/serial/atmel_serial.c struct dma_chan *chan = atmel_port->chan_tx; atmel_port 933 drivers/tty/serial/atmel_serial.c struct scatterlist sgl[2], *sg, *sg_tx = &atmel_port->sg_tx; atmel_port 938 drivers/tty/serial/atmel_serial.c if (atmel_port->desc_tx != NULL) atmel_port 955 drivers/tty/serial/atmel_serial.c if (atmel_port->fifo_size) { atmel_port 986 drivers/tty/serial/atmel_serial.c atmel_port->tx_len = tx_len; atmel_port 1001 drivers/tty/serial/atmel_serial.c atmel_port->desc_tx = desc; atmel_port 1003 drivers/tty/serial/atmel_serial.c desc->callback_param = atmel_port; atmel_port 1004 drivers/tty/serial/atmel_serial.c atmel_port->cookie_tx = dmaengine_submit(desc); atmel_port 1013 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1022 drivers/tty/serial/atmel_serial.c atmel_port->chan_tx = dma_request_slave_channel(mfd_dev, "tx"); atmel_port 1023 drivers/tty/serial/atmel_serial.c if (atmel_port->chan_tx == NULL) atmel_port 1026 drivers/tty/serial/atmel_serial.c dma_chan_name(atmel_port->chan_tx)); atmel_port 1028 drivers/tty/serial/atmel_serial.c spin_lock_init(&atmel_port->lock_tx); atmel_port 1029 drivers/tty/serial/atmel_serial.c sg_init_table(&atmel_port->sg_tx, 1); atmel_port 1032 drivers/tty/serial/atmel_serial.c sg_set_page(&atmel_port->sg_tx, atmel_port 1037 drivers/tty/serial/atmel_serial.c &atmel_port->sg_tx, atmel_port 1046 drivers/tty/serial/atmel_serial.c sg_dma_len(&atmel_port->sg_tx), atmel_port 1048 drivers/tty/serial/atmel_serial.c &sg_dma_address(&atmel_port->sg_tx)); atmel_port 1054 drivers/tty/serial/atmel_serial.c config.dst_addr_width = (atmel_port->fifo_size) ? atmel_port 1060 drivers/tty/serial/atmel_serial.c ret = dmaengine_slave_config(atmel_port->chan_tx, atmel_port 1071 drivers/tty/serial/atmel_serial.c atmel_port->use_dma_tx = 0; atmel_port 1072 drivers/tty/serial/atmel_serial.c if (atmel_port->chan_tx) atmel_port 1080 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1082 drivers/tty/serial/atmel_serial.c atmel_tasklet_schedule(atmel_port, &atmel_port->tasklet_rx); atmel_port 1087 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1088 drivers/tty/serial/atmel_serial.c struct dma_chan *chan = atmel_port->chan_rx; atmel_port 1093 drivers/tty/serial/atmel_serial.c dma_unmap_sg(port->dev, &atmel_port->sg_rx, 1, atmel_port 1097 drivers/tty/serial/atmel_serial.c atmel_port->desc_rx = NULL; atmel_port 1098 drivers/tty/serial/atmel_serial.c atmel_port->chan_rx = NULL; atmel_port 1099 drivers/tty/serial/atmel_serial.c atmel_port->cookie_rx = -EINVAL; atmel_port 1104 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1106 drivers/tty/serial/atmel_serial.c struct circ_buf *ring = &atmel_port->rx_ring; atmel_port 1107 drivers/tty/serial/atmel_serial.c struct dma_chan *chan = atmel_port->chan_rx; atmel_port 1116 drivers/tty/serial/atmel_serial.c atmel_port->cookie_rx, atmel_port 1122 drivers/tty/serial/atmel_serial.c atmel_tasklet_schedule(atmel_port, &atmel_port->tasklet_rx); atmel_port 1128 drivers/tty/serial/atmel_serial.c &atmel_port->sg_rx, atmel_port 1139 drivers/tty/serial/atmel_serial.c ring->head = sg_dma_len(&atmel_port->sg_rx) - state.residue; atmel_port 1140 drivers/tty/serial/atmel_serial.c BUG_ON(ring->head > sg_dma_len(&atmel_port->sg_rx)); atmel_port 1154 drivers/tty/serial/atmel_serial.c count = sg_dma_len(&atmel_port->sg_rx) - ring->tail; atmel_port 1167 drivers/tty/serial/atmel_serial.c if (ring->head >= sg_dma_len(&atmel_port->sg_rx)) atmel_port 1175 drivers/tty/serial/atmel_serial.c &atmel_port->sg_rx, atmel_port 1192 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1200 drivers/tty/serial/atmel_serial.c ring = &atmel_port->rx_ring; atmel_port 1205 drivers/tty/serial/atmel_serial.c atmel_port->chan_rx = dma_request_slave_channel(mfd_dev, "rx"); atmel_port 1206 drivers/tty/serial/atmel_serial.c if (atmel_port->chan_rx == NULL) atmel_port 1209 drivers/tty/serial/atmel_serial.c dma_chan_name(atmel_port->chan_rx)); atmel_port 1211 drivers/tty/serial/atmel_serial.c spin_lock_init(&atmel_port->lock_rx); atmel_port 1212 drivers/tty/serial/atmel_serial.c sg_init_table(&atmel_port->sg_rx, 1); atmel_port 1215 drivers/tty/serial/atmel_serial.c sg_set_page(&atmel_port->sg_rx, atmel_port 1220 drivers/tty/serial/atmel_serial.c &atmel_port->sg_rx, atmel_port 1229 drivers/tty/serial/atmel_serial.c sg_dma_len(&atmel_port->sg_rx), atmel_port 1231 drivers/tty/serial/atmel_serial.c &sg_dma_address(&atmel_port->sg_rx)); atmel_port 1241 drivers/tty/serial/atmel_serial.c ret = dmaengine_slave_config(atmel_port->chan_rx, atmel_port 1251 drivers/tty/serial/atmel_serial.c desc = dmaengine_prep_dma_cyclic(atmel_port->chan_rx, atmel_port 1252 drivers/tty/serial/atmel_serial.c sg_dma_address(&atmel_port->sg_rx), atmel_port 1253 drivers/tty/serial/atmel_serial.c sg_dma_len(&atmel_port->sg_rx), atmel_port 1254 drivers/tty/serial/atmel_serial.c sg_dma_len(&atmel_port->sg_rx)/2, atmel_port 1263 drivers/tty/serial/atmel_serial.c atmel_port->desc_rx = desc; atmel_port 1264 drivers/tty/serial/atmel_serial.c atmel_port->cookie_rx = dmaengine_submit(desc); atmel_port 1270 drivers/tty/serial/atmel_serial.c atmel_port->use_dma_rx = 0; atmel_port 1271 drivers/tty/serial/atmel_serial.c if (atmel_port->chan_rx) atmel_port 1278 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = from_timer(atmel_port, t, atmel_port 1280 drivers/tty/serial/atmel_serial.c struct uart_port *port = &atmel_port->uart; atmel_port 1282 drivers/tty/serial/atmel_serial.c if (!atomic_read(&atmel_port->tasklet_shutdown)) { atmel_port 1283 drivers/tty/serial/atmel_serial.c tasklet_schedule(&atmel_port->tasklet_rx); atmel_port 1284 drivers/tty/serial/atmel_serial.c mod_timer(&atmel_port->uart_timer, atmel_port 1295 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1308 drivers/tty/serial/atmel_serial.c atmel_tasklet_schedule(atmel_port, atmel_port 1309 drivers/tty/serial/atmel_serial.c &atmel_port->tasklet_rx); atmel_port 1321 drivers/tty/serial/atmel_serial.c atmel_tasklet_schedule(atmel_port, atmel_port 1322 drivers/tty/serial/atmel_serial.c &atmel_port->tasklet_rx); atmel_port 1336 drivers/tty/serial/atmel_serial.c atmel_port->break_active = 0; atmel_port 1346 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1348 drivers/tty/serial/atmel_serial.c if (pending & atmel_port->tx_done_mask) { atmel_port 1350 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask); atmel_port 1353 drivers/tty/serial/atmel_serial.c if (atmel_port->hd_start_rx) { atmel_port 1358 drivers/tty/serial/atmel_serial.c atmel_port->hd_start_rx = false; atmel_port 1362 drivers/tty/serial/atmel_serial.c atmel_tasklet_schedule(atmel_port, &atmel_port->tasklet_tx); atmel_port 1373 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1378 drivers/tty/serial/atmel_serial.c status_change = status ^ atmel_port->irq_status_prev; atmel_port 1379 drivers/tty/serial/atmel_serial.c atmel_port->irq_status_prev = status; atmel_port 1407 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1410 drivers/tty/serial/atmel_serial.c spin_lock(&atmel_port->lock_suspended); atmel_port 1419 drivers/tty/serial/atmel_serial.c if (atmel_port->suspended) { atmel_port 1420 drivers/tty/serial/atmel_serial.c atmel_port->pending |= pending; atmel_port 1421 drivers/tty/serial/atmel_serial.c atmel_port->pending_status = status; atmel_port 1432 drivers/tty/serial/atmel_serial.c spin_unlock(&atmel_port->lock_suspended); atmel_port 1439 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1440 drivers/tty/serial/atmel_serial.c struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; atmel_port 1453 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1455 drivers/tty/serial/atmel_serial.c struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; atmel_port 1489 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask); atmel_port 1503 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1504 drivers/tty/serial/atmel_serial.c struct atmel_dma_buffer *pdc = &atmel_port->pdc_tx; atmel_port 1520 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1521 drivers/tty/serial/atmel_serial.c struct circ_buf *ring = &atmel_port->rx_ring; atmel_port 1588 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1592 drivers/tty/serial/atmel_serial.c struct atmel_dma_buffer *pdc = &atmel_port->pdc_rx[i]; atmel_port 1604 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1607 drivers/tty/serial/atmel_serial.c int rx_idx = atmel_port->pdc_rx_idx; atmel_port 1616 drivers/tty/serial/atmel_serial.c pdc = &atmel_port->pdc_rx[rx_idx]; atmel_port 1664 drivers/tty/serial/atmel_serial.c atmel_port->pdc_rx_idx = rx_idx; atmel_port 1682 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1686 drivers/tty/serial/atmel_serial.c struct atmel_dma_buffer *pdc = &atmel_port->pdc_rx[i]; atmel_port 1692 drivers/tty/serial/atmel_serial.c atmel_port->pdc_rx[0].dma_addr, atmel_port 1695 drivers/tty/serial/atmel_serial.c kfree(atmel_port->pdc_rx[0].buf); atmel_port 1697 drivers/tty/serial/atmel_serial.c atmel_port->use_pdc_rx = 0; atmel_port 1708 drivers/tty/serial/atmel_serial.c atmel_port->pdc_rx_idx = 0; atmel_port 1710 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_PDC_RPR, atmel_port->pdc_rx[0].dma_addr); atmel_port 1714 drivers/tty/serial/atmel_serial.c atmel_port->pdc_rx[1].dma_addr); atmel_port 1726 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1730 drivers/tty/serial/atmel_serial.c atmel_port->schedule_rx(port); atmel_port 1737 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1741 drivers/tty/serial/atmel_serial.c atmel_port->schedule_tx(port); atmel_port 1745 drivers/tty/serial/atmel_serial.c static void atmel_init_property(struct atmel_uart_port *atmel_port, atmel_port 1753 drivers/tty/serial/atmel_serial.c atmel_port->use_dma_rx = true; atmel_port 1754 drivers/tty/serial/atmel_serial.c atmel_port->use_pdc_rx = false; atmel_port 1756 drivers/tty/serial/atmel_serial.c atmel_port->use_dma_rx = false; atmel_port 1757 drivers/tty/serial/atmel_serial.c atmel_port->use_pdc_rx = true; atmel_port 1760 drivers/tty/serial/atmel_serial.c atmel_port->use_dma_rx = false; atmel_port 1761 drivers/tty/serial/atmel_serial.c atmel_port->use_pdc_rx = false; atmel_port 1766 drivers/tty/serial/atmel_serial.c atmel_port->use_dma_tx = true; atmel_port 1767 drivers/tty/serial/atmel_serial.c atmel_port->use_pdc_tx = false; atmel_port 1769 drivers/tty/serial/atmel_serial.c atmel_port->use_dma_tx = false; atmel_port 1770 drivers/tty/serial/atmel_serial.c atmel_port->use_pdc_tx = true; atmel_port 1773 drivers/tty/serial/atmel_serial.c atmel_port->use_dma_tx = false; atmel_port 1774 drivers/tty/serial/atmel_serial.c atmel_port->use_pdc_tx = false; atmel_port 1780 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1783 drivers/tty/serial/atmel_serial.c atmel_port->prepare_rx = &atmel_prepare_rx_dma; atmel_port 1784 drivers/tty/serial/atmel_serial.c atmel_port->schedule_rx = &atmel_rx_from_dma; atmel_port 1785 drivers/tty/serial/atmel_serial.c atmel_port->release_rx = &atmel_release_rx_dma; atmel_port 1787 drivers/tty/serial/atmel_serial.c atmel_port->prepare_rx = &atmel_prepare_rx_pdc; atmel_port 1788 drivers/tty/serial/atmel_serial.c atmel_port->schedule_rx = &atmel_rx_from_pdc; atmel_port 1789 drivers/tty/serial/atmel_serial.c atmel_port->release_rx = &atmel_release_rx_pdc; atmel_port 1791 drivers/tty/serial/atmel_serial.c atmel_port->prepare_rx = NULL; atmel_port 1792 drivers/tty/serial/atmel_serial.c atmel_port->schedule_rx = &atmel_rx_from_ring; atmel_port 1793 drivers/tty/serial/atmel_serial.c atmel_port->release_rx = NULL; atmel_port 1797 drivers/tty/serial/atmel_serial.c atmel_port->prepare_tx = &atmel_prepare_tx_dma; atmel_port 1798 drivers/tty/serial/atmel_serial.c atmel_port->schedule_tx = &atmel_tx_dma; atmel_port 1799 drivers/tty/serial/atmel_serial.c atmel_port->release_tx = &atmel_release_tx_dma; atmel_port 1801 drivers/tty/serial/atmel_serial.c atmel_port->prepare_tx = &atmel_prepare_tx_pdc; atmel_port 1802 drivers/tty/serial/atmel_serial.c atmel_port->schedule_tx = &atmel_tx_pdc; atmel_port 1803 drivers/tty/serial/atmel_serial.c atmel_port->release_tx = &atmel_release_tx_pdc; atmel_port 1805 drivers/tty/serial/atmel_serial.c atmel_port->prepare_tx = NULL; atmel_port 1806 drivers/tty/serial/atmel_serial.c atmel_port->schedule_tx = &atmel_tx_chars; atmel_port 1807 drivers/tty/serial/atmel_serial.c atmel_port->release_tx = NULL; atmel_port 1816 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1831 drivers/tty/serial/atmel_serial.c atmel_port->has_frac_baudrate = false; atmel_port 1832 drivers/tty/serial/atmel_serial.c atmel_port->has_hw_timer = false; atmel_port 1836 drivers/tty/serial/atmel_serial.c atmel_port->has_hw_timer = true; atmel_port 1837 drivers/tty/serial/atmel_serial.c atmel_port->rtor = ATMEL_UA_RTOR; atmel_port 1840 drivers/tty/serial/atmel_serial.c atmel_port->has_frac_baudrate = true; atmel_port 1841 drivers/tty/serial/atmel_serial.c atmel_port->has_hw_timer = true; atmel_port 1842 drivers/tty/serial/atmel_serial.c atmel_port->rtor = ATMEL_US_RTOR; atmel_port 1848 drivers/tty/serial/atmel_serial.c atmel_port->fidi_min = 3; atmel_port 1849 drivers/tty/serial/atmel_serial.c atmel_port->fidi_max = 65535; atmel_port 1852 drivers/tty/serial/atmel_serial.c atmel_port->fidi_min = 3; atmel_port 1853 drivers/tty/serial/atmel_serial.c atmel_port->fidi_max = 2047; atmel_port 1856 drivers/tty/serial/atmel_serial.c atmel_port->fidi_min = 1; atmel_port 1857 drivers/tty/serial/atmel_serial.c atmel_port->fidi_max = 2047; atmel_port 1869 drivers/tty/serial/atmel_serial.c atmel_port->has_frac_baudrate = true; atmel_port 1870 drivers/tty/serial/atmel_serial.c atmel_port->has_hw_timer = true; atmel_port 1871 drivers/tty/serial/atmel_serial.c atmel_port->rtor = ATMEL_US_RTOR; atmel_port 1889 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 1898 drivers/tty/serial/atmel_serial.c atmel_port->ms_irq_enabled = false; atmel_port 1911 drivers/tty/serial/atmel_serial.c atomic_set(&atmel_port->tasklet_shutdown, 0); atmel_port 1912 drivers/tty/serial/atmel_serial.c tasklet_init(&atmel_port->tasklet_rx, atmel_tasklet_rx_func, atmel_port 1914 drivers/tty/serial/atmel_serial.c tasklet_init(&atmel_port->tasklet_tx, atmel_tasklet_tx_func, atmel_port 1920 drivers/tty/serial/atmel_serial.c atmel_init_property(atmel_port, pdev); atmel_port 1923 drivers/tty/serial/atmel_serial.c if (atmel_port->prepare_rx) { atmel_port 1924 drivers/tty/serial/atmel_serial.c retval = atmel_port->prepare_rx(port); atmel_port 1929 drivers/tty/serial/atmel_serial.c if (atmel_port->prepare_tx) { atmel_port 1930 drivers/tty/serial/atmel_serial.c retval = atmel_port->prepare_tx(port); atmel_port 1938 drivers/tty/serial/atmel_serial.c if (atmel_port->fifo_size) { atmel_port 1952 drivers/tty/serial/atmel_serial.c if (atmel_port->rts_high && atmel_port 1953 drivers/tty/serial/atmel_serial.c atmel_port->rts_low) atmel_port 1955 drivers/tty/serial/atmel_serial.c ATMEL_US_RXFTHRES(atmel_port->rts_high) | atmel_port 1956 drivers/tty/serial/atmel_serial.c ATMEL_US_RXFTHRES2(atmel_port->rts_low); atmel_port 1962 drivers/tty/serial/atmel_serial.c atmel_port->irq_status_prev = atmel_uart_readl(port, ATMEL_US_CSR); atmel_port 1970 drivers/tty/serial/atmel_serial.c atmel_port->tx_stopped = false; atmel_port 1972 drivers/tty/serial/atmel_serial.c timer_setup(&atmel_port->uart_timer, atmel_uart_timer_callback, 0); atmel_port 1976 drivers/tty/serial/atmel_serial.c if (!atmel_port->has_hw_timer) { atmel_port 1977 drivers/tty/serial/atmel_serial.c mod_timer(&atmel_port->uart_timer, atmel_port 1981 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, atmel_port->rtor, atmel_port 1992 drivers/tty/serial/atmel_serial.c if (!atmel_port->has_hw_timer) { atmel_port 1993 drivers/tty/serial/atmel_serial.c mod_timer(&atmel_port->uart_timer, atmel_port 1997 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, atmel_port->rtor, atmel_port 2018 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 2022 drivers/tty/serial/atmel_serial.c atmel_port->pdc_tx.ofs = 0; atmel_port 2028 drivers/tty/serial/atmel_serial.c atmel_port->tx_len = 0; atmel_port 2036 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 2045 drivers/tty/serial/atmel_serial.c atomic_inc(&atmel_port->tasklet_shutdown); atmel_port 2051 drivers/tty/serial/atmel_serial.c del_timer_sync(&atmel_port->uart_timer); atmel_port 2060 drivers/tty/serial/atmel_serial.c tasklet_kill(&atmel_port->tasklet_rx); atmel_port 2061 drivers/tty/serial/atmel_serial.c tasklet_kill(&atmel_port->tasklet_tx); atmel_port 2075 drivers/tty/serial/atmel_serial.c if (atmel_port->release_rx) atmel_port 2076 drivers/tty/serial/atmel_serial.c atmel_port->release_rx(port); atmel_port 2077 drivers/tty/serial/atmel_serial.c if (atmel_port->release_tx) atmel_port 2078 drivers/tty/serial/atmel_serial.c atmel_port->release_tx(port); atmel_port 2083 drivers/tty/serial/atmel_serial.c atmel_port->rx_ring.head = 0; atmel_port 2084 drivers/tty/serial/atmel_serial.c atmel_port->rx_ring.tail = 0; atmel_port 2100 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 2108 drivers/tty/serial/atmel_serial.c clk_prepare_enable(atmel_port->clk); atmel_port 2111 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_IER, atmel_port->backup_imr); atmel_port 2115 drivers/tty/serial/atmel_serial.c atmel_port->backup_imr = atmel_uart_readl(port, ATMEL_US_IMR); atmel_port 2122 drivers/tty/serial/atmel_serial.c clk_disable_unprepare(atmel_port->clk); atmel_port 2135 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 2225 drivers/tty/serial/atmel_serial.c atmel_port->tx_stopped = true; atmel_port 2246 drivers/tty/serial/atmel_serial.c !mctrl_gpio_to_gpiod(atmel_port->gpios, UART_GPIO_CTS)) { atmel_port 2284 drivers/tty/serial/atmel_serial.c if (atmel_port->has_frac_baudrate) { atmel_port 2324 drivers/tty/serial/atmel_serial.c atmel_port->tx_stopped = false; atmel_port 2482 drivers/tty/serial/atmel_serial.c static int atmel_init_port(struct atmel_uart_port *atmel_port, atmel_port 2486 drivers/tty/serial/atmel_serial.c struct uart_port *port = &atmel_port->uart; atmel_port 2489 drivers/tty/serial/atmel_serial.c atmel_init_property(atmel_port, pdev); atmel_port 2505 drivers/tty/serial/atmel_serial.c memset(&atmel_port->rx_ring, 0, sizeof(atmel_port->rx_ring)); atmel_port 2508 drivers/tty/serial/atmel_serial.c if (!atmel_port->clk) { atmel_port 2509 drivers/tty/serial/atmel_serial.c atmel_port->clk = clk_get(&mpdev->dev, "usart"); atmel_port 2510 drivers/tty/serial/atmel_serial.c if (IS_ERR(atmel_port->clk)) { atmel_port 2511 drivers/tty/serial/atmel_serial.c ret = PTR_ERR(atmel_port->clk); atmel_port 2512 drivers/tty/serial/atmel_serial.c atmel_port->clk = NULL; atmel_port 2515 drivers/tty/serial/atmel_serial.c ret = clk_prepare_enable(atmel_port->clk); atmel_port 2517 drivers/tty/serial/atmel_serial.c clk_put(atmel_port->clk); atmel_port 2518 drivers/tty/serial/atmel_serial.c atmel_port->clk = NULL; atmel_port 2521 drivers/tty/serial/atmel_serial.c port->uartclk = clk_get_rate(atmel_port->clk); atmel_port 2522 drivers/tty/serial/atmel_serial.c clk_disable_unprepare(atmel_port->clk); atmel_port 2532 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask = ATMEL_US_TXEMPTY; atmel_port 2535 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask = ATMEL_US_ENDTX | ATMEL_US_TXBUFE; atmel_port 2537 drivers/tty/serial/atmel_serial.c atmel_port->tx_done_mask = ATMEL_US_TXRDY; atmel_port 2557 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 2566 drivers/tty/serial/atmel_serial.c ATMEL_US_RXRDY | atmel_port->tx_done_mask); atmel_port 2574 drivers/tty/serial/atmel_serial.c atmel_port->tx_stopped = false; atmel_port 2636 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 2654 drivers/tty/serial/atmel_serial.c atmel_port->tx_stopped = false; atmel_port 2716 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 2729 drivers/tty/serial/atmel_serial.c atmel_port->cache.mr = atmel_uart_readl(port, ATMEL_US_MR); atmel_port 2730 drivers/tty/serial/atmel_serial.c atmel_port->cache.imr = atmel_uart_readl(port, ATMEL_US_IMR); atmel_port 2731 drivers/tty/serial/atmel_serial.c atmel_port->cache.brgr = atmel_uart_readl(port, ATMEL_US_BRGR); atmel_port 2732 drivers/tty/serial/atmel_serial.c atmel_port->cache.rtor = atmel_uart_readl(port, atmel_port 2733 drivers/tty/serial/atmel_serial.c atmel_port->rtor); atmel_port 2734 drivers/tty/serial/atmel_serial.c atmel_port->cache.ttgr = atmel_uart_readl(port, ATMEL_US_TTGR); atmel_port 2735 drivers/tty/serial/atmel_serial.c atmel_port->cache.fmr = atmel_uart_readl(port, ATMEL_US_FMR); atmel_port 2736 drivers/tty/serial/atmel_serial.c atmel_port->cache.fimr = atmel_uart_readl(port, ATMEL_US_FIMR); atmel_port 2740 drivers/tty/serial/atmel_serial.c atmel_port->may_wakeup = device_may_wakeup(&pdev->dev); atmel_port 2744 drivers/tty/serial/atmel_serial.c spin_lock_irqsave(&atmel_port->lock_suspended, flags); atmel_port 2745 drivers/tty/serial/atmel_serial.c atmel_port->suspended = true; atmel_port 2746 drivers/tty/serial/atmel_serial.c spin_unlock_irqrestore(&atmel_port->lock_suspended, flags); atmel_port 2758 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 2762 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_MR, atmel_port->cache.mr); atmel_port 2763 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_IER, atmel_port->cache.imr); atmel_port 2764 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_BRGR, atmel_port->cache.brgr); atmel_port 2765 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, atmel_port->rtor, atmel_port 2766 drivers/tty/serial/atmel_serial.c atmel_port->cache.rtor); atmel_port 2767 drivers/tty/serial/atmel_serial.c atmel_uart_writel(port, ATMEL_US_TTGR, atmel_port->cache.ttgr); atmel_port 2769 drivers/tty/serial/atmel_serial.c if (atmel_port->fifo_size) { atmel_port 2773 drivers/tty/serial/atmel_serial.c atmel_port->cache.fmr); atmel_port 2775 drivers/tty/serial/atmel_serial.c atmel_port->cache.fimr); atmel_port 2780 drivers/tty/serial/atmel_serial.c spin_lock_irqsave(&atmel_port->lock_suspended, flags); atmel_port 2781 drivers/tty/serial/atmel_serial.c if (atmel_port->pending) { atmel_port 2782 drivers/tty/serial/atmel_serial.c atmel_handle_receive(port, atmel_port->pending); atmel_port 2783 drivers/tty/serial/atmel_serial.c atmel_handle_status(port, atmel_port->pending, atmel_port 2784 drivers/tty/serial/atmel_serial.c atmel_port->pending_status); atmel_port 2785 drivers/tty/serial/atmel_serial.c atmel_handle_transmit(port, atmel_port->pending); atmel_port 2786 drivers/tty/serial/atmel_serial.c atmel_port->pending = 0; atmel_port 2788 drivers/tty/serial/atmel_serial.c atmel_port->suspended = false; atmel_port 2789 drivers/tty/serial/atmel_serial.c spin_unlock_irqrestore(&atmel_port->lock_suspended, flags); atmel_port 2792 drivers/tty/serial/atmel_serial.c device_set_wakeup_enable(&pdev->dev, atmel_port->may_wakeup); atmel_port 2801 drivers/tty/serial/atmel_serial.c static void atmel_serial_probe_fifos(struct atmel_uart_port *atmel_port, atmel_port 2804 drivers/tty/serial/atmel_serial.c atmel_port->fifo_size = 0; atmel_port 2805 drivers/tty/serial/atmel_serial.c atmel_port->rts_low = 0; atmel_port 2806 drivers/tty/serial/atmel_serial.c atmel_port->rts_high = 0; atmel_port 2810 drivers/tty/serial/atmel_serial.c &atmel_port->fifo_size)) atmel_port 2813 drivers/tty/serial/atmel_serial.c if (!atmel_port->fifo_size) atmel_port 2816 drivers/tty/serial/atmel_serial.c if (atmel_port->fifo_size < ATMEL_MIN_FIFO_SIZE) { atmel_port 2817 drivers/tty/serial/atmel_serial.c atmel_port->fifo_size = 0; atmel_port 2830 drivers/tty/serial/atmel_serial.c atmel_port->rts_high = max_t(int, atmel_port->fifo_size >> 1, atmel_port 2831 drivers/tty/serial/atmel_serial.c atmel_port->fifo_size - ATMEL_RTS_HIGH_OFFSET); atmel_port 2832 drivers/tty/serial/atmel_serial.c atmel_port->rts_low = max_t(int, atmel_port->fifo_size >> 2, atmel_port 2833 drivers/tty/serial/atmel_serial.c atmel_port->fifo_size - ATMEL_RTS_LOW_OFFSET); atmel_port 2836 drivers/tty/serial/atmel_serial.c atmel_port->fifo_size); atmel_port 2838 drivers/tty/serial/atmel_serial.c atmel_port->rts_high); atmel_port 2840 drivers/tty/serial/atmel_serial.c atmel_port->rts_low); atmel_port 2845 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port; atmel_port 2879 drivers/tty/serial/atmel_serial.c atmel_port = &atmel_ports[ret]; atmel_port 2880 drivers/tty/serial/atmel_serial.c atmel_port->backup_imr = 0; atmel_port 2881 drivers/tty/serial/atmel_serial.c atmel_port->uart.line = ret; atmel_port 2882 drivers/tty/serial/atmel_serial.c atmel_serial_probe_fifos(atmel_port, pdev); atmel_port 2884 drivers/tty/serial/atmel_serial.c atomic_set(&atmel_port->tasklet_shutdown, 0); atmel_port 2885 drivers/tty/serial/atmel_serial.c spin_lock_init(&atmel_port->lock_suspended); atmel_port 2887 drivers/tty/serial/atmel_serial.c ret = atmel_init_port(atmel_port, pdev); atmel_port 2891 drivers/tty/serial/atmel_serial.c atmel_port->gpios = mctrl_gpio_init(&atmel_port->uart, 0); atmel_port 2892 drivers/tty/serial/atmel_serial.c if (IS_ERR(atmel_port->gpios)) { atmel_port 2893 drivers/tty/serial/atmel_serial.c ret = PTR_ERR(atmel_port->gpios); atmel_port 2897 drivers/tty/serial/atmel_serial.c if (!atmel_use_pdc_rx(&atmel_port->uart)) { atmel_port 2904 drivers/tty/serial/atmel_serial.c atmel_port->rx_ring.buf = data; atmel_port 2907 drivers/tty/serial/atmel_serial.c rs485_enabled = atmel_port->uart.rs485.flags & SER_RS485_ENABLED; atmel_port 2909 drivers/tty/serial/atmel_serial.c ret = uart_add_one_port(&atmel_uart, &atmel_port->uart); atmel_port 2914 drivers/tty/serial/atmel_serial.c if (atmel_is_console_port(&atmel_port->uart) atmel_port 2920 drivers/tty/serial/atmel_serial.c clk_disable_unprepare(atmel_port->clk); atmel_port 2925 drivers/tty/serial/atmel_serial.c platform_set_drvdata(pdev, atmel_port); atmel_port 2931 drivers/tty/serial/atmel_serial.c clk_prepare_enable(atmel_port->clk); atmel_port 2934 drivers/tty/serial/atmel_serial.c atmel_uart_writel(&atmel_port->uart, ATMEL_US_MR, atmel_port 2936 drivers/tty/serial/atmel_serial.c atmel_uart_writel(&atmel_port->uart, ATMEL_US_CR, atmel_port 2943 drivers/tty/serial/atmel_serial.c atmel_get_ip_name(&atmel_port->uart); atmel_port 2949 drivers/tty/serial/atmel_serial.c clk_disable_unprepare(atmel_port->clk); atmel_port 2954 drivers/tty/serial/atmel_serial.c kfree(atmel_port->rx_ring.buf); atmel_port 2955 drivers/tty/serial/atmel_serial.c atmel_port->rx_ring.buf = NULL; atmel_port 2957 drivers/tty/serial/atmel_serial.c if (!atmel_is_console_port(&atmel_port->uart)) { atmel_port 2958 drivers/tty/serial/atmel_serial.c clk_put(atmel_port->clk); atmel_port 2959 drivers/tty/serial/atmel_serial.c atmel_port->clk = NULL; atmel_port 2962 drivers/tty/serial/atmel_serial.c clear_bit(atmel_port->uart.line, atmel_ports_in_use); atmel_port 2979 drivers/tty/serial/atmel_serial.c struct atmel_uart_port *atmel_port = to_atmel_uart_port(port); atmel_port 2982 drivers/tty/serial/atmel_serial.c tasklet_kill(&atmel_port->tasklet_rx); atmel_port 2983 drivers/tty/serial/atmel_serial.c tasklet_kill(&atmel_port->tasklet_tx); atmel_port 2989 drivers/tty/serial/atmel_serial.c kfree(atmel_port->rx_ring.buf); atmel_port 2995 drivers/tty/serial/atmel_serial.c clk_put(atmel_port->clk); atmel_port 2996 drivers/tty/serial/atmel_serial.c atmel_port->clk = NULL;