]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - drivers/scsi/qla2xxx/qla_def.h
Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target...
[mirror_ubuntu-artful-kernel.git] / drivers / scsi / qla2xxx / qla_def.h
index e6c5bcf2416217e90b11eb0b6200fc5d7925b1fb..47f8b9b49bac310335eb9ab9deebbf6997394873 100644 (file)
@@ -1060,6 +1060,12 @@ struct mbx_cmd_32 {
 #define FSTATE_FATAL_ERROR         4
 #define FSTATE_LOOP_BACK_CONN      5
 
+#define QLA27XX_IMG_STATUS_VER_MAJOR   0x01
+#define QLA27XX_IMG_STATUS_VER_MINOR    0x00
+#define QLA27XX_IMG_STATUS_SIGN   0xFACEFADE
+#define QLA27XX_PRIMARY_IMAGE  1
+#define QLA27XX_SECONDARY_IMAGE    2
+
 /*
  * Port Database structure definition
  * Little endian except where noted.
@@ -1248,13 +1254,41 @@ struct link_statistics {
        uint32_t inval_xmit_word_cnt;
        uint32_t inval_crc_cnt;
        uint32_t lip_cnt;
-       uint32_t unused1[0x1a];
+       uint32_t link_up_cnt;
+       uint32_t link_down_loop_init_tmo;
+       uint32_t link_down_los;
+       uint32_t link_down_loss_rcv_clk;
+       uint32_t reserved0[5];
+       uint32_t port_cfg_chg;
+       uint32_t reserved1[11];
+       uint32_t rsp_q_full;
+       uint32_t atio_q_full;
+       uint32_t drop_ae;
+       uint32_t els_proto_err;
+       uint32_t reserved2;
        uint32_t tx_frames;
        uint32_t rx_frames;
        uint32_t discarded_frames;
        uint32_t dropped_frames;
-       uint32_t unused2[1];
+       uint32_t reserved3;
        uint32_t nos_rcvd;
+       uint32_t reserved4[4];
+       uint32_t tx_prjt;
+       uint32_t rcv_exfail;
+       uint32_t rcv_abts;
+       uint32_t seq_frm_miss;
+       uint32_t corr_err;
+       uint32_t mb_rqst;
+       uint32_t nport_full;
+       uint32_t eofa;
+       uint32_t reserved5;
+       uint32_t fpm_recv_word_cnt_lo;
+       uint32_t fpm_recv_word_cnt_hi;
+       uint32_t fpm_disc_word_cnt_lo;
+       uint32_t fpm_disc_word_cnt_hi;
+       uint32_t fpm_xmit_word_cnt_lo;
+       uint32_t fpm_xmit_word_cnt_hi;
+       uint32_t reserved6[70];
 };
 
 /*
@@ -3434,14 +3468,20 @@ struct qla_hw_data {
        uint32_t        flt_region_flt;
        uint32_t        flt_region_fdt;
        uint32_t        flt_region_boot;
+       uint32_t        flt_region_boot_sec;
        uint32_t        flt_region_fw;
+       uint32_t        flt_region_fw_sec;
        uint32_t        flt_region_vpd_nvram;
        uint32_t        flt_region_vpd;
+       uint32_t        flt_region_vpd_sec;
        uint32_t        flt_region_nvram;
        uint32_t        flt_region_npiv_conf;
        uint32_t        flt_region_gold_fw;
        uint32_t        flt_region_fcp_prio;
        uint32_t        flt_region_bootload;
+       uint32_t        flt_region_img_status_pri;
+       uint32_t        flt_region_img_status_sec;
+       uint8_t         active_image;
 
        /* Needed for BEACON */
        uint16_t        beacon_blink_led;
@@ -3572,6 +3612,7 @@ typedef struct scsi_qla_host {
                uint32_t        delete_progress:1;
 
                uint32_t        fw_tgt_reported:1;
+               uint32_t        bbcr_enable:1;
        } flags;
 
        atomic_t        loop_state;
@@ -3704,8 +3745,19 @@ typedef struct scsi_qla_host {
        atomic_t        vref_count;
        struct qla8044_reset_template reset_tmplt;
        struct qla_tgt_counters tgt_counters;
+       uint16_t        bbcr;
 } scsi_qla_host_t;
 
+struct qla27xx_image_status {
+       uint8_t image_status_mask;
+       uint16_t generation_number;
+       uint8_t reserved[3];
+       uint8_t ver_minor;
+       uint8_t ver_major;
+       uint32_t checksum;
+       uint32_t signature;
+} __packed;
+
 #define SET_VP_IDX     1
 #define SET_AL_PA      2
 #define RESET_VP_IDX   3