extern int qlafx00_abort_isp(scsi_qla_host_t *);
 extern int qlafx00_iospace_config(struct qla_hw_data *);
 extern int qlafx00_init_firmware(scsi_qla_host_t *, uint16_t);
+extern int qlafx00_driver_shutdown(scsi_qla_host_t *, int);
 extern int qlafx00_fw_ready(scsi_qla_host_t *);
 extern int qlafx00_configure_devices(scsi_qla_host_t *);
 extern int qlafx00_reset_initialize(scsi_qla_host_t *);
 
        vha = pci_get_drvdata(pdev);
        ha = vha->hw;
 
+       /* Notify ISPFX00 firmware */
+       if (IS_QLAFX00(ha))
+               qlafx00_driver_shutdown(vha, 20);
+
        /* Turn-off FCE trace */
        if (ha->flags.fce_enabled) {
                qla2x00_disable_fce_trace(vha, NULL, NULL);
        ha->flags.host_shutting_down = 1;
 
        set_bit(UNLOADING, &base_vha->dpc_flags);
+       if (IS_QLAFX00(ha))
+               qlafx00_driver_shutdown(base_vha, 20);
+
        mutex_lock(&ha->vport_lock);
        while (ha->cur_vport_count) {
                spin_lock_irqsave(&ha->vport_slock, flags);