These changes are the raw update to linux-4.4.6-rt14. Kernel sources
[kvmfornfv.git] / kernel / drivers / scsi / ipr.h
index 6b97ee4..a34c7a5 100644 (file)
@@ -39,8 +39,8 @@
 /*
  * Literals
  */
-#define IPR_DRIVER_VERSION "2.6.1"
-#define IPR_DRIVER_DATE "(March 12, 2015)"
+#define IPR_DRIVER_VERSION "2.6.3"
+#define IPR_DRIVER_DATE "(October 17, 2015)"
 
 /*
  * IPR_MAX_CMD_PER_LUN: This defines the maximum number of outstanding
 #define IPR_SET_ALL_SUPPORTED_DEVICES                  0x80
 #define IPR_IOA_SHUTDOWN                               0xF7
 #define        IPR_WR_BUF_DOWNLOAD_AND_SAVE                    0x05
+#define IPR_IOA_SERVICE_ACTION                         0xD2
+
+/* IOA Service Actions */
+#define IPR_IOA_SA_CHANGE_CACHE_PARAMS                 0x14
 
 /*
  * Timeouts
 #define IPR_IPL_INIT_STAGE_TIME_MASK                   0x0000ffff
 #define IPR_PCII_IPL_STAGE_CHANGE                      (0x80000000 >> 0)
 
+#define IPR_PCII_MAILBOX_STABLE                                (0x80000000 >> 4)
+#define IPR_WAIT_FOR_MAILBOX                           (2 * HZ)
+
 #define IPR_PCII_IOA_TRANS_TO_OPER                     (0x80000000 >> 0)
 #define IPR_PCII_IOARCB_XFER_FAILED                    (0x80000000 >> 3)
 #define IPR_PCII_IOA_UNIT_CHECKED                      (0x80000000 >> 4)
@@ -846,6 +853,16 @@ struct ipr_inquiry_page0 {
        u8 page[IPR_INQUIRY_PAGE0_ENTRIES];
 }__attribute__((packed));
 
+struct ipr_inquiry_pageC4 {
+       u8 peri_qual_dev_type;
+       u8 page_code;
+       u8 reserved1;
+       u8 len;
+       u8 cache_cap[4];
+#define IPR_CAP_SYNC_CACHE             0x08
+       u8 reserved2[20];
+} __packed;
+
 struct ipr_hostrcb_device_data_entry {
        struct ipr_vpd vpd;
        struct ipr_res_addr dev_res_addr;
@@ -1005,13 +1022,13 @@ struct ipr_hostrcb_type_24_error {
 struct ipr_hostrcb_type_07_error {
        u8 failure_reason[64];
        struct ipr_vpd vpd;
-       u32 data[222];
+       __be32 data[222];
 }__attribute__((packed, aligned (4)));
 
 struct ipr_hostrcb_type_17_error {
        u8 failure_reason[64];
        struct ipr_ext_vpd vpd;
-       u32 data[476];
+       __be32 data[476];
 }__attribute__((packed, aligned (4)));
 
 struct ipr_hostrcb_config_element {
@@ -1289,18 +1306,17 @@ struct ipr_resource_entry {
        (((res)->bus << 24) | ((res)->target << 8) | (res)->lun)
 
        u8 ata_class;
-
-       u8 flags;
-       __be16 res_flags;
-
        u8 type;
 
+       u16 flags;
+       u16 res_flags;
+
        u8 qmodel;
        struct ipr_std_inq_data std_inq_data;
 
        __be32 res_handle;
        __be64 dev_id;
-       __be64 lun_wwn;
+       u64 lun_wwn;
        struct scsi_lun dev_lun;
        u8 res_path[8];
 
@@ -1320,6 +1336,7 @@ struct ipr_misc_cbs {
        struct ipr_inquiry_page0 page0_data;
        struct ipr_inquiry_page3 page3_data;
        struct ipr_inquiry_cap cap;
+       struct ipr_inquiry_pageC4 pageC4_data;
        struct ipr_mode_pages mode_pages;
        struct ipr_supported_device supp_dev;
 };