aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/megaraid/megaraid_sas.h
diff options
context:
space:
mode:
authorSumant Patro <sumantp@lsil.com>2006-01-25 15:02:40 -0500
committerJames Bottomley <jejb@mulgrave.(none)>2006-01-29 12:25:30 -0500
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 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
1015struct megasas_instance { 1025struct 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) \