| .. | .. |
|---|
| 1 | +// SPDX-License-Identifier: GPL-2.0 |
|---|
| 1 | 2 | /* |
|---|
| 2 | 3 | * Copyright (C) 2001 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) |
|---|
| 3 | | - * Licensed under the GPL |
|---|
| 4 | 4 | */ |
|---|
| 5 | 5 | |
|---|
| 6 | 6 | #include <linux/irqreturn.h> |
|---|
| .. | .. |
|---|
| 184 | 184 | line_flush_buffer(tty); |
|---|
| 185 | 185 | } |
|---|
| 186 | 186 | |
|---|
| 187 | | -int line_put_char(struct tty_struct *tty, unsigned char ch) |
|---|
| 188 | | -{ |
|---|
| 189 | | - return line_write(tty, &ch, sizeof(ch)); |
|---|
| 190 | | -} |
|---|
| 191 | | - |
|---|
| 192 | 187 | int line_write(struct tty_struct *tty, const unsigned char *buf, int len) |
|---|
| 193 | 188 | { |
|---|
| 194 | 189 | struct line *line = tty->driver_data; |
|---|
| .. | .. |
|---|
| 235 | 230 | |
|---|
| 236 | 231 | line->throttled = 0; |
|---|
| 237 | 232 | chan_interrupt(line, line->driver->read_irq); |
|---|
| 238 | | - |
|---|
| 239 | | - /* |
|---|
| 240 | | - * Maybe there is enough stuff pending that calling the interrupt |
|---|
| 241 | | - * throttles us again. In this case, line->throttled will be 1 |
|---|
| 242 | | - * again and we shouldn't turn the interrupt back on. |
|---|
| 243 | | - */ |
|---|
| 244 | | - if (!line->throttled) |
|---|
| 245 | | - reactivate_chan(line->chan_in, line->driver->read_irq); |
|---|
| 246 | 233 | } |
|---|
| 247 | 234 | |
|---|
| 248 | 235 | static irqreturn_t line_write_interrupt(int irq, void *data) |
|---|
| .. | .. |
|---|
| 667 | 654 | tty_kref_put(tty); |
|---|
| 668 | 655 | } |
|---|
| 669 | 656 | out: |
|---|
| 670 | | - if (winch->fd != -1) |
|---|
| 671 | | - reactivate_fd(winch->fd, WINCH_IRQ); |
|---|
| 672 | 657 | return IRQ_HANDLED; |
|---|
| 673 | 658 | } |
|---|
| 674 | 659 | |
|---|