]> www.pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - drivers/scsi/lpfc/lpfc_hw.h
[SCSI] lpfc 8.1.2: Handling of ELS commands RRQ, RPS, RPL and LIRR correctly
[linux-2.6-omap-h63xx.git] / drivers / scsi / lpfc / lpfc_hw.h
index 1ea565e0561ffe0432fed2e751a59f21e6ea5d8f..e613dd07d2ade6e8ad5dd058348b18d977a151e2 100644 (file)
@@ -454,10 +454,13 @@ struct serv_parm {        /* Structure is in Big Endian format */
 #define ELS_CMD_ADISC     0x52000000
 #define ELS_CMD_FARP      0x54000000
 #define ELS_CMD_FARPR     0x55000000
+#define ELS_CMD_RPS       0x56000000
+#define ELS_CMD_RPL       0x57000000
 #define ELS_CMD_FAN       0x60000000
 #define ELS_CMD_RSCN      0x61040000
 #define ELS_CMD_SCR       0x62000000
 #define ELS_CMD_RNID      0x78000000
+#define ELS_CMD_LIRR      0x7A000000
 #else  /*  __LITTLE_ENDIAN_BITFIELD */
 #define ELS_CMD_MASK      0xffff
 #define ELS_RSP_MASK      0xff
@@ -486,10 +489,13 @@ struct serv_parm {        /* Structure is in Big Endian format */
 #define ELS_CMD_ADISC     0x52
 #define ELS_CMD_FARP      0x54
 #define ELS_CMD_FARPR     0x55
+#define ELS_CMD_RPS       0x56
+#define ELS_CMD_RPL       0x57
 #define ELS_CMD_FAN       0x60
 #define ELS_CMD_RSCN      0x0461
 #define ELS_CMD_SCR       0x62
 #define ELS_CMD_RNID      0x78
+#define ELS_CMD_LIRR      0x7A
 #endif
 
 /*
@@ -758,12 +764,40 @@ typedef struct _RNID {            /* Structure is in Big Endian format */
        } un;
 } RNID;
 
-typedef struct _RRQ {          /* Structure is in Big Endian format */
-       uint32_t SID;
-       uint16_t Oxid;
-       uint16_t Rxid;
-       uint8_t resv[32];       /* optional association hdr */
-} RRQ;
+typedef struct  _RPS {         /* Structure is in Big Endian format */
+       union {
+               uint32_t portNum;
+               struct lpfc_name portName;
+       } un;
+} RPS;
+
+typedef struct  _RPS_RSP {     /* Structure is in Big Endian format */
+       uint16_t rsvd1;
+       uint16_t portStatus;
+       uint32_t linkFailureCnt;
+       uint32_t lossSyncCnt;
+       uint32_t lossSignalCnt;
+       uint32_t primSeqErrCnt;
+       uint32_t invalidXmitWord;
+       uint32_t crcCnt;
+} RPS_RSP;
+
+typedef struct  _RPL {         /* Structure is in Big Endian format */
+       uint32_t maxsize;
+       uint32_t index;
+} RPL;
+
+typedef struct  _PORT_NUM_BLK {
+       uint32_t portNum;
+       uint32_t portID;
+       struct lpfc_name portName;
+} PORT_NUM_BLK;
+
+typedef struct  _RPL_RSP {     /* Structure is in Big Endian format */
+       uint32_t listLen;
+       uint32_t index;
+       PORT_NUM_BLK port_num_blk;
+} RPL_RSP;
 
 /* This is used for RSCN command */
 typedef struct _D_ID {         /* Structure is in Big Endian format */
@@ -804,7 +838,6 @@ typedef struct _ELS_PKT {   /* Structure is in Big Endian format */
                FARP farp;      /* Payload for FARP/ACC */
                FAN fan;        /* Payload for FAN */
                SCR scr;        /* Payload for SCR/ACC */
-               RRQ rrq;        /* Payload for RRQ */
                RNID rnid;      /* Payload for RNID */
                uint8_t pad[128 - 4];   /* Pad out to payload of 128 bytes */
        } un;