vserver 1.9.5.x5
[linux-2.6.git] / drivers / scsi / ipr.h
index e91afc4..2f723a7 100644 (file)
 #include <linux/kref.h>
 #include <scsi/scsi.h>
 #include <scsi/scsi_cmnd.h>
-#ifdef CONFIG_KDB
-#include <linux/kdb.h>
-#endif
 
 /*
  * Literals
  */
-#define IPR_DRIVER_VERSION "2.0.11"
-#define IPR_DRIVER_DATE "(August 3, 2004)"
+#define IPR_DRIVER_VERSION "2.0.12"
+#define IPR_DRIVER_DATE "(December 14, 2004)"
 
 /*
  * IPR_DBG_TRACE: Setting this to 1 will turn on some general function tracing
 /*
  * Adapter Commands
  */
+#define IPR_QUERY_RSRC_STATE                           0xC2
 #define IPR_RESET_DEVICE                               0xC3
 #define        IPR_RESET_TYPE_SELECT                           0x80
 #define        IPR_LUN_RESET                                   0x40
@@ -749,7 +747,7 @@ struct ipr_misc_cbs {
        struct ipr_supported_device supp_dev;
 };
 
-struct ipr_interrupts {
+struct ipr_interrupt_offsets {
        unsigned long set_interrupt_mask_reg;
        unsigned long clr_interrupt_mask_reg;
        unsigned long sense_interrupt_mask_reg;
@@ -762,10 +760,23 @@ struct ipr_interrupts {
        unsigned long clr_uproc_interrupt_reg;
 };
 
+struct ipr_interrupts {
+       void __iomem *set_interrupt_mask_reg;
+       void __iomem *clr_interrupt_mask_reg;
+       void __iomem *sense_interrupt_mask_reg;
+       void __iomem *clr_interrupt_reg;
+
+       void __iomem *sense_interrupt_reg;
+       void __iomem *ioarrin_reg;
+       void __iomem *sense_uproc_interrupt_reg;
+       void __iomem *set_uproc_interrupt_reg;
+       void __iomem *clr_uproc_interrupt_reg;
+};
+
 struct ipr_chip_cfg_t {
        u32 mailbox;
        u8 cache_line_size;
-       struct ipr_interrupts regs;
+       struct ipr_interrupt_offsets regs;
 };
 
 enum ipr_shutdown_type {
@@ -884,12 +895,11 @@ struct ipr_ioa_cfg {
 
        const struct ipr_chip_cfg_t *chip_cfg;
 
-       unsigned long hdw_dma_regs;     /* iomapped PCI memory space */
+       void __iomem *hdw_dma_regs;     /* iomapped PCI memory space */
        unsigned long hdw_dma_regs_pci; /* raw PCI memory space */
-       unsigned long ioa_mailbox;
+       void __iomem *ioa_mailbox;
        struct ipr_interrupts regs;
 
-       u32 pci_cfg_buf[64];
        u16 saved_pcix_cmd_reg;
        u16 reset_retries;
 
@@ -1047,20 +1057,20 @@ struct ipr_error_table_t {
 };
 
 struct ipr_software_inq_lid_info {
-    u32  load_id;
-    u32  timestamp[3];
+       u32 load_id;
+       u32 timestamp[3];
 }__attribute__((packed, aligned (4)));
 
 struct ipr_ucode_image_header {
-    u32 header_length;
-    u32 lid_table_offset;
-    u8 major_release;
-    u8 card_type;
-    u8 minor_release[2];
-    u8 reserved[20];
-    char eyecatcher[16];
-    u32 num_lids;
-    struct ipr_software_inq_lid_info lid[1];
+       u32 header_length;
+       u32 lid_table_offset;
+       u8 major_release;
+       u8 card_type;
+       u8 minor_release[2];
+       u8 reserved[20];
+       char eyecatcher[16];
+       u32 num_lids;
+       struct ipr_software_inq_lid_info lid[1];
 }__attribute__((packed, aligned (4)));
 
 /*
@@ -1072,18 +1082,6 @@ struct ipr_ucode_image_header {
 #define IPR_DBG_CMD(CMD)
 #endif
 
-#define ipr_breakpoint_data KERN_ERR IPR_NAME\
-": %s: %s: Line: %d ioa_cfg: %p\n", __FILE__, \
-__FUNCTION__, __LINE__, ioa_cfg
-
-#if defined(CONFIG_KDB) && !defined(CONFIG_PPC_ISERIES)
-#define ipr_breakpoint {printk(ipr_breakpoint_data); KDB_ENTER();}
-#define ipr_breakpoint_or_die {printk(ipr_breakpoint_data); KDB_ENTER();}
-#else
-#define ipr_breakpoint
-#define ipr_breakpoint_or_die panic(ipr_breakpoint_data)
-#endif
-
 #ifdef CONFIG_SCSI_IPR_TRACE
 #define ipr_create_trace_file(kobj, attr) sysfs_create_bin_file(kobj, attr)
 #define ipr_remove_trace_file(kobj, attr) sysfs_remove_bin_file(kobj, attr)