aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/aacraid/aacraid.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/aacraid/aacraid.h')
-rw-r--r--drivers/scsi/aacraid/aacraid.h40
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};
1218struct aac_write_reply 1223struct 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
1267struct 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
1260struct aac_srb 1278struct 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);
1804int aac_get_containers(struct aac_dev *dev); 1822int aac_get_containers(struct aac_dev *dev);
1805int aac_scsi_cmd(struct scsi_cmnd *cmd); 1823int aac_scsi_cmd(struct scsi_cmnd *cmd);
1806int aac_dev_ioctl(struct aac_dev *dev, int cmd, void __user *arg); 1824int 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
1828ssize_t aac_show_serial_number(struct class_device *class_dev, char *buf);
1807int aac_do_ioctl(struct aac_dev * dev, int cmd, void __user *arg); 1829int aac_do_ioctl(struct aac_dev * dev, int cmd, void __user *arg);
1808int aac_rx_init(struct aac_dev *dev); 1830int aac_rx_init(struct aac_dev *dev);
1809int aac_rkt_init(struct aac_dev *dev); 1831int 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
1813unsigned int aac_response_normal(struct aac_queue * q); 1835unsigned int aac_response_normal(struct aac_queue * q);
1814unsigned int aac_command_normal(struct aac_queue * q); 1836unsigned int aac_command_normal(struct aac_queue * q);
1815unsigned int aac_intr_normal(struct aac_dev * dev, u32 Index); 1837unsigned int aac_intr_normal(struct aac_dev * dev, u32 Index);
1838int aac_reset_adapter(struct aac_dev * dev, int forced);
1816int aac_check_health(struct aac_dev * dev); 1839int aac_check_health(struct aac_dev * dev);
1817int aac_command_thread(void *data); 1840int aac_command_thread(void *data);
1818int aac_close_fib_context(struct aac_dev * dev, struct aac_fib_context *fibctx); 1841int aac_close_fib_context(struct aac_dev * dev, struct aac_fib_context *fibctx);
@@ -1832,3 +1855,6 @@ extern int aif_timeout;
1832extern int expose_physicals; 1855extern int expose_physicals;
1833extern int aac_reset_devices; 1856extern int aac_reset_devices;
1834extern int aac_commit; 1857extern int aac_commit;
1858extern int update_interval;
1859extern int check_interval;
1860extern int check_reset;