net/atlantic: remove extra error check
[dpdk.git] / drivers / net / atlantic / atl_types.h
index 37ad43a..19aaf37 100644 (file)
@@ -59,6 +59,39 @@ struct aq_rss_parameters {
        u8 indirection_table[HW_ATL_B0_RSS_REDIRECTION_MAX];
 };
 
+/* Macsec stuff */
+struct aq_macsec_config {
+       struct {
+               u32 macsec_enabled;
+               u32 encryption_enabled;
+               u32 replay_protection_enabled;
+       } common;
+
+       struct {
+               u32 idx;
+               u32 mac[2]; /* 6 bytes */
+       } txsc;
+
+       struct {
+               u32 idx;
+               u32 an; /* association number on the local side */
+               u32 pn; /* packet number on the local side */
+               u32 key[4]; /* 128 bit key */
+       } txsa;
+
+       struct {
+               u32 mac[2]; /* 6 bytes */
+               u32 pi;
+       } rxsc;
+
+       struct {
+               u32 idx;
+               u32 an; /* association number on the remote side */
+               u32 pn; /* packet number on the remote side */
+               u32 key[4]; /* 128 bit key */
+       } rxsa;
+};
+
 struct aq_hw_cfg_s {
        bool is_lro;
        bool is_rss;
@@ -70,9 +103,12 @@ struct aq_hw_cfg_s {
        int irq_mask;
        unsigned int vecs;
 
+       bool vlan_strip;
+       uint32_t vlan_filter[HW_ATL_B0_MAX_VLAN_IDS];
        uint32_t flow_control;
 
        struct aq_rss_parameters aq_rss;
+       struct aq_macsec_config aq_macsec;
 };
 
 struct aq_hw_s {
@@ -86,11 +122,15 @@ struct aq_hw_s {
        void *mmio;
 
        struct aq_hw_link_status_s aq_link_status;
+       bool is_autoneg;
 
        struct hw_aq_atl_utils_mbox mbox;
        struct hw_atl_stats_s last_stats;
        struct aq_stats_s curr_stats;
 
+       u32 caps_lo;
+
+       u64 speed;
        unsigned int chip_features;
        u32 fw_ver_actual;
        u32 mbox_addr;
@@ -129,13 +169,61 @@ struct aq_fw_ops {
        int (*get_eee_rate)(struct aq_hw_s *self, u32 *rate,
                        u32 *supported_rates);
 
+       int (*get_flow_control)(struct aq_hw_s *self, u32 *fc);
        int (*set_flow_control)(struct aq_hw_s *self);
 
        int (*led_control)(struct aq_hw_s *self, u32 mode);
 
-       int (*get_eeprom)(struct aq_hw_s *self, u32 *data, u32 len);
+       int (*get_eeprom)(struct aq_hw_s *self, int dev_addr,
+                         u32 *data, u32 len, u32 offset);
+
+       int (*set_eeprom)(struct aq_hw_s *self, int dev_addr,
+                         u32 *data, u32 len, u32 offset);
+
+       int (*send_macsec_req)(struct aq_hw_s *self,
+                              struct macsec_msg_fw_request *req,
+                              struct macsec_msg_fw_response *response);
+};
 
-       int (*set_eeprom)(struct aq_hw_s *self, u32 *data, u32 len);
+struct atl_sw_stats {
+       u64 crcerrs;
+       u64 errbc;
+       u64 mspdc;
+       u64 mpctotal;
+       u64 mpc[8];
+       u64 mlfc;
+       u64 mrfc;
+       u64 rlec;
+       u64 lxontxc;
+       u64 lxonrxc;
+       u64 lxofftxc;
+       u64 lxoffrxc;
+       u64 pxontxc[8];
+       u64 pxonrxc[8];
+       u64 pxofftxc[8];
+       u64 pxoffrxc[8];
+       u64 gprc;
+       u64 bprc;
+       u64 mprc;
+       u64 gptc;
+       u64 gorc;
+       u64 gotc;
+       u64 tor;
+       u64 tpr;
+       u64 tpt;
+       u64 mptc;
+       u64 bptc;
+       u64 xec;
+       u64 fccrc;
+       u64 ldpcec;
+       u64 pcrc8ec;
+
+       u64 rx_nombuf;
+       u64 q_ipackets[RTE_ETHDEV_QUEUE_STAT_CNTRS];
+       u64 q_opackets[RTE_ETHDEV_QUEUE_STAT_CNTRS];
+       u64 q_ibytes[RTE_ETHDEV_QUEUE_STAT_CNTRS];
+       u64 q_obytes[RTE_ETHDEV_QUEUE_STAT_CNTRS];
+       u64 q_errors[RTE_ETHDEV_QUEUE_STAT_CNTRS];
 };
 
 #endif