]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/serial/icom.c
ft232: support the ASYNC_LOW_LATENCY flag
[karo-tx-linux.git] / drivers / serial / icom.c
index 2b7531d9f6abcfa72c9872bcea48ef9a5cf593c6..9f2891c2c4a21f93e4cc6289e4b95c286a655455 100644 (file)
@@ -137,7 +137,12 @@ static LIST_HEAD(icom_adapter_head);
 static spinlock_t icom_lock;
 
 #ifdef ICOM_TRACE
-static inline void trace(struct icom_port *, char *, unsigned long) {};
+static inline void trace(struct icom_port *icom_port, char *trace_pt,
+                       unsigned long trace_data)
+{
+       dev_info(&icom_port->adapter->pci_dev->dev, ":%d:%s - %lx\n",
+       icom_port->port, trace_pt, trace_data);
+}
 #else
 static inline void trace(struct icom_port *icom_port, char *trace_pt, unsigned long trace_data) {};
 #endif
@@ -408,7 +413,7 @@ static void load_code(struct icom_port *icom_port)
        release_firmware(fw);
 
        /* Set Hardware level */
-       if ((icom_port->adapter->version | ADAPTER_V2) == ADAPTER_V2)
+       if (icom_port->adapter->version == ADAPTER_V2)
                writeb(V2_HARDWARE, &(icom_port->dram->misc_flags));
 
        /* Start the processor in Adapter */
@@ -861,7 +866,7 @@ static irqreturn_t icom_interrupt(int irq, void *dev_id)
        /* find icom_port for this interrupt */
        icom_adapter = (struct icom_adapter *) dev_id;
 
-       if ((icom_adapter->version | ADAPTER_V2) == ADAPTER_V2) {
+       if (icom_adapter->version == ADAPTER_V2) {
                int_reg = icom_adapter->base_addr + 0x8024;
 
                adapter_interrupts = readl(int_reg);
@@ -1098,7 +1103,6 @@ static void icom_set_termios(struct uart_port *port,
 {
        int baud;
        unsigned cflag, iflag;
-       int bits;
        char new_config2;
        char new_config3 = 0;
        char tmp_byte;
@@ -1119,34 +1123,27 @@ static void icom_set_termios(struct uart_port *port,
        switch (cflag & CSIZE) {
        case CS5:               /* 5 bits/char */
                new_config2 |= ICOM_ACFG_5BPC;
-               bits = 7;
                break;
        case CS6:               /* 6 bits/char */
                new_config2 |= ICOM_ACFG_6BPC;
-               bits = 8;
                break;
        case CS7:               /* 7 bits/char */
                new_config2 |= ICOM_ACFG_7BPC;
-               bits = 9;
                break;
        case CS8:               /* 8 bits/char */
                new_config2 |= ICOM_ACFG_8BPC;
-               bits = 10;
                break;
        default:
-               bits = 10;
                break;
        }
        if (cflag & CSTOPB) {
                /* 2 stop bits */
                new_config2 |= ICOM_ACFG_2STOP_BIT;
-               bits++;
        }
        if (cflag & PARENB) {
                /* parity bit enabled */
                new_config2 |= ICOM_ACFG_PARITY_ENAB;
                trace(ICOM_PORT, "PARENB", 0);
-               bits++;
        }
        if (cflag & PARODD) {
                /* odd parity */
@@ -1322,7 +1319,6 @@ static struct uart_driver icom_uart_driver = {
 static int __devinit icom_init_ports(struct icom_adapter *icom_adapter)
 {
        u32 subsystem_id = icom_adapter->subsystem_id;
-       int retval = 0;
        int i;
        struct icom_port *icom_port;
 
@@ -1368,7 +1364,7 @@ static int __devinit icom_init_ports(struct icom_adapter *icom_adapter)
                }
        }
 
-       return retval;
+       return 0;
 }
 
 static void icom_port_active(struct icom_port *icom_port, struct icom_adapter *icom_adapter, int port_num)
@@ -1391,7 +1387,6 @@ static int __devinit icom_load_ports(struct icom_adapter *icom_adapter)
 {
        struct icom_port *icom_port;
        int port_num;
-       int retval;
 
        for (port_num = 0; port_num < icom_adapter->numb_ports; port_num++) {
 
@@ -1405,7 +1400,7 @@ static int __devinit icom_load_ports(struct icom_adapter *icom_adapter)
                        icom_port->adapter = icom_adapter;
 
                        /* get port memory */
-                       if ((retval = get_port_memory(icom_port)) != 0) {
+                       if (get_port_memory(icom_port) != 0) {
                                dev_err(&icom_port->adapter->pci_dev->dev,
                                        "Memory allocation for port FAILED\n");
                        }
@@ -1482,8 +1477,8 @@ static void icom_remove_adapter(struct icom_adapter *icom_adapter)
 
        free_irq(icom_adapter->pci_dev->irq, (void *) icom_adapter);
        iounmap(icom_adapter->base_addr);
-       icom_free_adapter(icom_adapter);
        pci_release_regions(icom_adapter->pci_dev);
+       icom_free_adapter(icom_adapter);
 }
 
 static void icom_kref_release(struct kref *kref)
@@ -1657,15 +1652,6 @@ static void __exit icom_exit(void)
 module_init(icom_init);
 module_exit(icom_exit);
 
-#ifdef ICOM_TRACE
-static inline void trace(struct icom_port *icom_port, char *trace_pt,
-                 unsigned long trace_data)
-{
-       dev_info(&icom_port->adapter->pci_dev->dev, ":%d:%s - %lx\n",
-                icom_port->port, trace_pt, trace_data);
-}
-#endif
-
 MODULE_AUTHOR("Michael Anderson <mjanders@us.ibm.com>");
 MODULE_DESCRIPTION("IBM iSeries Serial IOA driver");
 MODULE_SUPPORTED_DEVICE