diff options
author | Wayne Boyer <wayneb@linux.vnet.ibm.com> | 2010-02-19 16:24:26 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-03-03 05:35:03 -0500 |
commit | 214777ba125e2902c9b84c764be38099c94d0bd2 (patch) | |
tree | bc289ce7a58b8a0a67942f5bf35f027771009d89 /drivers/scsi/ipr.h | |
parent | f72919ec2bbbe1c42cdda7857a96c0c40e1d78aa (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.h | 25 |
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 { | |||
1196 | struct ipr_interrupt_offsets { | 1203 | struct 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 { | |||
1212 | struct ipr_interrupts { | 1228 | struct 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; |