|
@@ -554,10 +554,47 @@ struct mptfc_rport_info
|
|
|
u8 flags;
|
|
|
};
|
|
|
|
|
|
+/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
|
|
+
|
|
|
+/*
|
|
|
+ * MPT_SCSI_HOST defines - Used by the IOCTL and the SCSI drivers
|
|
|
+ * Private to the driver.
|
|
|
+ */
|
|
|
+
|
|
|
+#define MPT_HOST_BUS_UNKNOWN (0xFF)
|
|
|
+#define MPT_HOST_TOO_MANY_TM (0x05)
|
|
|
+#define MPT_HOST_NVRAM_INVALID (0xFFFFFFFF)
|
|
|
+#define MPT_HOST_NO_CHAIN (0xFFFFFFFF)
|
|
|
+#define MPT_NVRAM_MASK_TIMEOUT (0x000000FF)
|
|
|
+#define MPT_NVRAM_SYNC_MASK (0x0000FF00)
|
|
|
+#define MPT_NVRAM_SYNC_SHIFT (8)
|
|
|
+#define MPT_NVRAM_DISCONNECT_ENABLE (0x00010000)
|
|
|
+#define MPT_NVRAM_ID_SCAN_ENABLE (0x00020000)
|
|
|
+#define MPT_NVRAM_LUN_SCAN_ENABLE (0x00040000)
|
|
|
+#define MPT_NVRAM_TAG_QUEUE_ENABLE (0x00080000)
|
|
|
+#define MPT_NVRAM_WIDE_DISABLE (0x00100000)
|
|
|
+#define MPT_NVRAM_BOOT_CHOICE (0x00200000)
|
|
|
+
|
|
|
+typedef enum {
|
|
|
+ FC,
|
|
|
+ SPI,
|
|
|
+ SAS
|
|
|
+} BUS_TYPE;
|
|
|
+
|
|
|
+typedef struct _MPT_SCSI_HOST {
|
|
|
+ struct _MPT_ADAPTER *ioc;
|
|
|
+ ushort sel_timeout[MPT_MAX_FC_DEVICES];
|
|
|
+ char *info_kbuf;
|
|
|
+ long last_queue_full;
|
|
|
+ u16 spi_pending;
|
|
|
+ struct list_head target_reset_list;
|
|
|
+} MPT_SCSI_HOST;
|
|
|
+
|
|
|
typedef void (*MPT_ADD_SGE)(void *pAddr, u32 flagslength, dma_addr_t dma_addr);
|
|
|
typedef void (*MPT_ADD_CHAIN)(void *pAddr, u8 next, u16 length,
|
|
|
dma_addr_t dma_addr);
|
|
|
typedef void (*MPT_SCHEDULE_TARGET_RESET)(void *ioc);
|
|
|
+typedef void (*MPT_FLUSH_RUNNING_CMDS)(MPT_SCSI_HOST *hd);
|
|
|
|
|
|
/*
|
|
|
* Adapter Structure - pci_dev specific. Maximum: MPT_MAX_ADAPTERS
|
|
@@ -717,6 +754,7 @@ typedef struct _MPT_ADAPTER
|
|
|
u8 taskmgmt_quiesce_io;
|
|
|
u8 ioc_reset_in_progress;
|
|
|
MPT_SCHEDULE_TARGET_RESET schedule_target_reset;
|
|
|
+ MPT_FLUSH_RUNNING_CMDS schedule_dead_ioc_flush_running_cmds;
|
|
|
struct work_struct sas_persist_task;
|
|
|
|
|
|
struct work_struct fc_setup_reset_work;
|
|
@@ -830,19 +868,6 @@ typedef struct _MPT_LOCAL_REPLY {
|
|
|
u32 pad;
|
|
|
} MPT_LOCAL_REPLY;
|
|
|
|
|
|
-#define MPT_HOST_BUS_UNKNOWN (0xFF)
|
|
|
-#define MPT_HOST_TOO_MANY_TM (0x05)
|
|
|
-#define MPT_HOST_NVRAM_INVALID (0xFFFFFFFF)
|
|
|
-#define MPT_HOST_NO_CHAIN (0xFFFFFFFF)
|
|
|
-#define MPT_NVRAM_MASK_TIMEOUT (0x000000FF)
|
|
|
-#define MPT_NVRAM_SYNC_MASK (0x0000FF00)
|
|
|
-#define MPT_NVRAM_SYNC_SHIFT (8)
|
|
|
-#define MPT_NVRAM_DISCONNECT_ENABLE (0x00010000)
|
|
|
-#define MPT_NVRAM_ID_SCAN_ENABLE (0x00020000)
|
|
|
-#define MPT_NVRAM_LUN_SCAN_ENABLE (0x00040000)
|
|
|
-#define MPT_NVRAM_TAG_QUEUE_ENABLE (0x00080000)
|
|
|
-#define MPT_NVRAM_WIDE_DISABLE (0x00100000)
|
|
|
-#define MPT_NVRAM_BOOT_CHOICE (0x00200000)
|
|
|
|
|
|
/* The TM_STATE variable is used to provide strict single threading of TM
|
|
|
* requests as well as communicate TM error conditions.
|
|
@@ -851,21 +876,6 @@ typedef struct _MPT_LOCAL_REPLY {
|
|
|
#define TM_STATE_IN_PROGRESS (1)
|
|
|
#define TM_STATE_ERROR (2)
|
|
|
|
|
|
-typedef enum {
|
|
|
- FC,
|
|
|
- SPI,
|
|
|
- SAS
|
|
|
-} BUS_TYPE;
|
|
|
-
|
|
|
-typedef struct _MPT_SCSI_HOST {
|
|
|
- MPT_ADAPTER *ioc;
|
|
|
- ushort sel_timeout[MPT_MAX_FC_DEVICES];
|
|
|
- char *info_kbuf;
|
|
|
- long last_queue_full;
|
|
|
- u16 spi_pending;
|
|
|
- struct list_head target_reset_list;
|
|
|
-} MPT_SCSI_HOST;
|
|
|
-
|
|
|
/*=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=*/
|
|
|
/*
|
|
|
* More Dynamic Multi-Pathing stuff...
|