lpfc: Update version to 10.7.0.0 for upstream patch set.
[firefly-linux-kernel-4.4.55.git] / drivers / scsi / ipr.h
index ec03b42fa2b9fe0f388bc266fd75e8190460f682..73790a1d096902fbda79f39ca7bd5c1bd43a1119 100644 (file)
@@ -39,8 +39,8 @@
 /*
  * Literals
  */
-#define IPR_DRIVER_VERSION "2.6.0"
-#define IPR_DRIVER_DATE "(November 16, 2012)"
+#define IPR_DRIVER_VERSION "2.6.1"
+#define IPR_DRIVER_DATE "(March 12, 2015)"
 
 /*
  * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding
 #define IPR_IOASC_BUS_WAS_RESET                        0x06290000
 #define IPR_IOASC_BUS_WAS_RESET_BY_OTHER               0x06298000
 #define IPR_IOASC_ABORTED_CMD_TERM_BY_HOST     0x0B5A0000
+#define IPR_IOASC_IR_NON_OPTIMIZED             0x05258200
 
 #define IPR_FIRST_DRIVER_IOASC                 0x10000000
 #define IPR_IOASC_IOA_WAS_RESET                        0x10000001
 /*
  * Adapter Commands
  */
+#define IPR_CANCEL_REQUEST                             0xC0
+#define        IPR_CANCEL_64BIT_IOARCB                 0x01
 #define IPR_QUERY_RSRC_STATE                           0xC2
 #define IPR_RESET_DEVICE                               0xC3
 #define        IPR_RESET_TYPE_SELECT                           0x80
 #define IPR_ABBREV_SHUTDOWN_TIMEOUT            (10 * HZ)
 #define IPR_DUAL_IOA_ABBR_SHUTDOWN_TO  (2 * 60 * HZ)
 #define IPR_DEVICE_RESET_TIMEOUT               (ipr_fastfail ? 10 * HZ : 30 * HZ)
+#define IPR_CANCEL_TIMEOUT                     (ipr_fastfail ? 10 * HZ : 30 * HZ)
 #define IPR_CANCEL_ALL_TIMEOUT         (ipr_fastfail ? 10 * HZ : 30 * HZ)
 #define IPR_ABORT_TASK_TIMEOUT         (ipr_fastfail ? 10 * HZ : 30 * HZ)
 #define IPR_INTERNAL_TIMEOUT                   (ipr_fastfail ? 10 * HZ : 30 * HZ)
 #define IPR_RUNTIME_RESET                              0x40000000
 
 #define IPR_IPL_INIT_MIN_STAGE_TIME                    5
-#define IPR_IPL_INIT_DEFAULT_STAGE_TIME                 15
+#define IPR_IPL_INIT_DEFAULT_STAGE_TIME                 30
 #define IPR_IPL_INIT_STAGE_UNKNOWN                     0x0
 #define IPR_IPL_INIT_STAGE_TRANSOP                     0xB0000000
 #define IPR_IPL_INIT_STAGE_MASK                                0xff000000
@@ -518,6 +522,7 @@ struct ipr_cmd_pkt {
 #define IPR_RQTYPE_IOACMD              0x01
 #define IPR_RQTYPE_HCAM                        0x02
 #define IPR_RQTYPE_ATA_PASSTHRU        0x04
+#define IPR_RQTYPE_PIPE                        0x05
 
        u8 reserved2;
 
@@ -1271,6 +1276,7 @@ struct ipr_resource_entry {
        u8 del_from_ml:1;
        u8 resetting_device:1;
        u8 reset_occurred:1;
+       u8 raw_mode:1;
 
        u32 bus;                /* AKA channel */
        u32 target;             /* AKA id */
@@ -1402,7 +1408,8 @@ enum ipr_shutdown_type {
        IPR_SHUTDOWN_NORMAL = 0x00,
        IPR_SHUTDOWN_PREPARE_FOR_NORMAL = 0x40,
        IPR_SHUTDOWN_ABBREV = 0x80,
-       IPR_SHUTDOWN_NONE = 0x100
+       IPR_SHUTDOWN_NONE = 0x100,
+       IPR_SHUTDOWN_QUIESCE = 0x101,
 };
 
 struct ipr_trace_entry {
@@ -1536,6 +1543,7 @@ struct ipr_ioa_cfg {
        u8 saved_mode_page_len;
 
        struct work_struct work_q;
+       struct workqueue_struct *reset_work_q;
 
        wait_queue_head_t reset_wait_q;
        wait_queue_head_t msi_wait_q;
@@ -1587,6 +1595,7 @@ struct ipr_cmnd {
        struct ata_queued_cmd *qc;
        struct completion completion;
        struct timer_list timer;
+       struct work_struct work;
        void (*fast_done) (struct ipr_cmnd *);
        void (*done) (struct ipr_cmnd *);
        int (*job_step) (struct ipr_cmnd *);