Merge master.kernel.org:/pub/scm/linux/kernel/git/lethal/sh-2.6
[powerpc.git] / drivers / serial / mpsc.c
index 9468192..704243c 100644 (file)
@@ -50,7 +50,6 @@
  * 4) AFAICT, hardware flow control isn't supported by the controller --MAG.
  */
 
-#include <linux/config.h>
 
 #if defined(CONFIG_SERIAL_MPSC_CONSOLE) && defined(CONFIG_MAGIC_SYSRQ)
 #define SUPPORT_SYSRQ
@@ -315,7 +314,6 @@ struct mpsc_port_info *mpsc_device_remove(int index);
 #define MPSC_MAJOR             204
 #define MPSC_MINOR_START       44
 #define        MPSC_DRIVER_NAME        "MPSC"
-#define        MPSC_DEVFS_NAME         "ttymm/"
 #define        MPSC_DEV_NAME           "ttyMM"
 #define        MPSC_VERSION            "1.00"
 
@@ -1414,7 +1412,7 @@ mpsc_startup(struct uart_port *port)
 
                /* If irq's are shared, need to set flag */
                if (mpsc_ports[0].port.irq == mpsc_ports[1].port.irq)
-                       flag = SA_SHIRQ;
+                       flag = IRQF_SHARED;
 
                if (request_irq(pi->port.irq, mpsc_sdma_intr, flag,
                                "mpsc-sdma", pi))
@@ -1863,7 +1861,6 @@ static struct platform_driver mpsc_shared_driver = {
 static struct uart_driver mpsc_reg = {
        .owner       = THIS_MODULE,
        .driver_name = MPSC_DRIVER_NAME,
-       .devfs_name  = MPSC_DEVFS_NAME,
        .dev_name    = MPSC_DEV_NAME,
        .major       = MPSC_MAJOR,
        .minor       = MPSC_MINOR_START,
@@ -1896,6 +1893,10 @@ mpsc_drv_map_regs(struct mpsc_port_info *pi, struct platform_device *pd)
        }
        else {
                mpsc_resource_err("SDMA base");
+               if (pi->mpsc_base) {
+                       iounmap(pi->mpsc_base);
+                       pi->mpsc_base = NULL;
+               }
                return -ENOMEM;
        }
 
@@ -1908,6 +1909,14 @@ mpsc_drv_map_regs(struct mpsc_port_info *pi, struct platform_device *pd)
        }
        else {
                mpsc_resource_err("BRG base");
+               if (pi->mpsc_base) {
+                       iounmap(pi->mpsc_base);
+                       pi->mpsc_base = NULL;
+               }
+               if (pi->sdma_base) {
+                       iounmap(pi->sdma_base);
+                       pi->sdma_base = NULL;
+               }
                return -ENOMEM;
        }