diff options
Diffstat (limited to 'drivers/scsi/aacraid/aacraid.h')
-rw-r--r-- | drivers/scsi/aacraid/aacraid.h | 40 |
1 files changed, 33 insertions, 7 deletions
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h index c81edf36913f..f1d3b66af879 100644 --- a/drivers/scsi/aacraid/aacraid.h +++ b/drivers/scsi/aacraid/aacraid.h | |||
@@ -12,8 +12,8 @@ | |||
12 | *----------------------------------------------------------------------------*/ | 12 | *----------------------------------------------------------------------------*/ |
13 | 13 | ||
14 | #ifndef AAC_DRIVER_BUILD | 14 | #ifndef AAC_DRIVER_BUILD |
15 | # define AAC_DRIVER_BUILD 2437 | 15 | # define AAC_DRIVER_BUILD 2447 |
16 | # define AAC_DRIVER_BRANCH "-mh4" | 16 | # define AAC_DRIVER_BRANCH "-ms" |
17 | #endif | 17 | #endif |
18 | #define MAXIMUM_NUM_CONTAINERS 32 | 18 | #define MAXIMUM_NUM_CONTAINERS 32 |
19 | 19 | ||
@@ -464,12 +464,12 @@ struct adapter_ops | |||
464 | int (*adapter_restart)(struct aac_dev *dev, int bled); | 464 | int (*adapter_restart)(struct aac_dev *dev, int bled); |
465 | /* Transport operations */ | 465 | /* Transport operations */ |
466 | int (*adapter_ioremap)(struct aac_dev * dev, u32 size); | 466 | int (*adapter_ioremap)(struct aac_dev * dev, u32 size); |
467 | irqreturn_t (*adapter_intr)(int irq, void *dev_id); | 467 | irq_handler_t adapter_intr; |
468 | /* Packet operations */ | 468 | /* Packet operations */ |
469 | int (*adapter_deliver)(struct fib * fib); | 469 | int (*adapter_deliver)(struct fib * fib); |
470 | int (*adapter_bounds)(struct aac_dev * dev, struct scsi_cmnd * cmd, u64 lba); | 470 | int (*adapter_bounds)(struct aac_dev * dev, struct scsi_cmnd * cmd, u64 lba); |
471 | int (*adapter_read)(struct fib * fib, struct scsi_cmnd * cmd, u64 lba, u32 count); | 471 | int (*adapter_read)(struct fib * fib, struct scsi_cmnd * cmd, u64 lba, u32 count); |
472 | int (*adapter_write)(struct fib * fib, struct scsi_cmnd * cmd, u64 lba, u32 count); | 472 | int (*adapter_write)(struct fib * fib, struct scsi_cmnd * cmd, u64 lba, u32 count, int fua); |
473 | int (*adapter_scsi)(struct fib * fib, struct scsi_cmnd * cmd); | 473 | int (*adapter_scsi)(struct fib * fib, struct scsi_cmnd * cmd); |
474 | /* Administrative operations */ | 474 | /* Administrative operations */ |
475 | int (*adapter_comm)(struct aac_dev * dev, int comm); | 475 | int (*adapter_comm)(struct aac_dev * dev, int comm); |
@@ -860,10 +860,12 @@ struct aac_supplement_adapter_info | |||
860 | __le32 FlashFirmwareBootBuild; | 860 | __le32 FlashFirmwareBootBuild; |
861 | u8 MfgPcbaSerialNo[12]; | 861 | u8 MfgPcbaSerialNo[12]; |
862 | u8 MfgWWNName[8]; | 862 | u8 MfgWWNName[8]; |
863 | __le32 MoreFeatureBits; | 863 | __le32 SupportedOptions2; |
864 | __le32 ReservedGrowth[1]; | 864 | __le32 ReservedGrowth[1]; |
865 | }; | 865 | }; |
866 | #define AAC_FEATURE_FALCON 0x00000010 | 866 | #define AAC_FEATURE_FALCON 0x00000010 |
867 | #define AAC_OPTION_MU_RESET 0x00000001 | ||
868 | #define AAC_OPTION_IGNORE_RESET 0x00000002 | ||
867 | #define AAC_SIS_VERSION_V3 3 | 869 | #define AAC_SIS_VERSION_V3 3 |
868 | #define AAC_SIS_SLOT_UNKNOWN 0xFF | 870 | #define AAC_SIS_SLOT_UNKNOWN 0xFF |
869 | 871 | ||
@@ -1054,8 +1056,8 @@ struct aac_dev | |||
1054 | #define aac_adapter_read(fib,cmd,lba,count) \ | 1056 | #define aac_adapter_read(fib,cmd,lba,count) \ |
1055 | ((fib)->dev)->a_ops.adapter_read(fib,cmd,lba,count) | 1057 | ((fib)->dev)->a_ops.adapter_read(fib,cmd,lba,count) |
1056 | 1058 | ||
1057 | #define aac_adapter_write(fib,cmd,lba,count) \ | 1059 | #define aac_adapter_write(fib,cmd,lba,count,fua) \ |
1058 | ((fib)->dev)->a_ops.adapter_write(fib,cmd,lba,count) | 1060 | ((fib)->dev)->a_ops.adapter_write(fib,cmd,lba,count,fua) |
1059 | 1061 | ||
1060 | #define aac_adapter_scsi(fib,cmd) \ | 1062 | #define aac_adapter_scsi(fib,cmd) \ |
1061 | ((fib)->dev)->a_ops.adapter_scsi(fib,cmd) | 1063 | ((fib)->dev)->a_ops.adapter_scsi(fib,cmd) |
@@ -1213,6 +1215,9 @@ struct aac_write64 | |||
1213 | __le32 block; | 1215 | __le32 block; |
1214 | __le16 pad; | 1216 | __le16 pad; |
1215 | __le16 flags; | 1217 | __le16 flags; |
1218 | #define IO_TYPE_WRITE 0x00000000 | ||
1219 | #define IO_TYPE_READ 0x00000001 | ||
1220 | #define IO_SUREWRITE 0x00000008 | ||
1216 | struct sgmap64 sg; // Must be last in struct because it is variable | 1221 | struct sgmap64 sg; // Must be last in struct because it is variable |
1217 | }; | 1222 | }; |
1218 | struct aac_write_reply | 1223 | struct aac_write_reply |
@@ -1257,6 +1262,19 @@ struct aac_synchronize_reply { | |||
1257 | u8 data[16]; | 1262 | u8 data[16]; |
1258 | }; | 1263 | }; |
1259 | 1264 | ||
1265 | #define CT_PAUSE_IO 65 | ||
1266 | #define CT_RELEASE_IO 66 | ||
1267 | struct aac_pause { | ||
1268 | __le32 command; /* VM_ContainerConfig */ | ||
1269 | __le32 type; /* CT_PAUSE_IO */ | ||
1270 | __le32 timeout; /* 10ms ticks */ | ||
1271 | __le32 min; | ||
1272 | __le32 noRescan; | ||
1273 | __le32 parm3; | ||
1274 | __le32 parm4; | ||
1275 | __le32 count; /* sizeof(((struct aac_pause_reply *)NULL)->data) */ | ||
1276 | }; | ||
1277 | |||
1260 | struct aac_srb | 1278 | struct aac_srb |
1261 | { | 1279 | { |
1262 | __le32 function; | 1280 | __le32 function; |
@@ -1804,6 +1822,10 @@ int aac_get_config_status(struct aac_dev *dev, int commit_flag); | |||
1804 | int aac_get_containers(struct aac_dev *dev); | 1822 | int aac_get_containers(struct aac_dev *dev); |
1805 | int aac_scsi_cmd(struct scsi_cmnd *cmd); | 1823 | int aac_scsi_cmd(struct scsi_cmnd *cmd); |
1806 | int aac_dev_ioctl(struct aac_dev *dev, int cmd, void __user *arg); | 1824 | int aac_dev_ioctl(struct aac_dev *dev, int cmd, void __user *arg); |
1825 | #ifndef shost_to_class | ||
1826 | #define shost_to_class(shost) &shost->shost_classdev | ||
1827 | #endif | ||
1828 | ssize_t aac_show_serial_number(struct class_device *class_dev, char *buf); | ||
1807 | int aac_do_ioctl(struct aac_dev * dev, int cmd, void __user *arg); | 1829 | int aac_do_ioctl(struct aac_dev * dev, int cmd, void __user *arg); |
1808 | int aac_rx_init(struct aac_dev *dev); | 1830 | int aac_rx_init(struct aac_dev *dev); |
1809 | int aac_rkt_init(struct aac_dev *dev); | 1831 | int aac_rkt_init(struct aac_dev *dev); |
@@ -1813,6 +1835,7 @@ int aac_queue_get(struct aac_dev * dev, u32 * index, u32 qid, struct hw_fib * hw | |||
1813 | unsigned int aac_response_normal(struct aac_queue * q); | 1835 | unsigned int aac_response_normal(struct aac_queue * q); |
1814 | unsigned int aac_command_normal(struct aac_queue * q); | 1836 | unsigned int aac_command_normal(struct aac_queue * q); |
1815 | unsigned int aac_intr_normal(struct aac_dev * dev, u32 Index); | 1837 | unsigned int aac_intr_normal(struct aac_dev * dev, u32 Index); |
1838 | int aac_reset_adapter(struct aac_dev * dev, int forced); | ||
1816 | int aac_check_health(struct aac_dev * dev); | 1839 | int aac_check_health(struct aac_dev * dev); |
1817 | int aac_command_thread(void *data); | 1840 | int aac_command_thread(void *data); |
1818 | int aac_close_fib_context(struct aac_dev * dev, struct aac_fib_context *fibctx); | 1841 | int aac_close_fib_context(struct aac_dev * dev, struct aac_fib_context *fibctx); |
@@ -1832,3 +1855,6 @@ extern int aif_timeout; | |||
1832 | extern int expose_physicals; | 1855 | extern int expose_physicals; |
1833 | extern int aac_reset_devices; | 1856 | extern int aac_reset_devices; |
1834 | extern int aac_commit; | 1857 | extern int aac_commit; |
1858 | extern int update_interval; | ||
1859 | extern int check_interval; | ||
1860 | extern int check_reset; | ||