diff options
author | Sumant Patro <sumantp@lsil.com> | 2006-01-25 15:02:40 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.(none)> | 2006-01-29 12:25:30 -0500 |
commit | 1341c939222f4d1cc8d9eb2b794f26f089fe0a61 (patch) | |
tree | acafd546c590b8661f9f67b9a293f7742e50bd7c /drivers/scsi/megaraid/megaraid_sas.h | |
parent | cb59aa6a7ca1ae40fd436c45dff568a83f3fab2f (diff) |
[SCSI] megaraid_sas: new template defined to represent each type of controllers
This patch defines a new template to represent each type of
controllers (identified by the processor used). The template has
members that is set with appropriate values during driver
initialisation. This change is done to support new controllers with
minimal change to existing code. In future, for a new controller
support, a template will be declared and its members initialised
appropriately.
Signed-off-by: Sumant Patro <Sumant.Patro@lsil.com>
Rejections fixed and
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/scsi/megaraid/megaraid_sas.h')
-rw-r--r-- | drivers/scsi/megaraid/megaraid_sas.h | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h index 67e07d30258f..d6d166c0663f 100644 --- a/drivers/scsi/megaraid/megaraid_sas.h +++ b/drivers/scsi/megaraid/megaraid_sas.h | |||
@@ -18,9 +18,9 @@ | |||
18 | /** | 18 | /** |
19 | * MegaRAID SAS Driver meta data | 19 | * MegaRAID SAS Driver meta data |
20 | */ | 20 | */ |
21 | #define MEGASAS_VERSION "00.00.02.01" | 21 | #define MEGASAS_VERSION "00.00.02.02" |
22 | #define MEGASAS_RELDATE "Dec 19, 2005" | 22 | #define MEGASAS_RELDATE "Jan 23, 2006" |
23 | #define MEGASAS_EXT_VERSION "Mon Dec 19 14:36:26 PST 2005" | 23 | #define MEGASAS_EXT_VERSION "Mon Jan 23 14:09:01 PST 2006" |
24 | /* | 24 | /* |
25 | * ===================================== | 25 | * ===================================== |
26 | * MegaRAID SAS MFI firmware definitions | 26 | * MegaRAID SAS MFI firmware definitions |
@@ -1012,6 +1012,16 @@ struct megasas_evt_detail { | |||
1012 | 1012 | ||
1013 | } __attribute__ ((packed)); | 1013 | } __attribute__ ((packed)); |
1014 | 1014 | ||
1015 | struct megasas_instance_template { | ||
1016 | void (*fire_cmd)(dma_addr_t ,u32 ,struct megasas_register_set __iomem *); | ||
1017 | |||
1018 | void (*enable_intr)(struct megasas_register_set __iomem *) ; | ||
1019 | |||
1020 | int (*clear_intr)(struct megasas_register_set __iomem *); | ||
1021 | |||
1022 | u32 (*read_fw_status_reg)(struct megasas_register_set __iomem *); | ||
1023 | }; | ||
1024 | |||
1015 | struct megasas_instance { | 1025 | struct megasas_instance { |
1016 | 1026 | ||
1017 | u32 *producer; | 1027 | u32 *producer; |
@@ -1055,6 +1065,8 @@ struct megasas_instance { | |||
1055 | u32 fw_outstanding; | 1065 | u32 fw_outstanding; |
1056 | u32 hw_crit_error; | 1066 | u32 hw_crit_error; |
1057 | spinlock_t instance_lock; | 1067 | spinlock_t instance_lock; |
1068 | |||
1069 | struct megasas_instance_template *instancet; | ||
1058 | }; | 1070 | }; |
1059 | 1071 | ||
1060 | #define MEGASAS_IS_LOGICAL(scp) \ | 1072 | #define MEGASAS_IS_LOGICAL(scp) \ |