if (enable) {
                qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_INIT_NIC_FUNC);
-               cmd.req.arg[1] = 1 | BIT_0;
+               cmd.req.arg[1] = BIT_0 | BIT_31;
        } else {
                qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_STOP_NIC_FUNC);
-               cmd.req.arg[1] = 0 | BIT_0;
+               cmd.req.arg[1] = BIT_0 | BIT_31;
        }
        status = qlcnic_issue_cmd(adapter, &cmd);
        if (status)
 
 
 static int qlcnic_83xx_idc_reattach_driver(struct qlcnic_adapter *adapter)
 {
+       /* register for NIC IDC AEN Events */
+       qlcnic_83xx_register_nic_idc_func(adapter, 1);
+
        qlcnic_83xx_enable_mbx_intrpt(adapter);
        if ((adapter->flags & QLCNIC_MSIX_ENABLED)) {
                if (qlcnic_83xx_config_intrpt(adapter, 1)) {
        set_bit(QLC_83XX_MBX_READY, &adapter->ahw->idc.status);
        qlcnic_83xx_clear_function_resources(adapter);
 
+       /* register for NIC IDC AEN Events */
+       qlcnic_83xx_register_nic_idc_func(adapter, 1);
+
        if (!qlcnic_83xx_read_flash_descriptor_table(adapter))
                qlcnic_83xx_read_flash_mfg_id(adapter);
 
 
        INIT_DELAYED_WORK(&adapter->idc_aen_work, qlcnic_83xx_idc_aen_work);
 
-       /* register for NIC IDC AEN Events */
-       qlcnic_83xx_register_nic_idc_func(adapter, 1);
-
        /* Periodically monitor device status */
        qlcnic_83xx_idc_poll_dev_state(&adapter->fw_work.work);
 
 
 
        qlcnic_dev_set_npar_ready(adapter);
 
-       if (qlcnic_83xx_check(adapter))
-               qlcnic_83xx_register_nic_idc_func(adapter, 1);
        return err;
 }
 
        }
 
        if (qlcnic_83xx_check(adapter)) {
+               /* register for NIC IDC AEN Events */
+               qlcnic_83xx_register_nic_idc_func(adapter, 1);
                err = qlcnic_83xx_setup_mbx_intr(adapter);
                if (err) {
                        dev_err(&adapter->pdev->dev,
        }
 
        if (qlcnic_83xx_check(adapter)) {
+               /* register for NIC IDC AEN Events */
+               qlcnic_83xx_register_nic_idc_func(adapter, 1);
                err = qlcnic_83xx_setup_mbx_intr(adapter);
                if (err) {
                        dev_err(&adapter->pdev->dev,