]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/serial/bfin_5xx.c
include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit...
[net-next-2.6.git] / drivers / serial / bfin_5xx.c
index 50abb7e557f4dd23e1eb081508b7fef984ca3f60..96f7e7484feebf4269c631862f9a01b227eac0f6 100644 (file)
@@ -14,6 +14,8 @@
 
 #include <linux/module.h>
 #include <linux/ioport.h>
+#include <linux/gfp.h>
+#include <linux/io.h>
 #include <linux/init.h>
 #include <linux/console.h>
 #include <linux/sysrq.h>
@@ -237,7 +239,8 @@ static void bfin_serial_rx_chars(struct bfin_serial_port *uart)
 
 #if defined(CONFIG_KGDB_SERIAL_CONSOLE) || \
        defined(CONFIG_KGDB_SERIAL_CONSOLE_MODULE)
-       if (kgdb_connected && kgdboc_port_line == uart->port.line)
+       if (kgdb_connected && kgdboc_port_line == uart->port.line
+               && kgdboc_break_enabled)
                if (ch == 0x3) {/* Ctrl + C */
                        kgdb_breakpoint();
                        return;
@@ -488,6 +491,7 @@ void bfin_serial_rx_dma_timeout(struct bfin_serial_port *uart)
 {
        int x_pos, pos;
 
+       dma_disable_irq(uart->tx_dma_channel);
        dma_disable_irq(uart->rx_dma_channel);
        spin_lock_bh(&uart->port.lock);
 
@@ -521,6 +525,7 @@ void bfin_serial_rx_dma_timeout(struct bfin_serial_port *uart)
        }
 
        spin_unlock_bh(&uart->port.lock);
+       dma_enable_irq(uart->tx_dma_channel);
        dma_enable_irq(uart->rx_dma_channel);
 
        mod_timer(&(uart->rx_dma_timer), jiffies + DMA_RX_FLUSH_JIFFIES);
@@ -746,15 +751,6 @@ static int bfin_serial_startup(struct uart_port *port)
                        Status interrupt.\n");
        }
 
-       if (uart->cts_pin >= 0) {
-               gpio_request(uart->cts_pin, DRIVER_NAME);
-               gpio_direction_output(uart->cts_pin, 1);
-       }
-       if (uart->rts_pin >= 0) {
-               gpio_request(uart->rts_pin, DRIVER_NAME);
-               gpio_direction_output(uart->rts_pin, 0);
-       }
-
        /* CTS RTS PINs are negative assertive. */
        UART_PUT_MCR(uart, ACTS);
        UART_SET_IER(uart, EDSSI);
@@ -801,10 +797,6 @@ static void bfin_serial_shutdown(struct uart_port *port)
                gpio_free(uart->rts_pin);
 #endif
 #ifdef CONFIG_SERIAL_BFIN_HARD_CTSRTS
-       if (uart->cts_pin >= 0)
-               gpio_free(uart->cts_pin);
-       if (uart->rts_pin >= 0)
-               gpio_free(uart->rts_pin);
        if (UART_GET_IER(uart) && EDSSI)
                free_irq(uart->status_irq, uart);
 #endif
@@ -1409,8 +1401,7 @@ static int bfin_serial_remove(struct platform_device *dev)
                        continue;
                uart_remove_one_port(&bfin_serial_reg, &bfin_serial_ports[i].port);
                bfin_serial_ports[i].port.dev = NULL;
-#if defined(CONFIG_SERIAL_BFIN_CTSRTS) || \
-       defined(CONFIG_SERIAL_BFIN_HARD_CTSRTS)
+#if defined(CONFIG_SERIAL_BFIN_CTSRTS)
                gpio_free(bfin_serial_ports[i].cts_pin);
                gpio_free(bfin_serial_ports[i].rts_pin);
 #endif