max3100.c (9a87ffc99ec8eb8d35eed7c4f816d75f5cc9662e) max3100.c (fd2b55f86b8b25afc5b6e7dff53dddb3fd0dd211)
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 *
4 * Copyright (C) 2008 Christian Pellegrin <chripell@evolware.org>
5 *
6 * Notes: the MAX3100 doesn't provide an interrupt on CTS so we have
7 * to use polling for flow control. TX empty IRQ is unusable, since
8 * writing conf clears FIFO buffer and we cannot have this interrupt

--- 201 unchanged lines hidden (view full) ---

210 *rx = be16_to_cpu(erx);
211 s->tx_empty = (*rx & MAX3100_T) > 0;
212 dev_dbg(&s->spi->dev, "%04x - %04x\n", tx, *rx);
213 return 0;
214}
215
216static int max3100_handlerx(struct max3100_port *s, u16 rx)
217{
1// SPDX-License-Identifier: GPL-2.0+
2/*
3 *
4 * Copyright (C) 2008 Christian Pellegrin <chripell@evolware.org>
5 *
6 * Notes: the MAX3100 doesn't provide an interrupt on CTS so we have
7 * to use polling for flow control. TX empty IRQ is unusable, since
8 * writing conf clears FIFO buffer and we cannot have this interrupt

--- 201 unchanged lines hidden (view full) ---

210 *rx = be16_to_cpu(erx);
211 s->tx_empty = (*rx & MAX3100_T) > 0;
212 dev_dbg(&s->spi->dev, "%04x - %04x\n", tx, *rx);
213 return 0;
214}
215
216static int max3100_handlerx(struct max3100_port *s, u16 rx)
217{
218 unsigned int ch, flg, status = 0;
218 unsigned int status = 0;
219 int ret = 0, cts;
219 int ret = 0, cts;
220 u8 ch, flg;
220
221 if (rx & MAX3100_R && s->rx_enabled) {
222 dev_dbg(&s->spi->dev, "%s\n", __func__);
223 ch = rx & (s->parity & MAX3100_7BIT ? 0x7f : 0xff);
224 if (rx & MAX3100_RAFE) {
225 s->port.icount.frame++;
226 flg = TTY_FRAME;
227 status |= MAX3100_STATUS_FE;

--- 675 unchanged lines hidden ---
221
222 if (rx & MAX3100_R && s->rx_enabled) {
223 dev_dbg(&s->spi->dev, "%s\n", __func__);
224 ch = rx & (s->parity & MAX3100_7BIT ? 0x7f : 0xff);
225 if (rx & MAX3100_RAFE) {
226 s->port.icount.frame++;
227 flg = TTY_FRAME;
228 status |= MAX3100_STATUS_FE;

--- 675 unchanged lines hidden ---