diff options
Diffstat (limited to 'drivers/scsi/aacraid/aacraid.h')
-rw-r--r-- | drivers/scsi/aacraid/aacraid.h | 76 |
1 files changed, 30 insertions, 46 deletions
diff --git a/drivers/scsi/aacraid/aacraid.h b/drivers/scsi/aacraid/aacraid.h index 39ecd0d22eb0..45ca3e801619 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 2423 | 15 | # define AAC_DRIVER_BUILD 2437 |
16 | # define AAC_DRIVER_BRANCH "-mh3" | 16 | # define AAC_DRIVER_BRANCH "-mh4" |
17 | #endif | 17 | #endif |
18 | #define MAXIMUM_NUM_CONTAINERS 32 | 18 | #define MAXIMUM_NUM_CONTAINERS 32 |
19 | 19 | ||
@@ -48,49 +48,13 @@ struct diskparm | |||
48 | 48 | ||
49 | 49 | ||
50 | /* | 50 | /* |
51 | * DON'T CHANGE THE ORDER, this is set by the firmware | 51 | * Firmware constants |
52 | */ | 52 | */ |
53 | 53 | ||
54 | #define CT_NONE 0 | 54 | #define CT_NONE 0 |
55 | #define CT_VOLUME 1 | ||
56 | #define CT_MIRROR 2 | ||
57 | #define CT_STRIPE 3 | ||
58 | #define CT_RAID5 4 | ||
59 | #define CT_SSRW 5 | ||
60 | #define CT_SSRO 6 | ||
61 | #define CT_MORPH 7 | ||
62 | #define CT_PASSTHRU 8 | ||
63 | #define CT_RAID4 9 | ||
64 | #define CT_RAID10 10 /* stripe of mirror */ | ||
65 | #define CT_RAID00 11 /* stripe of stripe */ | ||
66 | #define CT_VOLUME_OF_MIRRORS 12 /* volume of mirror */ | ||
67 | #define CT_PSEUDO_RAID 13 /* really raid4 */ | ||
68 | #define CT_LAST_VOLUME_TYPE 14 | ||
69 | #define CT_OK 218 | 55 | #define CT_OK 218 |
70 | |||
71 | /* | ||
72 | * Types of objects addressable in some fashion by the client. | ||
73 | * This is a superset of those objects handled just by the filesystem | ||
74 | * and includes "raw" objects that an administrator would use to | ||
75 | * configure containers and filesystems. | ||
76 | */ | ||
77 | |||
78 | #define FT_REG 1 /* regular file */ | ||
79 | #define FT_DIR 2 /* directory */ | ||
80 | #define FT_BLK 3 /* "block" device - reserved */ | ||
81 | #define FT_CHR 4 /* "character special" device - reserved */ | ||
82 | #define FT_LNK 5 /* symbolic link */ | ||
83 | #define FT_SOCK 6 /* socket */ | ||
84 | #define FT_FIFO 7 /* fifo */ | ||
85 | #define FT_FILESYS 8 /* ADAPTEC's "FSA"(tm) filesystem */ | 56 | #define FT_FILESYS 8 /* ADAPTEC's "FSA"(tm) filesystem */ |
86 | #define FT_DRIVE 9 /* physical disk - addressable in scsi by bus/id/lun */ | 57 | #define FT_DRIVE 9 /* physical disk - addressable in scsi by bus/id/lun */ |
87 | #define FT_SLICE 10 /* virtual disk - raw volume - slice */ | ||
88 | #define FT_PARTITION 11 /* FSA partition - carved out of a slice - building block for containers */ | ||
89 | #define FT_VOLUME 12 /* Container - Volume Set */ | ||
90 | #define FT_STRIPE 13 /* Container - Stripe Set */ | ||
91 | #define FT_MIRROR 14 /* Container - Mirror Set */ | ||
92 | #define FT_RAID5 15 /* Container - Raid 5 Set */ | ||
93 | #define FT_DATABASE 16 /* Storage object with "foreign" content manager */ | ||
94 | 58 | ||
95 | /* | 59 | /* |
96 | * Host side memory scatter gather list | 60 | * Host side memory scatter gather list |
@@ -497,6 +461,7 @@ struct adapter_ops | |||
497 | void (*adapter_enable_int)(struct aac_dev *dev); | 461 | void (*adapter_enable_int)(struct aac_dev *dev); |
498 | int (*adapter_sync_cmd)(struct aac_dev *dev, u32 command, u32 p1, u32 p2, u32 p3, u32 p4, u32 p5, u32 p6, u32 *status, u32 *r1, u32 *r2, u32 *r3, u32 *r4); | 462 | int (*adapter_sync_cmd)(struct aac_dev *dev, u32 command, u32 p1, u32 p2, u32 p3, u32 p4, u32 p5, u32 p6, u32 *status, u32 *r1, u32 *r2, u32 *r3, u32 *r4); |
499 | int (*adapter_check_health)(struct aac_dev *dev); | 463 | int (*adapter_check_health)(struct aac_dev *dev); |
464 | int (*adapter_restart)(struct aac_dev *dev, int bled); | ||
500 | /* Transport operations */ | 465 | /* Transport operations */ |
501 | int (*adapter_ioremap)(struct aac_dev * dev, u32 size); | 466 | int (*adapter_ioremap)(struct aac_dev * dev, u32 size); |
502 | irqreturn_t (*adapter_intr)(int irq, void *dev_id); | 467 | irqreturn_t (*adapter_intr)(int irq, void *dev_id); |
@@ -833,7 +798,7 @@ struct fib { | |||
833 | */ | 798 | */ |
834 | struct list_head fiblink; | 799 | struct list_head fiblink; |
835 | void *data; | 800 | void *data; |
836 | struct hw_fib *hw_fib; /* Actual shared object */ | 801 | struct hw_fib *hw_fib_va; /* Actual shared object */ |
837 | dma_addr_t hw_fib_pa; /* physical address of hw_fib*/ | 802 | dma_addr_t hw_fib_pa; /* physical address of hw_fib*/ |
838 | }; | 803 | }; |
839 | 804 | ||
@@ -878,10 +843,25 @@ struct aac_supplement_adapter_info | |||
878 | __le32 Version; | 843 | __le32 Version; |
879 | __le32 FeatureBits; | 844 | __le32 FeatureBits; |
880 | u8 SlotNumber; | 845 | u8 SlotNumber; |
881 | u8 ReservedPad0[0]; | 846 | u8 ReservedPad0[3]; |
882 | u8 BuildDate[12]; | 847 | u8 BuildDate[12]; |
883 | __le32 CurrentNumberPorts; | 848 | __le32 CurrentNumberPorts; |
884 | __le32 ReservedGrowth[24]; | 849 | struct { |
850 | u8 AssemblyPn[8]; | ||
851 | u8 FruPn[8]; | ||
852 | u8 BatteryFruPn[8]; | ||
853 | u8 EcVersionString[8]; | ||
854 | u8 Tsid[12]; | ||
855 | } VpdInfo; | ||
856 | __le32 FlashFirmwareRevision; | ||
857 | __le32 FlashFirmwareBuild; | ||
858 | __le32 RaidTypeMorphOptions; | ||
859 | __le32 FlashFirmwareBootRevision; | ||
860 | __le32 FlashFirmwareBootBuild; | ||
861 | u8 MfgPcbaSerialNo[12]; | ||
862 | u8 MfgWWNName[8]; | ||
863 | __le32 MoreFeatureBits; | ||
864 | __le32 ReservedGrowth[1]; | ||
885 | }; | 865 | }; |
886 | #define AAC_FEATURE_FALCON 0x00000010 | 866 | #define AAC_FEATURE_FALCON 0x00000010 |
887 | #define AAC_SIS_VERSION_V3 3 | 867 | #define AAC_SIS_VERSION_V3 3 |
@@ -970,7 +950,6 @@ struct aac_dev | |||
970 | struct fib *fibs; | 950 | struct fib *fibs; |
971 | 951 | ||
972 | struct fib *free_fib; | 952 | struct fib *free_fib; |
973 | struct fib *timeout_fib; | ||
974 | spinlock_t fib_lock; | 953 | spinlock_t fib_lock; |
975 | 954 | ||
976 | struct aac_queue_block *queues; | 955 | struct aac_queue_block *queues; |
@@ -1060,6 +1039,9 @@ struct aac_dev | |||
1060 | #define aac_adapter_check_health(dev) \ | 1039 | #define aac_adapter_check_health(dev) \ |
1061 | (dev)->a_ops.adapter_check_health(dev) | 1040 | (dev)->a_ops.adapter_check_health(dev) |
1062 | 1041 | ||
1042 | #define aac_adapter_restart(dev,bled) \ | ||
1043 | (dev)->a_ops.adapter_restart(dev,bled) | ||
1044 | |||
1063 | #define aac_adapter_ioremap(dev, size) \ | 1045 | #define aac_adapter_ioremap(dev, size) \ |
1064 | (dev)->a_ops.adapter_ioremap(dev, size) | 1046 | (dev)->a_ops.adapter_ioremap(dev, size) |
1065 | 1047 | ||
@@ -1516,8 +1498,7 @@ struct aac_mntent { | |||
1516 | struct creation_info create_info; /* if applicable */ | 1498 | struct creation_info create_info; /* if applicable */ |
1517 | __le32 capacity; | 1499 | __le32 capacity; |
1518 | __le32 vol; /* substrate structure */ | 1500 | __le32 vol; /* substrate structure */ |
1519 | __le32 obj; /* FT_FILESYS, | 1501 | __le32 obj; /* FT_FILESYS, etc. */ |
1520 | FT_DATABASE, etc. */ | ||
1521 | __le32 state; /* unready for mounting, | 1502 | __le32 state; /* unready for mounting, |
1522 | readonly, etc. */ | 1503 | readonly, etc. */ |
1523 | union aac_contentinfo fileinfo; /* Info specific to content | 1504 | union aac_contentinfo fileinfo; /* Info specific to content |
@@ -1817,7 +1798,7 @@ int aac_fib_send(u16 command, struct fib * context, unsigned long size, int prio | |||
1817 | int aac_consumer_get(struct aac_dev * dev, struct aac_queue * q, struct aac_entry **entry); | 1798 | int aac_consumer_get(struct aac_dev * dev, struct aac_queue * q, struct aac_entry **entry); |
1818 | void aac_consumer_free(struct aac_dev * dev, struct aac_queue * q, u32 qnum); | 1799 | void aac_consumer_free(struct aac_dev * dev, struct aac_queue * q, u32 qnum); |
1819 | int aac_fib_complete(struct fib * context); | 1800 | int aac_fib_complete(struct fib * context); |
1820 | #define fib_data(fibctx) ((void *)(fibctx)->hw_fib->data) | 1801 | #define fib_data(fibctx) ((void *)(fibctx)->hw_fib_va->data) |
1821 | struct aac_dev *aac_init_adapter(struct aac_dev *dev); | 1802 | struct aac_dev *aac_init_adapter(struct aac_dev *dev); |
1822 | int aac_get_config_status(struct aac_dev *dev, int commit_flag); | 1803 | int aac_get_config_status(struct aac_dev *dev, int commit_flag); |
1823 | int aac_get_containers(struct aac_dev *dev); | 1804 | int aac_get_containers(struct aac_dev *dev); |
@@ -1840,8 +1821,11 @@ struct aac_driver_ident* aac_get_driver_ident(int devtype); | |||
1840 | int aac_get_adapter_info(struct aac_dev* dev); | 1821 | int aac_get_adapter_info(struct aac_dev* dev); |
1841 | int aac_send_shutdown(struct aac_dev *dev); | 1822 | int aac_send_shutdown(struct aac_dev *dev); |
1842 | int aac_probe_container(struct aac_dev *dev, int cid); | 1823 | int aac_probe_container(struct aac_dev *dev, int cid); |
1824 | int _aac_rx_init(struct aac_dev *dev); | ||
1825 | int aac_rx_select_comm(struct aac_dev *dev, int comm); | ||
1843 | extern int numacb; | 1826 | extern int numacb; |
1844 | extern int acbsize; | 1827 | extern int acbsize; |
1845 | extern char aac_driver_version[]; | 1828 | extern char aac_driver_version[]; |
1846 | extern int startup_timeout; | 1829 | extern int startup_timeout; |
1847 | extern int aif_timeout; | 1830 | extern int aif_timeout; |
1831 | extern int expose_physicals; | ||