diff options
Diffstat (limited to 'drivers/message/fusion/mptbase.h')
| -rw-r--r-- | drivers/message/fusion/mptbase.h | 66 | 
1 files changed, 38 insertions, 28 deletions
diff --git a/drivers/message/fusion/mptbase.h b/drivers/message/fusion/mptbase.h index fe902338539..69ddabd5195 100644 --- a/drivers/message/fusion/mptbase.h +++ b/drivers/message/fusion/mptbase.h @@ -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...  |