be2net: fix sparse warnings in be_cmd_req_port_type{}
[cascardo/linux.git] / drivers / net / ethernet / emulex / benet / be_cmds.h
index 5284b82..b064c50 100644 (file)
@@ -57,7 +57,8 @@ enum mcc_base_status {
        MCC_STATUS_ILLEGAL_FIELD = 3,
        MCC_STATUS_INSUFFICIENT_BUFFER = 4,
        MCC_STATUS_UNAUTHORIZED_REQUEST = 5,
-       MCC_STATUS_NOT_SUPPORTED = 66
+       MCC_STATUS_NOT_SUPPORTED = 66,
+       MCC_STATUS_FEATURE_NOT_SUPPORTED = 68
 };
 
 /* Additional status */
@@ -1004,8 +1005,8 @@ struct be_cmd_resp_link_status {
 /*    Identifies the type of port attached to NIC     */
 struct be_cmd_req_port_type {
        struct be_cmd_req_hdr hdr;
-       u32 page_num;
-       u32 port;
+       __le32 page_num;
+       __le32 port;
 };
 
 enum {
@@ -1013,28 +1014,23 @@ enum {
        TR_PAGE_A2 = 0xa2
 };
 
+/* From SFF-8436 QSFP+ spec */
+#define        QSFP_PLUS_CABLE_TYPE_OFFSET     0x83
+#define        QSFP_PLUS_CR4_CABLE             0x8
+#define        QSFP_PLUS_SR4_CABLE             0x4
+#define        QSFP_PLUS_LR4_CABLE             0x2
+
+/* From SFF-8472 spec */
+#define        SFP_PLUS_SFF_8472_COMP          0x5E
+#define        SFP_PLUS_CABLE_TYPE_OFFSET      0x8
+#define        SFP_PLUS_COPPER_CABLE           0x4
+
+#define PAGE_DATA_LEN   256
 struct be_cmd_resp_port_type {
        struct be_cmd_resp_hdr hdr;
        u32 page_num;
        u32 port;
-       struct data {
-               u8 identifier;
-               u8 identifier_ext;
-               u8 connector;
-               u8 transceiver[8];
-               u8 rsvd0[3];
-               u8 length_km;
-               u8 length_hm;
-               u8 length_om1;
-               u8 length_om2;
-               u8 length_cu;
-               u8 length_cu_m;
-               u8 vendor_name[16];
-               u8 rsvd;
-               u8 vendor_oui[3];
-               u8 vendor_pn[16];
-               u8 vendor_rev[4];
-       } data;
+       u8  page_data[PAGE_DATA_LEN];
 };
 
 /******************** Get FW Version *******************/
@@ -1367,6 +1363,9 @@ enum {
        PHY_TYPE_BASET_1GB,
        PHY_TYPE_BASEX_1GB,
        PHY_TYPE_SGMII,
+       PHY_TYPE_QSFP,
+       PHY_TYPE_KR4_40GB,
+       PHY_TYPE_KR2_20GB,
        PHY_TYPE_DISABLED = 255
 };
 
@@ -1375,6 +1374,7 @@ enum {
 #define BE_SUPPORTED_SPEED_100MBPS     2
 #define BE_SUPPORTED_SPEED_1GBPS       4
 #define BE_SUPPORTED_SPEED_10GBPS      8
+#define BE_SUPPORTED_SPEED_40GBPS      0x20
 
 #define BE_AN_EN                       0x2
 #define BE_PAUSE_SYM_EN                        0x80
@@ -2066,6 +2066,9 @@ int be_cmd_set_beacon_state(struct be_adapter *adapter, u8 port_num, u8 beacon,
                            u8 status, u8 state);
 int be_cmd_get_beacon_state(struct be_adapter *adapter, u8 port_num,
                            u32 *state);
+int be_cmd_read_port_transceiver_data(struct be_adapter *adapter,
+                                     u8 page_num, u8 *data);
+int be_cmd_query_cable_type(struct be_adapter *adapter);
 int be_cmd_write_flashrom(struct be_adapter *adapter, struct be_dma_mem *cmd,
                          u32 flash_oper, u32 flash_opcode, u32 buf_size);
 int lancer_cmd_write_object(struct be_adapter *adapter, struct be_dma_mem *cmd,
@@ -2101,7 +2104,7 @@ int be_cmd_get_die_temperature(struct be_adapter *adapter);
 int be_cmd_get_cntl_attributes(struct be_adapter *adapter);
 int be_cmd_req_native_mode(struct be_adapter *adapter);
 int be_cmd_get_reg_len(struct be_adapter *adapter, u32 *log_size);
-void be_cmd_get_regs(struct be_adapter *adapter, u32 buf_len, void *buf);
+int be_cmd_get_regs(struct be_adapter *adapter, u32 buf_len, void *buf);
 int be_cmd_get_fn_privileges(struct be_adapter *adapter, u32 *privilege,
                             u32 domain);
 int be_cmd_set_fn_privileges(struct be_adapter *adapter, u32 privileges,