diff options
Diffstat (limited to 'drivers/tty/serial/crisv10.c')
-rw-r--r-- | drivers/tty/serial/crisv10.c | 44 |
1 files changed, 19 insertions, 25 deletions
diff --git a/drivers/tty/serial/crisv10.c b/drivers/tty/serial/crisv10.c index 225123b37f19..1dfba7b779c8 100644 --- a/drivers/tty/serial/crisv10.c +++ b/drivers/tty/serial/crisv10.c | |||
@@ -258,7 +258,7 @@ static struct e100_serial rs_table[] = { | |||
258 | .dma_out_enabled = 1, | 258 | .dma_out_enabled = 1, |
259 | .dma_out_nbr = SER0_TX_DMA_NBR, | 259 | .dma_out_nbr = SER0_TX_DMA_NBR, |
260 | .dma_out_irq_nbr = SER0_DMA_TX_IRQ_NBR, | 260 | .dma_out_irq_nbr = SER0_DMA_TX_IRQ_NBR, |
261 | .dma_out_irq_flags = IRQF_DISABLED, | 261 | .dma_out_irq_flags = 0, |
262 | .dma_out_irq_description = "serial 0 dma tr", | 262 | .dma_out_irq_description = "serial 0 dma tr", |
263 | #else | 263 | #else |
264 | .dma_out_enabled = 0, | 264 | .dma_out_enabled = 0, |
@@ -271,7 +271,7 @@ static struct e100_serial rs_table[] = { | |||
271 | .dma_in_enabled = 1, | 271 | .dma_in_enabled = 1, |
272 | .dma_in_nbr = SER0_RX_DMA_NBR, | 272 | .dma_in_nbr = SER0_RX_DMA_NBR, |
273 | .dma_in_irq_nbr = SER0_DMA_RX_IRQ_NBR, | 273 | .dma_in_irq_nbr = SER0_DMA_RX_IRQ_NBR, |
274 | .dma_in_irq_flags = IRQF_DISABLED, | 274 | .dma_in_irq_flags = 0, |
275 | .dma_in_irq_description = "serial 0 dma rec", | 275 | .dma_in_irq_description = "serial 0 dma rec", |
276 | #else | 276 | #else |
277 | .dma_in_enabled = 0, | 277 | .dma_in_enabled = 0, |
@@ -313,7 +313,7 @@ static struct e100_serial rs_table[] = { | |||
313 | .dma_out_enabled = 1, | 313 | .dma_out_enabled = 1, |
314 | .dma_out_nbr = SER1_TX_DMA_NBR, | 314 | .dma_out_nbr = SER1_TX_DMA_NBR, |
315 | .dma_out_irq_nbr = SER1_DMA_TX_IRQ_NBR, | 315 | .dma_out_irq_nbr = SER1_DMA_TX_IRQ_NBR, |
316 | .dma_out_irq_flags = IRQF_DISABLED, | 316 | .dma_out_irq_flags = 0, |
317 | .dma_out_irq_description = "serial 1 dma tr", | 317 | .dma_out_irq_description = "serial 1 dma tr", |
318 | #else | 318 | #else |
319 | .dma_out_enabled = 0, | 319 | .dma_out_enabled = 0, |
@@ -326,7 +326,7 @@ static struct e100_serial rs_table[] = { | |||
326 | .dma_in_enabled = 1, | 326 | .dma_in_enabled = 1, |
327 | .dma_in_nbr = SER1_RX_DMA_NBR, | 327 | .dma_in_nbr = SER1_RX_DMA_NBR, |
328 | .dma_in_irq_nbr = SER1_DMA_RX_IRQ_NBR, | 328 | .dma_in_irq_nbr = SER1_DMA_RX_IRQ_NBR, |
329 | .dma_in_irq_flags = IRQF_DISABLED, | 329 | .dma_in_irq_flags = 0, |
330 | .dma_in_irq_description = "serial 1 dma rec", | 330 | .dma_in_irq_description = "serial 1 dma rec", |
331 | #else | 331 | #else |
332 | .dma_in_enabled = 0, | 332 | .dma_in_enabled = 0, |
@@ -369,7 +369,7 @@ static struct e100_serial rs_table[] = { | |||
369 | .dma_out_enabled = 1, | 369 | .dma_out_enabled = 1, |
370 | .dma_out_nbr = SER2_TX_DMA_NBR, | 370 | .dma_out_nbr = SER2_TX_DMA_NBR, |
371 | .dma_out_irq_nbr = SER2_DMA_TX_IRQ_NBR, | 371 | .dma_out_irq_nbr = SER2_DMA_TX_IRQ_NBR, |
372 | .dma_out_irq_flags = IRQF_DISABLED, | 372 | .dma_out_irq_flags = 0, |
373 | .dma_out_irq_description = "serial 2 dma tr", | 373 | .dma_out_irq_description = "serial 2 dma tr", |
374 | #else | 374 | #else |
375 | .dma_out_enabled = 0, | 375 | .dma_out_enabled = 0, |
@@ -382,7 +382,7 @@ static struct e100_serial rs_table[] = { | |||
382 | .dma_in_enabled = 1, | 382 | .dma_in_enabled = 1, |
383 | .dma_in_nbr = SER2_RX_DMA_NBR, | 383 | .dma_in_nbr = SER2_RX_DMA_NBR, |
384 | .dma_in_irq_nbr = SER2_DMA_RX_IRQ_NBR, | 384 | .dma_in_irq_nbr = SER2_DMA_RX_IRQ_NBR, |
385 | .dma_in_irq_flags = IRQF_DISABLED, | 385 | .dma_in_irq_flags = 0, |
386 | .dma_in_irq_description = "serial 2 dma rec", | 386 | .dma_in_irq_description = "serial 2 dma rec", |
387 | #else | 387 | #else |
388 | .dma_in_enabled = 0, | 388 | .dma_in_enabled = 0, |
@@ -423,7 +423,7 @@ static struct e100_serial rs_table[] = { | |||
423 | .dma_out_enabled = 1, | 423 | .dma_out_enabled = 1, |
424 | .dma_out_nbr = SER3_TX_DMA_NBR, | 424 | .dma_out_nbr = SER3_TX_DMA_NBR, |
425 | .dma_out_irq_nbr = SER3_DMA_TX_IRQ_NBR, | 425 | .dma_out_irq_nbr = SER3_DMA_TX_IRQ_NBR, |
426 | .dma_out_irq_flags = IRQF_DISABLED, | 426 | .dma_out_irq_flags = 0, |
427 | .dma_out_irq_description = "serial 3 dma tr", | 427 | .dma_out_irq_description = "serial 3 dma tr", |
428 | #else | 428 | #else |
429 | .dma_out_enabled = 0, | 429 | .dma_out_enabled = 0, |
@@ -436,7 +436,7 @@ static struct e100_serial rs_table[] = { | |||
436 | .dma_in_enabled = 1, | 436 | .dma_in_enabled = 1, |
437 | .dma_in_nbr = SER3_RX_DMA_NBR, | 437 | .dma_in_nbr = SER3_RX_DMA_NBR, |
438 | .dma_in_irq_nbr = SER3_DMA_RX_IRQ_NBR, | 438 | .dma_in_irq_nbr = SER3_DMA_RX_IRQ_NBR, |
439 | .dma_in_irq_flags = IRQF_DISABLED, | 439 | .dma_in_irq_flags = 0, |
440 | .dma_in_irq_description = "serial 3 dma rec", | 440 | .dma_in_irq_description = "serial 3 dma rec", |
441 | #else | 441 | #else |
442 | .dma_in_enabled = 0, | 442 | .dma_in_enabled = 0, |
@@ -1788,7 +1788,7 @@ static unsigned int handle_descr_data(struct e100_serial *info, | |||
1788 | struct etrax_recv_buffer *buffer = phys_to_virt(descr->buf) - sizeof *buffer; | 1788 | struct etrax_recv_buffer *buffer = phys_to_virt(descr->buf) - sizeof *buffer; |
1789 | 1789 | ||
1790 | if (info->recv_cnt + recvl > 65536) { | 1790 | if (info->recv_cnt + recvl > 65536) { |
1791 | printk(KERN_CRIT | 1791 | printk(KERN_WARNING |
1792 | "%s: Too much pending incoming serial data! Dropping %u bytes.\n", __func__, recvl); | 1792 | "%s: Too much pending incoming serial data! Dropping %u bytes.\n", __func__, recvl); |
1793 | return 0; | 1793 | return 0; |
1794 | } | 1794 | } |
@@ -3234,9 +3234,8 @@ rs_write(struct tty_struct *tty, | |||
3234 | e100_disable_rx(info); | 3234 | e100_disable_rx(info); |
3235 | e100_enable_rx_irq(info); | 3235 | e100_enable_rx_irq(info); |
3236 | #endif | 3236 | #endif |
3237 | if ((info->rs485.flags & SER_RS485_RTS_BEFORE_SEND) && | 3237 | if (info->rs485.delay_rts_before_send > 0) |
3238 | (info->rs485.delay_rts_before_send > 0)) | 3238 | msleep(info->rs485.delay_rts_before_send); |
3239 | msleep(info->rs485.delay_rts_before_send); | ||
3240 | } | 3239 | } |
3241 | #endif /* CONFIG_ETRAX_RS485 */ | 3240 | #endif /* CONFIG_ETRAX_RS485 */ |
3242 | 3241 | ||
@@ -3693,10 +3692,6 @@ rs_ioctl(struct tty_struct *tty, | |||
3693 | 3692 | ||
3694 | rs485data.delay_rts_before_send = rs485ctrl.delay_rts_before_send; | 3693 | rs485data.delay_rts_before_send = rs485ctrl.delay_rts_before_send; |
3695 | rs485data.flags = 0; | 3694 | rs485data.flags = 0; |
3696 | if (rs485data.delay_rts_before_send != 0) | ||
3697 | rs485data.flags |= SER_RS485_RTS_BEFORE_SEND; | ||
3698 | else | ||
3699 | rs485data.flags &= ~(SER_RS485_RTS_BEFORE_SEND); | ||
3700 | 3695 | ||
3701 | if (rs485ctrl.enabled) | 3696 | if (rs485ctrl.enabled) |
3702 | rs485data.flags |= SER_RS485_ENABLED; | 3697 | rs485data.flags |= SER_RS485_ENABLED; |
@@ -3813,13 +3808,13 @@ rs_close(struct tty_struct *tty, struct file * filp) | |||
3813 | * one, we've got real problems, since it means the | 3808 | * one, we've got real problems, since it means the |
3814 | * serial port won't be shutdown. | 3809 | * serial port won't be shutdown. |
3815 | */ | 3810 | */ |
3816 | printk(KERN_CRIT | 3811 | printk(KERN_ERR |
3817 | "rs_close: bad serial port count; tty->count is 1, " | 3812 | "rs_close: bad serial port count; tty->count is 1, " |
3818 | "info->count is %d\n", info->count); | 3813 | "info->count is %d\n", info->count); |
3819 | info->count = 1; | 3814 | info->count = 1; |
3820 | } | 3815 | } |
3821 | if (--info->count < 0) { | 3816 | if (--info->count < 0) { |
3822 | printk(KERN_CRIT "rs_close: bad serial port count for ttyS%d: %d\n", | 3817 | printk(KERN_ERR "rs_close: bad serial port count for ttyS%d: %d\n", |
3823 | info->line, info->count); | 3818 | info->line, info->count); |
3824 | info->count = 0; | 3819 | info->count = 0; |
3825 | } | 3820 | } |
@@ -4450,18 +4445,18 @@ static int __init rs_init(void) | |||
4450 | 4445 | ||
4451 | #if defined(CONFIG_ETRAX_RS485) | 4446 | #if defined(CONFIG_ETRAX_RS485) |
4452 | #if defined(CONFIG_ETRAX_RS485_ON_PA) | 4447 | #if defined(CONFIG_ETRAX_RS485_ON_PA) |
4453 | if (cris_io_interface_allocate_pins(if_ser0, 'a', rs485_pa_bit, | 4448 | if (cris_io_interface_allocate_pins(if_serial_0, 'a', rs485_pa_bit, |
4454 | rs485_pa_bit)) { | 4449 | rs485_pa_bit)) { |
4455 | printk(KERN_CRIT "ETRAX100LX serial: Could not allocate " | 4450 | printk(KERN_ERR "ETRAX100LX serial: Could not allocate " |
4456 | "RS485 pin\n"); | 4451 | "RS485 pin\n"); |
4457 | put_tty_driver(driver); | 4452 | put_tty_driver(driver); |
4458 | return -EBUSY; | 4453 | return -EBUSY; |
4459 | } | 4454 | } |
4460 | #endif | 4455 | #endif |
4461 | #if defined(CONFIG_ETRAX_RS485_ON_PORT_G) | 4456 | #if defined(CONFIG_ETRAX_RS485_ON_PORT_G) |
4462 | if (cris_io_interface_allocate_pins(if_ser0, 'g', rs485_pa_bit, | 4457 | if (cris_io_interface_allocate_pins(if_serial_0, 'g', rs485_pa_bit, |
4463 | rs485_port_g_bit)) { | 4458 | rs485_port_g_bit)) { |
4464 | printk(KERN_CRIT "ETRAX100LX serial: Could not allocate " | 4459 | printk(KERN_ERR "ETRAX100LX serial: Could not allocate " |
4465 | "RS485 pin\n"); | 4460 | "RS485 pin\n"); |
4466 | put_tty_driver(driver); | 4461 | put_tty_driver(driver); |
4467 | return -EBUSY; | 4462 | return -EBUSY; |
@@ -4494,7 +4489,7 @@ static int __init rs_init(void) | |||
4494 | if (info->enabled) { | 4489 | if (info->enabled) { |
4495 | if (cris_request_io_interface(info->io_if, | 4490 | if (cris_request_io_interface(info->io_if, |
4496 | info->io_if_description)) { | 4491 | info->io_if_description)) { |
4497 | printk(KERN_CRIT "ETRAX100LX async serial: " | 4492 | printk(KERN_ERR "ETRAX100LX async serial: " |
4498 | "Could not allocate IO pins for " | 4493 | "Could not allocate IO pins for " |
4499 | "%s, port %d\n", | 4494 | "%s, port %d\n", |
4500 | info->io_if_description, i); | 4495 | info->io_if_description, i); |
@@ -4531,7 +4526,6 @@ static int __init rs_init(void) | |||
4531 | /* Set sane defaults */ | 4526 | /* Set sane defaults */ |
4532 | info->rs485.flags &= ~(SER_RS485_RTS_ON_SEND); | 4527 | info->rs485.flags &= ~(SER_RS485_RTS_ON_SEND); |
4533 | info->rs485.flags |= SER_RS485_RTS_AFTER_SEND; | 4528 | info->rs485.flags |= SER_RS485_RTS_AFTER_SEND; |
4534 | info->rs485.flags &= ~(SER_RS485_RTS_BEFORE_SEND); | ||
4535 | info->rs485.delay_rts_before_send = 0; | 4529 | info->rs485.delay_rts_before_send = 0; |
4536 | info->rs485.flags &= ~(SER_RS485_ENABLED); | 4530 | info->rs485.flags &= ~(SER_RS485_ENABLED); |
4537 | #endif | 4531 | #endif |
@@ -4558,7 +4552,7 @@ static int __init rs_init(void) | |||
4558 | /* hook the irq's for DMA channel 6 and 7, serial output and input, and some more... */ | 4552 | /* hook the irq's for DMA channel 6 and 7, serial output and input, and some more... */ |
4559 | 4553 | ||
4560 | if (request_irq(SERIAL_IRQ_NBR, ser_interrupt, | 4554 | if (request_irq(SERIAL_IRQ_NBR, ser_interrupt, |
4561 | IRQF_SHARED | IRQF_DISABLED, "serial ", driver)) | 4555 | IRQF_SHARED, "serial ", driver)) |
4562 | panic("%s: Failed to request irq8", __func__); | 4556 | panic("%s: Failed to request irq8", __func__); |
4563 | 4557 | ||
4564 | #endif | 4558 | #endif |