diff options
Diffstat (limited to 'drivers/tty/serial/samsung.c')
-rw-r--r-- | drivers/tty/serial/samsung.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/tty/serial/samsung.c b/drivers/tty/serial/samsung.c index 2769a38d15b6..b386fc8a5eec 100644 --- a/drivers/tty/serial/samsung.c +++ b/drivers/tty/serial/samsung.c | |||
@@ -446,6 +446,8 @@ static void s3c24xx_serial_shutdown(struct uart_port *port) | |||
446 | 446 | ||
447 | /* Clear pending interrupts and mask all interrupts */ | 447 | /* Clear pending interrupts and mask all interrupts */ |
448 | if (s3c24xx_serial_has_interrupt_mask(port)) { | 448 | if (s3c24xx_serial_has_interrupt_mask(port)) { |
449 | free_irq(port->irq, ourport); | ||
450 | |||
449 | wr_regl(port, S3C64XX_UINTP, 0xf); | 451 | wr_regl(port, S3C64XX_UINTP, 0xf); |
450 | wr_regl(port, S3C64XX_UINTM, 0xf); | 452 | wr_regl(port, S3C64XX_UINTM, 0xf); |
451 | } | 453 | } |
@@ -505,6 +507,8 @@ static int s3c64xx_serial_startup(struct uart_port *port) | |||
505 | dbg("s3c64xx_serial_startup: port=%p (%08lx,%p)\n", | 507 | dbg("s3c64xx_serial_startup: port=%p (%08lx,%p)\n", |
506 | port->mapbase, port->membase); | 508 | port->mapbase, port->membase); |
507 | 509 | ||
510 | wr_regl(port, S3C64XX_UINTM, 0xf); | ||
511 | |||
508 | ret = request_irq(port->irq, s3c64xx_serial_handle_irq, IRQF_SHARED, | 512 | ret = request_irq(port->irq, s3c64xx_serial_handle_irq, IRQF_SHARED, |
509 | s3c24xx_serial_portname(port), ourport); | 513 | s3c24xx_serial_portname(port), ourport); |
510 | if (ret) { | 514 | if (ret) { |