summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/megaraid/megaraid_sas.h
diff options
context:
space:
mode:
authorSumant Patro <sumantp@lsil.com>2006-01-25 12:02:40 -0800
committerJames Bottomley <jejb@mulgrave.(none)>2006-01-29 11:25:30 -0600
commit1341c939222f4d1cc8d9eb2b794f26f089fe0a61 (patch)
treeacafd546c590b8661f9f67b9a293f7742e50bd7c /drivers/scsi/megaraid/megaraid_sas.h
parentcb59aa6a7ca1ae40fd436c45dff568a83f3fab2f (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.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/drivers/scsi/megaraid/megaraid_sas.h b/drivers/scsi/megaraid/megaraid_sas.h
index 67e07d30258..d6d166c0663 100644
--- a/drivers/scsi/megaraid/megaraid_sas.h
+++ b/drivers/scsi/megaraid/megaraid_sas.h
@@ -18,9 +18,9 @@
/**
* MegaRAID SAS Driver meta data
*/
-#define MEGASAS_VERSION "00.00.02.01"
-#define MEGASAS_RELDATE "Dec 19, 2005"
-#define MEGASAS_EXT_VERSION "Mon Dec 19 14:36:26 PST 2005"
+#define MEGASAS_VERSION "00.00.02.02"
+#define MEGASAS_RELDATE "Jan 23, 2006"
+#define MEGASAS_EXT_VERSION "Mon Jan 23 14:09:01 PST 2006"
/*
* =====================================
* MegaRAID SAS MFI firmware definitions
@@ -1012,6 +1012,16 @@ struct megasas_evt_detail {
} __attribute__ ((packed));
+ struct megasas_instance_template {
+ void (*fire_cmd)(dma_addr_t ,u32 ,struct megasas_register_set __iomem *);
+
+ void (*enable_intr)(struct megasas_register_set __iomem *) ;
+
+ int (*clear_intr)(struct megasas_register_set __iomem *);
+
+ u32 (*read_fw_status_reg)(struct megasas_register_set __iomem *);
+ };
+
struct megasas_instance {
u32 *producer;
@@ -1055,6 +1065,8 @@ struct megasas_instance {
u32 fw_outstanding;
u32 hw_crit_error;
spinlock_t instance_lock;
+
+ struct megasas_instance_template *instancet;
};
#define MEGASAS_IS_LOGICAL(scp) \