Merge tag 'rdma-for-3.5' of git://git.kernel.org/pub/scm/linux/kernel/git/roland...
[platform/adaptation/renesas_rcar/renesas_kernel.git] / drivers / net / ethernet / emulex / benet / be_cmds.h
index 54eabd8..9625bf4 100644 (file)
@@ -189,6 +189,8 @@ struct be_mcc_mailbox {
 #define OPCODE_COMMON_GET_PHY_DETAILS                  102
 #define OPCODE_COMMON_SET_DRIVER_FUNCTION_CAP          103
 #define OPCODE_COMMON_GET_CNTL_ADDITIONAL_ATTRIBUTES   121
+#define OPCODE_COMMON_GET_EXT_FAT_CAPABILITES          125
+#define OPCODE_COMMON_SET_EXT_FAT_CAPABILITES          126
 #define OPCODE_COMMON_GET_MAC_LIST                     147
 #define OPCODE_COMMON_SET_MAC_LIST                     148
 #define OPCODE_COMMON_GET_HSW_CONFIG                   152
@@ -225,8 +227,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 */
 };
@@ -1310,9 +1316,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];
@@ -1322,7 +1355,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 {
@@ -1568,6 +1605,56 @@ static inline void *be_erx_stats_from_cmd(struct be_adapter *adapter)
        }
 }
 
+
+/************** get fat capabilites *******************/
+#define MAX_MODULES 27
+#define MAX_MODES 4
+#define MODE_UART 0
+#define FW_LOG_LEVEL_DEFAULT 48
+#define FW_LOG_LEVEL_FATAL 64
+
+struct ext_fat_mode {
+       u8 mode;
+       u8 rsvd0;
+       u16 port_mask;
+       u32 dbg_lvl;
+       u64 fun_mask;
+} __packed;
+
+struct ext_fat_modules {
+       u8 modules_str[32];
+       u32 modules_id;
+       u32 num_modes;
+       struct ext_fat_mode trace_lvl[MAX_MODES];
+} __packed;
+
+struct be_fat_conf_params {
+       u32 max_log_entries;
+       u32 log_entry_size;
+       u8 log_type;
+       u8 max_log_funs;
+       u8 max_log_ports;
+       u8 rsvd0;
+       u32 supp_modes;
+       u32 num_modules;
+       struct ext_fat_modules module[MAX_MODULES];
+} __packed;
+
+struct be_cmd_req_get_ext_fat_caps {
+       struct be_cmd_req_hdr hdr;
+       u32 parameter_type;
+};
+
+struct be_cmd_resp_get_ext_fat_caps {
+       struct be_cmd_resp_hdr hdr;
+       struct be_fat_conf_params get_params;
+};
+
+struct be_cmd_req_set_ext_fat_caps {
+       struct be_cmd_req_hdr hdr;
+       struct be_fat_conf_params set_params;
+};
+
 extern int be_pci_fnum_get(struct be_adapter *adapter);
 extern int be_cmd_POST(struct be_adapter *adapter);
 extern int be_cmd_mac_addr_query(struct be_adapter *adapter, u8 *mac_addr,
@@ -1656,8 +1743,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);
@@ -1674,4 +1760,9 @@ extern int be_cmd_set_hsw_config(struct be_adapter *adapter, u16 pvid,
 extern int be_cmd_get_hsw_config(struct be_adapter *adapter, u16 *pvid,
                        u32 domain, u16 intf_id);
 extern int be_cmd_get_acpi_wol_cap(struct be_adapter *adapter);
+extern int be_cmd_get_ext_fat_capabilites(struct be_adapter *adapter,
+                                         struct be_dma_mem *cmd);
+extern int be_cmd_set_ext_fat_capabilites(struct be_adapter *adapter,
+                                         struct be_dma_mem *cmd,
+                                         struct be_fat_conf_params *cfgs);