aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/ipr.h
diff options
context:
space:
mode:
authorWayne Boyer <wayneb@linux.vnet.ibm.com>2010-02-19 16:24:26 -0500
committerJames Bottomley <James.Bottomley@suse.de>2010-03-03 05:35:03 -0500
commit214777ba125e2902c9b84c764be38099c94d0bd2 (patch)
treebc289ce7a58b8a0a67942f5bf35f027771009d89 /drivers/scsi/ipr.h
parentf72919ec2bbbe1c42cdda7857a96c0c40e1d78aa (diff)
[SCSI] ipr: add support for multiple stages of initialization
This patch adds support for using the new IOA initialization feedback register. It also enables 64 bit support in the ipr_ioafp_identify_hrrq and ipr_mask_and_clear_interrupts routines. Signed-off-by: Wayne Boyer <wayneb@linux.vnet.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers/scsi/ipr.h')
-rw-r--r--drivers/scsi/ipr.h25
1 files changed, 25 insertions, 0 deletions
diff --git a/drivers/scsi/ipr.h b/drivers/scsi/ipr.h
index 36736b512846..137217e592fe 100644
--- a/drivers/scsi/ipr.h
+++ b/drivers/scsi/ipr.h
@@ -232,6 +232,13 @@
232#define IPR_DOORBELL 0x82800000 232#define IPR_DOORBELL 0x82800000
233#define IPR_RUNTIME_RESET 0x40000000 233#define IPR_RUNTIME_RESET 0x40000000
234 234
235#define IPR_IPL_INIT_MIN_STAGE_TIME 5
236#define IPR_IPL_INIT_STAGE_UNKNOWN 0x0
237#define IPR_IPL_INIT_STAGE_TRANSOP 0xB0000000
238#define IPR_IPL_INIT_STAGE_MASK 0xff000000
239#define IPR_IPL_INIT_STAGE_TIME_MASK 0x0000ffff
240#define IPR_PCII_IPL_STAGE_CHANGE (0x80000000 >> 0)
241
235#define IPR_PCII_IOA_TRANS_TO_OPER (0x80000000 >> 0) 242#define IPR_PCII_IOA_TRANS_TO_OPER (0x80000000 >> 0)
236#define IPR_PCII_IOARCB_XFER_FAILED (0x80000000 >> 3) 243#define IPR_PCII_IOARCB_XFER_FAILED (0x80000000 >> 3)
237#define IPR_PCII_IOA_UNIT_CHECKED (0x80000000 >> 4) 244#define IPR_PCII_IOA_UNIT_CHECKED (0x80000000 >> 4)
@@ -1196,14 +1203,23 @@ struct ipr_misc_cbs {
1196struct ipr_interrupt_offsets { 1203struct ipr_interrupt_offsets {
1197 unsigned long set_interrupt_mask_reg; 1204 unsigned long set_interrupt_mask_reg;
1198 unsigned long clr_interrupt_mask_reg; 1205 unsigned long clr_interrupt_mask_reg;
1206 unsigned long clr_interrupt_mask_reg32;
1199 unsigned long sense_interrupt_mask_reg; 1207 unsigned long sense_interrupt_mask_reg;
1208 unsigned long sense_interrupt_mask_reg32;
1200 unsigned long clr_interrupt_reg; 1209 unsigned long clr_interrupt_reg;
1210 unsigned long clr_interrupt_reg32;
1201 1211
1202 unsigned long sense_interrupt_reg; 1212 unsigned long sense_interrupt_reg;
1213 unsigned long sense_interrupt_reg32;
1203 unsigned long ioarrin_reg; 1214 unsigned long ioarrin_reg;
1204 unsigned long sense_uproc_interrupt_reg; 1215 unsigned long sense_uproc_interrupt_reg;
1216 unsigned long sense_uproc_interrupt_reg32;
1205 unsigned long set_uproc_interrupt_reg; 1217 unsigned long set_uproc_interrupt_reg;
1218 unsigned long set_uproc_interrupt_reg32;
1206 unsigned long clr_uproc_interrupt_reg; 1219 unsigned long clr_uproc_interrupt_reg;
1220 unsigned long clr_uproc_interrupt_reg32;
1221
1222 unsigned long init_feedback_reg;
1207 1223
1208 unsigned long dump_addr_reg; 1224 unsigned long dump_addr_reg;
1209 unsigned long dump_data_reg; 1225 unsigned long dump_data_reg;
@@ -1212,14 +1228,23 @@ struct ipr_interrupt_offsets {
1212struct ipr_interrupts { 1228struct ipr_interrupts {
1213 void __iomem *set_interrupt_mask_reg; 1229 void __iomem *set_interrupt_mask_reg;
1214 void __iomem *clr_interrupt_mask_reg; 1230 void __iomem *clr_interrupt_mask_reg;
1231 void __iomem *clr_interrupt_mask_reg32;
1215 void __iomem *sense_interrupt_mask_reg; 1232 void __iomem *sense_interrupt_mask_reg;
1233 void __iomem *sense_interrupt_mask_reg32;
1216 void __iomem *clr_interrupt_reg; 1234 void __iomem *clr_interrupt_reg;
1235 void __iomem *clr_interrupt_reg32;
1217 1236
1218 void __iomem *sense_interrupt_reg; 1237 void __iomem *sense_interrupt_reg;
1238 void __iomem *sense_interrupt_reg32;
1219 void __iomem *ioarrin_reg; 1239 void __iomem *ioarrin_reg;
1220 void __iomem *sense_uproc_interrupt_reg; 1240 void __iomem *sense_uproc_interrupt_reg;
1241 void __iomem *sense_uproc_interrupt_reg32;
1221 void __iomem *set_uproc_interrupt_reg; 1242 void __iomem *set_uproc_interrupt_reg;
1243 void __iomem *set_uproc_interrupt_reg32;
1222 void __iomem *clr_uproc_interrupt_reg; 1244 void __iomem *clr_uproc_interrupt_reg;
1245 void __iomem *clr_uproc_interrupt_reg32;
1246
1247 void __iomem *init_feedback_reg;
1223 1248
1224 void __iomem *dump_addr_reg; 1249 void __iomem *dump_addr_reg;
1225 void __iomem *dump_data_reg; 1250 void __iomem *dump_data_reg;