net/i40e: fix bitmap free
[dpdk.git] / drivers / net / qede / qede_if.h
index 42560d5..c5ae3fb 100644 (file)
@@ -1,9 +1,7 @@
-/*
- * Copyright (c) 2016 QLogic Corporation.
+/* SPDX-License-Identifier: BSD-3-Clause
+ * Copyright (c) 2016 - 2018 Cavium Inc.
  * All rights reserved.
- * www.qlogic.com
- *
- * See LICENSE.qede_pmd for copyright and licensing details.
+ * www.cavium.com
  */
 
 #ifndef _QEDE_IF_H
@@ -19,7 +17,7 @@ enum ecore_int_mode;
 
 struct qed_dev_info {
        uint8_t num_hwfns;
-       uint8_t hw_mac[ETHER_ADDR_LEN];
+       uint8_t hw_mac[RTE_ETHER_ADDR_LEN];
        bool is_mf_default;
 
        /* FW version */
@@ -40,12 +38,22 @@ struct qed_dev_info {
 #define QED_MFW_VERSION_3_OFFSET       24
 
        uint32_t flash_size;
-       uint8_t mf_mode;
+       bool b_arfs_capable;
+       bool b_inter_pf_switch;
        bool tx_switching;
        u16 mtu;
 
        bool smart_an;
 
+       /* MBI version */
+       uint32_t mbi_version;
+#define QED_MBI_VERSION_0_MASK          0x000000FF
+#define QED_MBI_VERSION_0_OFFSET        0
+#define QED_MBI_VERSION_1_MASK          0x0000FF00
+#define QED_MBI_VERSION_1_OFFSET        8
+#define QED_MBI_VERSION_2_MASK          0x00FF0000
+#define QED_MBI_VERSION_2_OFFSET        16
+
        /* Out param for qede */
        bool vxlan_enable;
        bool gre_enable;
@@ -60,7 +68,7 @@ struct qed_dev_eth_info {
        uint8_t num_queues;
        uint8_t num_tc;
 
-       struct ether_addr port_mac;
+       struct rte_ether_addr port_mac;
        uint16_t num_vlan_filters;
        uint32_t num_mac_filters;
 
@@ -83,6 +91,7 @@ struct qed_link_params {
 #define QED_LINK_OVERRIDE_SPEED_ADV_SPEEDS      (1 << 1)
 #define QED_LINK_OVERRIDE_SPEED_FORCED_SPEED    (1 << 2)
 #define QED_LINK_OVERRIDE_PAUSE_CONFIG          (1 << 3)
+#define QED_LINK_OVERRIDE_EEE_CONFIG           (1 << 5)
        uint32_t override_flags;
        bool autoneg;
        uint32_t adv_speeds;
@@ -91,6 +100,7 @@ struct qed_link_params {
 #define QED_LINK_PAUSE_RX_ENABLE                (1 << 1)
 #define QED_LINK_PAUSE_TX_ENABLE                (1 << 2)
        uint32_t pause_config;
+       struct ecore_link_eee_params eee;
 };
 
 struct qed_link_output {
@@ -101,9 +111,15 @@ struct qed_link_output {
        uint32_t speed;         /* In Mb/s */
        uint32_t adv_speed;     /* Speed mask */
        uint8_t duplex;         /* In DUPLEX defs */
-       uint8_t port;           /* In PORT defs */
+       uint16_t port;          /* In PORT defs */
        bool autoneg;
        uint32_t pause_config;
+
+       /* EEE - capability & param */
+       bool eee_supported;
+       bool eee_active;
+       u8 sup_caps;
+       struct ecore_link_eee_params eee;
 };
 
 struct qed_slowpath_params {
@@ -173,6 +189,51 @@ struct qed_common_ops {
                              uint32_t dp_module, uint8_t dp_level);
 
        int (*send_drv_state)(struct ecore_dev *edev, bool active);
+
+       /* ###############  DEBUG *************************/
+
+       int     (*dbg_grc)(struct ecore_dev       *edev,
+                          void          *buffer,
+                          u32            *num_dumped_bytes);
+       int     (*dbg_grc_size)(struct ecore_dev *edev);
+
+       int     (*dbg_idle_chk)(struct ecore_dev  *edev,
+                               void        *buffer,
+                               u32          *num_dumped_bytes);
+       int     (*dbg_idle_chk_size)(struct ecore_dev *edev);
+
+       int     (*dbg_reg_fifo)(struct ecore_dev  *edev,
+                               void        *buffer,
+                               u32          *num_dumped_bytes);
+       int     (*dbg_reg_fifo_size)(struct ecore_dev *edev);
+
+       int     (*dbg_mcp_trace)(struct ecore_dev *edev,
+                                void      *buffer,
+                                u32        *num_dumped_bytes);
+       int     (*dbg_mcp_trace_size)(struct ecore_dev *edev);
+
+       int     (*dbg_protection_override)(struct ecore_dev *edev, void *buffer,
+                                          u32 *num_dumped_bytes);
+       int     (*dbg_protection_override_size)(struct ecore_dev *edev);
+
+       int     (*dbg_igu_fifo_size)(struct ecore_dev *edev);
+       int     (*dbg_igu_fifo)(struct ecore_dev *edev, void *buffer,
+                               u32 *num_dumped_bytes);
+
+       int     (*dbg_fw_asserts)(struct ecore_dev *edev, void *buffer,
+                                 u32 *num_dumped_bytes);
+
+       int     (*dbg_fw_asserts_size)(struct ecore_dev *edev);
+
+       int     (*dbg_ilt)(struct ecore_dev *edev, void *buffer,
+                          u32 *num_dumped_bytes);
+
+       int     (*dbg_ilt_size)(struct ecore_dev *edev);
+
+       u8      (*dbg_get_debug_engine)(struct ecore_dev *edev);
+       void    (*dbg_set_debug_engine)(struct ecore_dev  *edev,
+                                       int          engine_number);
+
 };
 
 /* Externs */