/* S2io Driver name & version. */
 static char s2io_driver_name[] = "Neterion";
-static char s2io_driver_version[] = "Version 2.0.2.1";
+static char s2io_driver_version[] = "Version 2.0.3.1";
 
 static inline int RXD_IS_UP2DT(RxD_t *rxdp)
 {
 
 static u64 herc_act_dtx_cfg[] = {
        /* Set address */
-       0x80000515BA750000ULL, 0x80000515BA7500E0ULL,
+       0x8000051536750000ULL, 0x80000515367500E0ULL,
        /* Write data */
-       0x80000515BA750004ULL, 0x80000515BA7500E4ULL,
+       0x8000051536750004ULL, 0x80000515367500E4ULL,
        /* Set address */
        0x80010515003F0000ULL, 0x80010515003F00E0ULL,
        /* Write data */
        0x80010515003F0004ULL, 0x80010515003F00E4ULL,
        /* Set address */
+       0x801205150D440000ULL, 0x801205150D4400E0ULL,
+       /* Write data */
+       0x801205150D440004ULL, 0x801205150D4400E4ULL,
+       /* Set address */
        0x80020515F2100000ULL, 0x80020515F21000E0ULL,
        /* Write data */
        0x80020515F2100004ULL, 0x80020515F21000E4ULL,
        }
 
        /*  Enable select interrupts */
-       interruptible = TX_TRAFFIC_INTR | RX_TRAFFIC_INTR | MC_INTR;
+       interruptible = TX_TRAFFIC_INTR | RX_TRAFFIC_INTR;
        interruptible |= TX_PIC_INTR | RX_PIC_INTR;
        interruptible |= TX_MAC_INTR | RX_MAC_INTR;
 
        config = &nic->config;
 
        /*  Disable all interrupts */
-       interruptible = TX_TRAFFIC_INTR | RX_TRAFFIC_INTR | MC_INTR;
+       interruptible = TX_TRAFFIC_INTR | RX_TRAFFIC_INTR;
        interruptible |= TX_PIC_INTR | RX_PIC_INTR;
        interruptible |= TX_MAC_INTR | RX_MAC_INTR;
        en_dis_able_nic_intrs(nic, interruptible, DISABLE_INTRS);
                        DBG_PRINT(ERR_DBG, "%s: Device indicates ",
                                  dev->name);
                        DBG_PRINT(ERR_DBG, "double ECC error!!\n");
-                       netif_stop_queue(dev);
-                       schedule_work(&nic->rst_timer_task);
+                       if (nic->device_type != XFRAME_II_DEVICE) {
+                               netif_stop_queue(dev);
+                               schedule_work(&nic->rst_timer_task);
+                       }
                } else {
                        nic->mac_control.stats_info->sw_stat.
                                single_ecc_errs++;
        u16 subid, pci_cmd;
 
        /* Back up  the PCI-X CMD reg, dont want to lose MMRBC, OST settings */
-       if (sp->device_type == XFRAME_I_DEVICE)
-               pci_read_config_word(sp->pdev, PCIX_COMMAND_REGISTER, &(pci_cmd));
+       pci_read_config_word(sp->pdev, PCIX_COMMAND_REGISTER, &(pci_cmd));
 
        val64 = SW_RESET_ALL;
        writeq(val64, &bar0->sw_reset);
         */
        msleep(250);
 
-       if (!(sp->device_type & XFRAME_II_DEVICE)) {
-               /* Restore the PCI state saved during initializarion. */
-               pci_restore_state(sp->pdev);
-               pci_write_config_word(sp->pdev, PCIX_COMMAND_REGISTER,
+       /* Restore the PCI state saved during initialization. */
+       pci_restore_state(sp->pdev);
+       pci_write_config_word(sp->pdev, PCIX_COMMAND_REGISTER,
                                     pci_cmd);
-       } else {
-               pci_set_master(sp->pdev);
-       }
        s2io_init_pci(sp);
 
        msleep(250);
        INIT_WORK(&sp->set_link_task,
                  (void (*)(void *)) s2io_set_link, sp);
 
-       if (!(sp->device_type & XFRAME_II_DEVICE)) {
-               pci_save_state(sp->pdev);
-       }
+       pci_save_state(sp->pdev);
 
        /* Setting swapper control on the NIC, for proper reset operation */
        if (s2io_set_swapper(sp)) {