be2net: Fix wrong status getting returned for MCC commands
[deliverable/linux.git] / drivers / net / ethernet / emulex / benet / be_cmds.h
index d5b680c56af04756d58600619fc34c5fd6a895a0..944f031bd31eef2433d945082b9c02c5d316147c 100644 (file)
@@ -225,8 +225,12 @@ struct be_cmd_req_hdr {
 #define RESP_HDR_INFO_OPCODE_SHIFT     0       /* bits 0 - 7 */
 #define RESP_HDR_INFO_SUBSYS_SHIFT     8       /* bits 8 - 15 */
 struct be_cmd_resp_hdr {
-       u32 info;               /* dword 0 */
-       u32 status;             /* dword 1 */
+       u8 opcode;              /* dword 0 */
+       u8 subsystem;           /* dword 0 */
+       u8 rsvd[2];             /* dword 0 */
+       u8 status;              /* dword 1 */
+       u8 add_status;          /* dword 1 */
+       u8 rsvd1[2];            /* dword 1 */
        u32 response_length;    /* dword 2 */
        u32 actual_resp_len;    /* dword 3 */
 };
@@ -1309,9 +1313,36 @@ enum {
        PHY_TYPE_KX4_10GB,
        PHY_TYPE_BASET_10GB,
        PHY_TYPE_BASET_1GB,
+       PHY_TYPE_BASEX_1GB,
+       PHY_TYPE_SGMII,
        PHY_TYPE_DISABLED = 255
 };
 
+#define BE_SUPPORTED_SPEED_NONE                0
+#define BE_SUPPORTED_SPEED_10MBPS      1
+#define BE_SUPPORTED_SPEED_100MBPS     2
+#define BE_SUPPORTED_SPEED_1GBPS       4
+#define BE_SUPPORTED_SPEED_10GBPS      8
+
+#define BE_AN_EN                       0x2
+#define BE_PAUSE_SYM_EN                        0x80
+
+/* MAC speed valid values */
+#define SPEED_DEFAULT  0x0
+#define SPEED_FORCED_10GB  0x1
+#define SPEED_FORCED_1GB  0x2
+#define SPEED_AUTONEG_10GB  0x3
+#define SPEED_AUTONEG_1GB  0x4
+#define SPEED_AUTONEG_100MB  0x5
+#define SPEED_AUTONEG_10GB_1GB 0x6
+#define SPEED_AUTONEG_10GB_1GB_100MB 0x7
+#define SPEED_AUTONEG_1GB_100MB  0x8
+#define SPEED_AUTONEG_10MB  0x9
+#define SPEED_AUTONEG_1GB_100MB_10MB 0xa
+#define SPEED_AUTONEG_100MB_10MB 0xb
+#define SPEED_FORCED_100MB  0xc
+#define SPEED_FORCED_10MB  0xd
+
 struct be_cmd_req_get_phy_info {
        struct be_cmd_req_hdr hdr;
        u8 rsvd0[24];
@@ -1321,7 +1352,11 @@ struct be_phy_info {
        u16 phy_type;
        u16 interface_type;
        u32 misc_params;
-       u32 future_use[4];
+       u16 ext_phy_details;
+       u16 rsvd;
+       u16 auto_speeds_supported;
+       u16 fixed_speeds_supported;
+       u32 future_use[2];
 };
 
 struct be_cmd_resp_get_phy_info {
@@ -1655,8 +1690,7 @@ extern int be_cmd_get_seeprom_data(struct be_adapter *adapter,
                                struct be_dma_mem *nonemb_cmd);
 extern int be_cmd_set_loopback(struct be_adapter *adapter, u8 port_num,
                                u8 loopback_type, u8 enable);
-extern int be_cmd_get_phy_info(struct be_adapter *adapter,
-                               struct be_phy_info *phy_info);
+extern int be_cmd_get_phy_info(struct be_adapter *adapter);
 extern int be_cmd_set_qos(struct be_adapter *adapter, u32 bps, u32 domain);
 extern void be_detect_dump_ue(struct be_adapter *adapter);
 extern int be_cmd_get_die_temperature(struct be_adapter *adapter);
This page took 0.025267 seconds and 5 git commands to generate.