+MODULE_AUTHOR("Chris Lang");
 --- a/drivers/gpio/Kconfig
 +++ b/drivers/gpio/Kconfig
-@@ -298,6 +298,14 @@ config GPIO_RDC321X
+@@ -316,6 +316,14 @@ config GPIO_RDC321X
          Support for the RDC R321x SoC GPIOs over southbridge
          PCI configuration space.
  
 
 +obj-pci-$(CONFIG_MACH_WG302V1)                += wg302v1-pci.o
  obj-pci-$(CONFIG_MACH_WG302V2)                += wg302v2-pci.o
  obj-pci-$(CONFIG_MACH_FSG)            += fsg-pci.o
- 
-@@ -28,6 +29,7 @@ obj-$(CONFIG_MACH_NSLU2)     += nslu2-setup.
+ obj-pci-$(CONFIG_MACH_ARCOM_VULCAN)   += vulcan-pci.o
+@@ -29,6 +30,7 @@ obj-$(CONFIG_MACH_NSLU2)     += nslu2-setup.
  obj-$(CONFIG_MACH_NAS100D)    += nas100d-setup.o
  obj-$(CONFIG_MACH_DSMG600)      += dsmg600-setup.o
  obj-$(CONFIG_MACH_GATEWAY7001)        += gateway7001-setup.o
 
  config ARCH_IXDP425
        bool "IXDP425"
        help
-@@ -169,7 +177,7 @@ config MACH_FSG
+@@ -177,7 +185,7 @@ config MACH_ARCOM_VULCAN
  #
  config CPU_IXP46X
        bool
  config CPU_IXP43X
 --- a/arch/arm/mach-ixp4xx/Makefile
 +++ b/arch/arm/mach-ixp4xx/Makefile
-@@ -18,6 +18,7 @@ obj-pci-$(CONFIG_MACH_WG302V1)               += wg302
- obj-pci-$(CONFIG_MACH_WG302V2)                += wg302v2-pci.o
+@@ -19,6 +19,7 @@ obj-pci-$(CONFIG_MACH_WG302V2)               += wg302
  obj-pci-$(CONFIG_MACH_FSG)            += fsg-pci.o
+ obj-pci-$(CONFIG_MACH_ARCOM_VULCAN)   += vulcan-pci.o
  obj-pci-$(CONFIG_MACH_PRONGHORN)      += pronghorn-pci.o
 +obj-pci-$(CONFIG_MACH_SIDEWINDER)     += sidewinder-pci.o
  
  obj-y += common.o
  
-@@ -35,6 +36,7 @@ obj-$(CONFIG_MACH_WG302V2)   += wg302v2-se
- obj-$(CONFIG_MACH_FSG)                += fsg-setup.o
+@@ -37,6 +38,7 @@ obj-$(CONFIG_MACH_FSG)               += fsg-setup.o
  obj-$(CONFIG_MACH_GORAMO_MLR) += goramo_mlr.o
+ obj-$(CONFIG_MACH_ARCOM_VULCAN)       += vulcan-setup.o
  obj-$(CONFIG_MACH_PRONGHORN)  += pronghorn-setup.o
 +obj-$(CONFIG_MACH_SIDEWINDER) += sidewinder-setup.o
  
 
 --- a/drivers/mtd/redboot.c
 +++ b/drivers/mtd/redboot.c
-@@ -13,6 +13,8 @@
+@@ -31,6 +31,8 @@
  
  #define BOARD_CONFIG_PART             "boardconfig"
  
  struct fis_image_desc {
      unsigned char name[16];      // Null terminated name
      uint32_t    flash_base;    // Address within FLASH of image
-@@ -30,7 +32,8 @@ struct fis_list {
+@@ -48,7 +50,8 @@ struct fis_list {
        struct fis_list *next;
  };
  
  module_param(directory, int, 0);
  
  static inline int redboot_checksum(struct fis_image_desc *img)
-@@ -59,6 +62,8 @@ static int parse_redboot_partitions(stru
+@@ -77,6 +80,8 @@ static int parse_redboot_partitions(stru
  #ifdef CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED
        static char nullstring[] = "unallocated";
  #endif
 
        help
 --- a/arch/arm/mach-ixp4xx/Makefile
 +++ b/arch/arm/mach-ixp4xx/Makefile
-@@ -19,6 +19,7 @@ obj-pci-$(CONFIG_MACH_WG302V2)               += wg302
- obj-pci-$(CONFIG_MACH_FSG)            += fsg-pci.o
+@@ -20,6 +20,7 @@ obj-pci-$(CONFIG_MACH_FSG)           += fsg-pci.o
+ obj-pci-$(CONFIG_MACH_ARCOM_VULCAN)   += vulcan-pci.o
  obj-pci-$(CONFIG_MACH_PRONGHORN)      += pronghorn-pci.o
  obj-pci-$(CONFIG_MACH_SIDEWINDER)     += sidewinder-pci.o
 +obj-pci-$(CONFIG_MACH_COMPEX)         += ixdp425-pci.o
  
  obj-y += common.o
  
-@@ -37,6 +38,7 @@ obj-$(CONFIG_MACH_FSG)               += fsg-setup.o
- obj-$(CONFIG_MACH_GORAMO_MLR) += goramo_mlr.o
+@@ -39,6 +40,7 @@ obj-$(CONFIG_MACH_GORAMO_MLR)        += goramo_
+ obj-$(CONFIG_MACH_ARCOM_VULCAN)       += vulcan-setup.o
  obj-$(CONFIG_MACH_PRONGHORN)  += pronghorn-setup.o
  obj-$(CONFIG_MACH_SIDEWINDER) += sidewinder-setup.o
 +obj-$(CONFIG_MACH_COMPEX)     += compex-setup.o
 
        help
 --- a/arch/arm/mach-ixp4xx/Makefile
 +++ b/arch/arm/mach-ixp4xx/Makefile
-@@ -20,6 +20,7 @@ obj-pci-$(CONFIG_MACH_FSG)           += fsg-pci.o
+@@ -21,6 +21,7 @@ obj-pci-$(CONFIG_MACH_ARCOM_VULCAN)  += v
  obj-pci-$(CONFIG_MACH_PRONGHORN)      += pronghorn-pci.o
  obj-pci-$(CONFIG_MACH_SIDEWINDER)     += sidewinder-pci.o
  obj-pci-$(CONFIG_MACH_COMPEX)         += ixdp425-pci.o
  
  obj-y += common.o
  
-@@ -39,6 +40,7 @@ obj-$(CONFIG_MACH_GORAMO_MLR)        += goramo_
+@@ -41,6 +42,7 @@ obj-$(CONFIG_MACH_ARCOM_VULCAN)      += vulca
  obj-$(CONFIG_MACH_PRONGHORN)  += pronghorn-setup.o
  obj-$(CONFIG_MACH_SIDEWINDER) += sidewinder-setup.o
  obj-$(CONFIG_MACH_COMPEX)     += compex-setup.o
 
        help
 --- a/arch/arm/mach-ixp4xx/Makefile
 +++ b/arch/arm/mach-ixp4xx/Makefile
-@@ -21,6 +21,7 @@ obj-pci-$(CONFIG_MACH_PRONGHORN)     += pron
+@@ -22,6 +22,7 @@ obj-pci-$(CONFIG_MACH_PRONGHORN)     += pron
  obj-pci-$(CONFIG_MACH_SIDEWINDER)     += sidewinder-pci.o
  obj-pci-$(CONFIG_MACH_COMPEX)         += ixdp425-pci.o
  obj-pci-$(CONFIG_MACH_WRT300NV2)              += wrt300nv2-pci.o
  
  obj-y += common.o
  
-@@ -41,6 +42,7 @@ obj-$(CONFIG_MACH_PRONGHORN) += pronghor
+@@ -43,6 +44,7 @@ obj-$(CONFIG_MACH_PRONGHORN) += pronghor
  obj-$(CONFIG_MACH_SIDEWINDER) += sidewinder-setup.o
  obj-$(CONFIG_MACH_COMPEX)     += compex-setup.o
  obj-$(CONFIG_MACH_WRT300NV2)  += wrt300nv2-setup.o
 
        prompt "NAS100D"
 --- a/arch/arm/mach-ixp4xx/Makefile
 +++ b/arch/arm/mach-ixp4xx/Makefile
-@@ -22,6 +22,7 @@ obj-pci-$(CONFIG_MACH_SIDEWINDER)    += sid
+@@ -23,6 +23,7 @@ obj-pci-$(CONFIG_MACH_SIDEWINDER)    += sid
  obj-pci-$(CONFIG_MACH_COMPEX)         += ixdp425-pci.o
  obj-pci-$(CONFIG_MACH_WRT300NV2)              += wrt300nv2-pci.o
  obj-pci-$(CONFIG_MACH_AP1000)         += ixdp425-pci.o
  
  obj-y += common.o
  
-@@ -43,6 +44,7 @@ obj-$(CONFIG_MACH_SIDEWINDER)        += sidewin
+@@ -45,6 +46,7 @@ obj-$(CONFIG_MACH_SIDEWINDER)        += sidewin
  obj-$(CONFIG_MACH_COMPEX)     += compex-setup.o
  obj-$(CONFIG_MACH_WRT300NV2)  += wrt300nv2-setup.o
  obj-$(CONFIG_MACH_AP1000)     += ap1000-setup.o
 
 +
 --- a/arch/arm/mach-ixp4xx/Makefile
 +++ b/arch/arm/mach-ixp4xx/Makefile
-@@ -23,6 +23,7 @@ obj-pci-$(CONFIG_MACH_COMPEX)                += ixdp42
+@@ -24,6 +24,7 @@ obj-pci-$(CONFIG_MACH_COMPEX)                += ixdp42
  obj-pci-$(CONFIG_MACH_WRT300NV2)              += wrt300nv2-pci.o
  obj-pci-$(CONFIG_MACH_AP1000)         += ixdp425-pci.o
  obj-pci-$(CONFIG_MACH_TW5334)         += tw5334-pci.o
  
  obj-y += common.o
  
-@@ -45,6 +46,7 @@ obj-$(CONFIG_MACH_COMPEX)    += compex-setu
+@@ -47,6 +48,7 @@ obj-$(CONFIG_MACH_COMPEX)    += compex-setu
  obj-$(CONFIG_MACH_WRT300NV2)  += wrt300nv2-setup.o
  obj-$(CONFIG_MACH_AP1000)     += ap1000-setup.o
  obj-$(CONFIG_MACH_TW5334)     += tw5334-setup.o
  obj-$(CONFIG_IXP4XX_QMGR)     += ixp4xx_qmgr.o
 --- a/arch/arm/mach-ixp4xx/Kconfig
 +++ b/arch/arm/mach-ixp4xx/Kconfig
-@@ -235,6 +235,13 @@ config MACH_GTWX5715
+@@ -243,6 +243,13 @@ config MACH_GTWX5715
                "High Speed" UART is n/c (as far as I can tell)
                20 Pin ARM/Xscale JTAG interface on J2
  
 
  config MACH_LOFT
      bool "Loft"
      depends on MACH_AVILA
-@@ -214,7 +222,7 @@ config CPU_IXP46X
+@@ -222,7 +230,7 @@ config CPU_IXP46X
  
  config CPU_IXP43X
        bool
  obj-pci-$(CONFIG_MACH_IXDPG425)               += ixdpg425-pci.o
  obj-pci-$(CONFIG_ARCH_ADI_COYOTE)     += coyote-pci.o
  obj-pci-$(CONFIG_MACH_GTWX5715)               += gtwx5715-pci.o
-@@ -29,6 +30,7 @@ obj-y        += common.o
+@@ -30,6 +31,7 @@ obj-y        += common.o
  
  obj-$(CONFIG_ARCH_IXDP4XX)    += ixdp425-setup.o
  obj-$(CONFIG_MACH_AVILA)      += avila-setup.o
 
        unsigned int    type;           /* If UPF_FIXED_TYPE */
 --- a/include/linux/serial_core.h
 +++ b/include/linux/serial_core.h
-@@ -293,6 +293,7 @@ struct uart_port {
+@@ -306,6 +306,7 @@ struct uart_port {
  #define UPIO_TSI              (5)                     /* Tsi108/109 type IO */
  #define UPIO_DWAPB            (6)                     /* DesignWare APB UART */
  #define UPIO_RM9000           (7)                     /* RM9000 type IO */
  
        unsigned int            read_status_mask;       /* driver specific */
        unsigned int            ignore_status_mask;     /* driver specific */
-@@ -335,6 +336,7 @@ struct uart_port {
+@@ -348,6 +349,7 @@ struct uart_port {
  
        unsigned int            mctrl;                  /* current modem ctrl settings */
        unsigned int            timeout;                /* character-based timeout */
                        uart->port.dev = port->dev;
 --- a/drivers/serial/serial_core.c
 +++ b/drivers/serial/serial_core.c
-@@ -2144,6 +2144,7 @@ uart_report_port(struct uart_driver *drv
+@@ -2122,6 +2122,7 @@ uart_report_port(struct uart_driver *drv
                snprintf(address, sizeof(address),
                         "I/O 0x%lx offset 0x%x", port->iobase, port->hub6);
                break;
        case UPIO_MEM:
        case UPIO_MEM32:
        case UPIO_AU:
-@@ -2557,6 +2558,7 @@ int uart_match_port(struct uart_port *po
+@@ -2541,6 +2542,7 @@ int uart_match_port(struct uart_port *po
        case UPIO_HUB6:
                return (port1->iobase == port2->iobase) &&
                       (port1->hub6   == port2->hub6);
 
  }
  
  static struct cambria_board_info cambria_boards[] __initdata = {
-@@ -460,6 +507,14 @@ static struct i2c_board_info __initdata 
+@@ -460,6 +507,14 @@ static struct i2c_board_info __initdata
                I2C_BOARD_INFO("24c08", 0x51),
                .platform_data  = &cambria_eeprom_info
        },
 
 --- a/drivers/net/arm/ixp4xx_eth.c
 +++ b/drivers/net/arm/ixp4xx_eth.c
-@@ -1220,6 +1220,10 @@ static int __devinit eth_init_one(struct
+@@ -1232,6 +1232,10 @@ static int __devinit eth_init_one(struct
        if ((err = IS_ERR(port->phydev)))
                goto err_free_mem;
  
 
  
  static inline void debug_pkt(struct net_device *dev, const char *func,
                             u8 *data, int len)
-@@ -1008,8 +1052,7 @@ static int eth_open(struct net_device *d
+@@ -1020,8 +1064,7 @@ static int eth_open(struct net_device *d
                return err;
        }
  
  
        for (i = 0; i < ETH_ALEN; i++)
                __raw_writel(dev->dev_addr[i], &port->regs->hw_addr[i]);
-@@ -1130,7 +1173,7 @@ static int eth_close(struct net_device *
+@@ -1142,7 +1185,7 @@ static int eth_close(struct net_device *
                printk(KERN_CRIT "%s: unable to disable loopback\n",
                       dev->name);
  
  
        if (!ports_open)
                qmgr_disable_irq(TXDONE_QUEUE);
-@@ -1156,7 +1199,6 @@ static int __devinit eth_init_one(struct
+@@ -1168,7 +1211,6 @@ static int __devinit eth_init_one(struct
        struct net_device *dev;
        struct eth_plat_info *plat = pdev->dev.platform_data;
        u32 regs_phys;
        int err;
  
        if (!(dev = alloc_etherdev(sizeof(struct port))))
-@@ -1214,18 +1256,10 @@ static int __devinit eth_init_one(struct
+@@ -1226,18 +1268,10 @@ static int __devinit eth_init_one(struct
        __raw_writel(DEFAULT_CORE_CNTRL, &port->regs->core_control);
        udelay(50);
  
        if ((err = register_netdev(dev)))
                goto err_phy_dis;
  
-@@ -1235,7 +1269,7 @@ static int __devinit eth_init_one(struct
+@@ -1247,7 +1281,7 @@ static int __devinit eth_init_one(struct
        return 0;
  
  err_phy_dis:
  err_free_mem:
        npe_port_tab[NPE_ID(port->id)] = NULL;
        platform_set_drvdata(pdev, NULL);
-@@ -1253,7 +1287,7 @@ static int __devexit eth_remove_one(stru
+@@ -1265,7 +1299,7 @@ static int __devexit eth_remove_one(stru
        struct port *port = netdev_priv(dev);
  
        unregister_netdev(dev);
 
        phy_start(port->phydev);
  }
  
-@@ -1263,6 +1277,10 @@ static int __devinit eth_init_one(struct
+@@ -1275,6 +1289,10 @@ static int __devinit eth_init_one(struct
        if ((err = register_netdev(dev)))
                goto err_phy_dis;
  
 
  #define RX_BUFF_SIZE          ALIGN((NET_IP_ALIGN) + MAX_MRU, 4)
  
  #define NAPI_WEIGHT           16
-@@ -1064,6 +1064,32 @@ static void destroy_queues(struct port *
+@@ -1075,6 +1075,32 @@ static void destroy_queues(struct port *
        }
  }
  
  static int eth_open(struct net_device *dev)
  {
        struct port *port = netdev_priv(dev);
-@@ -1115,6 +1141,8 @@ static int eth_open(struct net_device *d
+@@ -1126,6 +1152,8 @@ static int eth_open(struct net_device *d
        if (npe_send_recv_message(port->npe, &msg, "ETH_SET_FIREWALL_MODE"))
                return -EIO;
  
        if ((err = request_queues(port)) != 0)
                return err;
  
-@@ -1254,7 +1282,26 @@ static int eth_close(struct net_device *
+@@ -1265,7 +1293,26 @@ static int eth_close(struct net_device *
        return 0;
  }
  
 
        select PCI
 --- a/arch/arm/mach-ixp4xx/Makefile
 +++ b/arch/arm/mach-ixp4xx/Makefile
-@@ -25,6 +25,7 @@ obj-pci-$(CONFIG_MACH_WRT300NV2)             += wrt
+@@ -26,6 +26,7 @@ obj-pci-$(CONFIG_MACH_WRT300NV2)             += wrt
  obj-pci-$(CONFIG_MACH_AP1000)         += ixdp425-pci.o
  obj-pci-$(CONFIG_MACH_TW5334)         += tw5334-pci.o
  obj-pci-$(CONFIG_MACH_MI424WR)                += mi424wr-pci.o
  
  obj-y += common.o
  
-@@ -49,6 +50,7 @@ obj-$(CONFIG_MACH_WRT300NV2) += wrt300nv
+@@ -51,6 +52,7 @@ obj-$(CONFIG_MACH_WRT300NV2) += wrt300nv
  obj-$(CONFIG_MACH_AP1000)     += ap1000-setup.o
  obj-$(CONFIG_MACH_TW5334)     += tw5334-setup.o
  obj-$(CONFIG_MACH_MI424WR)    += mi424wr-setup.o
 
        select PCI
 --- a/arch/arm/mach-ixp4xx/Makefile
 +++ b/arch/arm/mach-ixp4xx/Makefile
-@@ -23,6 +23,7 @@ obj-pci-$(CONFIG_MACH_SIDEWINDER)    += sid
+@@ -24,6 +24,7 @@ obj-pci-$(CONFIG_MACH_SIDEWINDER)    += sid
  obj-pci-$(CONFIG_MACH_COMPEX)         += ixdp425-pci.o
  obj-pci-$(CONFIG_MACH_WRT300NV2)              += wrt300nv2-pci.o
  obj-pci-$(CONFIG_MACH_AP1000)         += ixdp425-pci.o
  obj-pci-$(CONFIG_MACH_TW5334)         += tw5334-pci.o
  obj-pci-$(CONFIG_MACH_MI424WR)                += mi424wr-pci.o
  obj-pci-$(CONFIG_MACH_USR8200)                += usr8200-pci.o
-@@ -48,6 +49,7 @@ obj-$(CONFIG_MACH_SIDEWINDER)        += sidewin
+@@ -50,6 +51,7 @@ obj-$(CONFIG_MACH_SIDEWINDER)        += sidewin
  obj-$(CONFIG_MACH_COMPEX)     += compex-setup.o
  obj-$(CONFIG_MACH_WRT300NV2)  += wrt300nv2-setup.o
  obj-$(CONFIG_MACH_AP1000)     += ap1000-setup.o