diff options
Diffstat (limited to 'drivers/tty/cyclades.c')
-rw-r--r-- | drivers/tty/cyclades.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/drivers/tty/cyclades.c b/drivers/tty/cyclades.c index dac8a1a8e4ac..5d442469c95e 100644 --- a/drivers/tty/cyclades.c +++ b/drivers/tty/cyclades.c @@ -1,3 +1,4 @@ +// SPDX-License-Identifier: GPL-2.0 #undef BLOCKMOVE #define Z_WAKE #undef Z_EXT_CHARS_IN_BUFFER @@ -286,8 +287,7 @@ static long cyz_polling_cycle = CZ_DEF_POLL; static DEFINE_TIMER(cyz_timerlist, cyz_poll); #else /* CONFIG_CYZ_INTR */ -static void cyz_rx_restart(unsigned long); -static struct timer_list cyz_rx_full_timer[NR_PORTS]; +static void cyz_rx_restart(struct timer_list *); #endif /* CONFIG_CYZ_INTR */ static void cyy_writeb(struct cyclades_port *port, u32 reg, u8 val) @@ -992,10 +992,8 @@ static void cyz_handle_rx(struct cyclades_port *info) else char_count = rx_put - rx_get + rx_bufsize; if (char_count >= readl(&buf_ctrl->rx_threshold) && - !timer_pending(&cyz_rx_full_timer[ - info->line])) - mod_timer(&cyz_rx_full_timer[info->line], - jiffies + 1); + !timer_pending(&info->rx_full_timer)) + mod_timer(&info->rx_full_timer, jiffies + 1); #endif info->idle_stats.recv_idle = jiffies; tty_schedule_flip(&info->port); @@ -1197,9 +1195,9 @@ static irqreturn_t cyz_interrupt(int irq, void *dev_id) return IRQ_HANDLED; } /* cyz_interrupt */ -static void cyz_rx_restart(unsigned long arg) +static void cyz_rx_restart(struct timer_list *t) { - struct cyclades_port *info = (struct cyclades_port *)arg; + struct cyclades_port *info = from_timer(info, t, rx_full_timer); struct cyclades_card *card = info->card; int retval; __u32 channel = info->line - card->first_line; @@ -3097,8 +3095,7 @@ static int cy_init_card(struct cyclades_card *cinfo) else info->xmit_fifo_size = 4 * CYZ_FIFO_SIZE; #ifdef CONFIG_CYZ_INTR - setup_timer(&cyz_rx_full_timer[port], - cyz_rx_restart, (unsigned long)info); + timer_setup(&info->rx_full_timer, cyz_rx_restart, 0); #endif } else { unsigned short chip_number; |