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 --- |