aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char/vme_scc.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char/vme_scc.c')
-rw-r--r--drivers/char/vme_scc.c24
1 files changed, 13 insertions, 11 deletions
diff --git a/drivers/char/vme_scc.c b/drivers/char/vme_scc.c
index bfe5ea948f6a..e01317cb1a0e 100644
--- a/drivers/char/vme_scc.c
+++ b/drivers/char/vme_scc.c
@@ -81,10 +81,10 @@ static int scc_ioctl(struct tty_struct * tty, struct file * filp,
81 unsigned int cmd, unsigned long arg); 81 unsigned int cmd, unsigned long arg);
82static void scc_throttle(struct tty_struct *tty); 82static void scc_throttle(struct tty_struct *tty);
83static void scc_unthrottle(struct tty_struct *tty); 83static void scc_unthrottle(struct tty_struct *tty);
84static irqreturn_t scc_tx_int(int irq, void *data, struct pt_regs *fp); 84static irqreturn_t scc_tx_int(int irq, void *data);
85static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp); 85static irqreturn_t scc_rx_int(int irq, void *data);
86static irqreturn_t scc_stat_int(int irq, void *data, struct pt_regs *fp); 86static irqreturn_t scc_stat_int(int irq, void *data);
87static irqreturn_t scc_spcond_int(int irq, void *data, struct pt_regs *fp); 87static irqreturn_t scc_spcond_int(int irq, void *data);
88static void scc_setsignals(struct scc_port *port, int dtr, int rts); 88static void scc_setsignals(struct scc_port *port, int dtr, int rts);
89static void scc_break_ctl(struct tty_struct *tty, int break_state); 89static void scc_break_ctl(struct tty_struct *tty, int break_state);
90 90
@@ -113,7 +113,7 @@ static struct real_driver scc_real_driver = {
113}; 113};
114 114
115 115
116static struct tty_operations scc_ops = { 116static const struct tty_operations scc_ops = {
117 .open = scc_open, 117 .open = scc_open,
118 .close = gs_close, 118 .close = gs_close,
119 .write = gs_write, 119 .write = gs_write,
@@ -153,6 +153,8 @@ static int scc_init_drivers(void)
153 scc_driver->init_termios = tty_std_termios; 153 scc_driver->init_termios = tty_std_termios;
154 scc_driver->init_termios.c_cflag = 154 scc_driver->init_termios.c_cflag =
155 B9600 | CS8 | CREAD | HUPCL | CLOCAL; 155 B9600 | CS8 | CREAD | HUPCL | CLOCAL;
156 scc_driver->init_termios.c_ispeed = 9600;
157 scc_driver->init_termios.c_ospeed = 9600;
156 scc_driver->flags = TTY_DRIVER_REAL_RAW; 158 scc_driver->flags = TTY_DRIVER_REAL_RAW;
157 tty_set_operations(scc_driver, &scc_ops); 159 tty_set_operations(scc_driver, &scc_ops);
158 160
@@ -419,7 +421,7 @@ module_init(vme_scc_init);
419 * Interrupt handlers 421 * Interrupt handlers
420 *--------------------------------------------------------------------------*/ 422 *--------------------------------------------------------------------------*/
421 423
422static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp) 424static irqreturn_t scc_rx_int(int irq, void *data)
423{ 425{
424 unsigned char ch; 426 unsigned char ch;
425 struct scc_port *port = data; 427 struct scc_port *port = data;
@@ -440,7 +442,7 @@ static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp)
440 */ 442 */
441 if (SCCread(INT_PENDING_REG) & 443 if (SCCread(INT_PENDING_REG) &
442 (port->channel == CHANNEL_A ? IPR_A_RX : IPR_B_RX)) { 444 (port->channel == CHANNEL_A ? IPR_A_RX : IPR_B_RX)) {
443 scc_spcond_int (irq, data, fp); 445 scc_spcond_int (irq, data);
444 return IRQ_HANDLED; 446 return IRQ_HANDLED;
445 } 447 }
446 448
@@ -451,7 +453,7 @@ static irqreturn_t scc_rx_int(int irq, void *data, struct pt_regs *fp)
451} 453}
452 454
453 455
454static irqreturn_t scc_spcond_int(int irq, void *data, struct pt_regs *fp) 456static irqreturn_t scc_spcond_int(int irq, void *data)
455{ 457{
456 struct scc_port *port = data; 458 struct scc_port *port = data;
457 struct tty_struct *tty = port->gs.tty; 459 struct tty_struct *tty = port->gs.tty;
@@ -496,7 +498,7 @@ static irqreturn_t scc_spcond_int(int irq, void *data, struct pt_regs *fp)
496} 498}
497 499
498 500
499static irqreturn_t scc_tx_int(int irq, void *data, struct pt_regs *fp) 501static irqreturn_t scc_tx_int(int irq, void *data)
500{ 502{
501 struct scc_port *port = data; 503 struct scc_port *port = data;
502 SCC_ACCESS_INIT(port); 504 SCC_ACCESS_INIT(port);
@@ -538,7 +540,7 @@ static irqreturn_t scc_tx_int(int irq, void *data, struct pt_regs *fp)
538} 540}
539 541
540 542
541static irqreturn_t scc_stat_int(int irq, void *data, struct pt_regs *fp) 543static irqreturn_t scc_stat_int(int irq, void *data)
542{ 544{
543 struct scc_port *port = data; 545 struct scc_port *port = data;
544 unsigned channel = port->channel; 546 unsigned channel = port->channel;
@@ -593,7 +595,7 @@ static void scc_enable_tx_interrupts(void *ptr)
593 local_irq_save(flags); 595 local_irq_save(flags);
594 SCCmod(INT_AND_DMA_REG, 0xff, IDR_TX_INT_ENAB); 596 SCCmod(INT_AND_DMA_REG, 0xff, IDR_TX_INT_ENAB);
595 /* restart the transmitter */ 597 /* restart the transmitter */
596 scc_tx_int (0, port, 0); 598 scc_tx_int (0, port);
597 local_irq_restore(flags); 599 local_irq_restore(flags);
598} 600}
599 601