ixgbe/base: new FW values
authorWenzhuo Lu <wenzhuo.lu@intel.com>
Fri, 20 Nov 2015 07:17:57 +0000 (15:17 +0800)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Thu, 14 Jan 2016 08:43:21 +0000 (09:43 +0100)
This patch addes some new defines for FW, and includes some minor change.

Signed-off-by: Wenzhuo Lu <wenzhuo.lu@intel.com>
drivers/net/ixgbe/base/ixgbe_common.c
drivers/net/ixgbe/base/ixgbe_phy.c
drivers/net/ixgbe/base/ixgbe_type.h
drivers/net/ixgbe/base/ixgbe_x550.h

index 6fb02ea..0c060f0 100644 (file)
@@ -2243,7 +2243,7 @@ s32 ixgbe_update_eeprom_checksum_generic(struct ixgbe_hw *hw)
  *  ixgbe_validate_mac_addr - Validate MAC address
  *  @mac_addr: pointer to MAC address.
  *
- *  Tests a MAC address to ensure it is a valid Individual Address
+ *  Tests a MAC address to ensure it is a valid Individual Address.
  **/
 s32 ixgbe_validate_mac_addr(u8 *mac_addr)
 {
@@ -2253,16 +2253,13 @@ s32 ixgbe_validate_mac_addr(u8 *mac_addr)
 
        /* Make sure it is not a multicast address */
        if (IXGBE_IS_MULTICAST(mac_addr)) {
-               DEBUGOUT("MAC address is multicast\n");
                status = IXGBE_ERR_INVALID_MAC_ADDR;
        /* Not a broadcast address */
        } else if (IXGBE_IS_BROADCAST(mac_addr)) {
-               DEBUGOUT("MAC address is broadcast\n");
                status = IXGBE_ERR_INVALID_MAC_ADDR;
        /* Reject the zero address */
        } else if (mac_addr[0] == 0 && mac_addr[1] == 0 && mac_addr[2] == 0 &&
                   mac_addr[3] == 0 && mac_addr[4] == 0 && mac_addr[5] == 0) {
-               DEBUGOUT("MAC address is all zeros\n");
                status = IXGBE_ERR_INVALID_MAC_ADDR;
        }
        return status;
index 32fe159..512bc9b 100644 (file)
@@ -494,7 +494,7 @@ s32 ixgbe_get_phy_id(struct ixgbe_hw *hw)
 
 /**
  *  ixgbe_get_phy_type_from_id - Get the phy type
- *  @hw: pointer to hardware structure
+ *  @phy_id: PHY ID information
  *
  **/
 enum ixgbe_phy_type ixgbe_get_phy_type_from_id(u32 phy_id)
@@ -526,8 +526,6 @@ enum ixgbe_phy_type ixgbe_get_phy_type_from_id(u32 phy_id)
                phy_type = ixgbe_phy_unknown;
                break;
        }
-
-       DEBUGOUT1("phy type found is %d\n", phy_type);
        return phy_type;
 }
 
index d6b641d..14896d7 100644 (file)
@@ -2949,6 +2949,20 @@ enum ixgbe_fdir_pballoc_type {
 #define FW_DISABLE_RXEN_CMD            0xDE
 #define FW_DISABLE_RXEN_LEN            0x1
 #define FW_PHY_MGMT_REQ_CMD            0x20
+#define FW_PHY_TOKEN_REQ_CMD           0xA
+#define FW_PHY_TOKEN_REQ_LEN           2
+#define FW_PHY_TOKEN_REQ               0
+#define FW_PHY_TOKEN_REL               1
+#define FW_PHY_TOKEN_OK                        1
+#define FW_PHY_TOKEN_RETRY             0x80
+#define FW_PHY_TOKEN_DELAY             5       /* milliseconds */
+#define FW_PHY_TOKEN_WAIT              5       /* seconds */
+#define FW_PHY_TOKEN_RETRIES ((FW_PHY_TOKEN_WAIT * 1000) / FW_PHY_TOKEN_DELAY)
+#define FW_INT_PHY_REQ_CMD             0xB
+#define FW_INT_PHY_REQ_LEN             10
+#define FW_INT_PHY_REQ_READ            0
+#define FW_INT_PHY_REQ_WRITE           1
+
 /* Host Interface Command Structures */
 
 struct ixgbe_hic_hdr {
@@ -3017,6 +3031,28 @@ struct ixgbe_hic_disable_rxen {
        u16 pad3;
 };
 
+struct ixgbe_hic_phy_token_req {
+       struct ixgbe_hic_hdr hdr;
+       u8 port_number;
+       u8 command_type;
+       u16 pad;
+};
+
+struct ixgbe_hic_internal_phy_req {
+       struct ixgbe_hic_hdr hdr;
+       u8 port_number;
+       u8 command_type;
+       u16 address;
+       u16 rsv1;
+       u32 write_data;
+       u16 pad;
+};
+
+struct ixgbe_hic_internal_phy_resp {
+       struct ixgbe_hic_hdr hdr;
+       u32 read_data;
+};
+
 
 /* Transmit Descriptor - Legacy */
 struct ixgbe_legacy_tx_desc {
@@ -3142,6 +3178,7 @@ struct ixgbe_adv_tx_context_desc {
 #define IXGBE_ADVTXD_TUCMD_L4T_UDP     0x00000000 /* L4 Packet TYPE of UDP */
 #define IXGBE_ADVTXD_TUCMD_L4T_TCP     0x00000800 /* L4 Packet TYPE of TCP */
 #define IXGBE_ADVTXD_TUCMD_L4T_SCTP    0x00001000 /* L4 Packet TYPE of SCTP */
+#define IXGBE_ADVTXD_TUCMD_L4T_RSV     0x00001800 /* RSV L4 Packet TYPE */
 #define IXGBE_ADVTXD_TUCMD_MKRREQ      0x00002000 /* req Markers and CRC */
 #define IXGBE_ADVTXD_POPTS_IPSEC       0x00000400 /* IPSec offload request */
 #define IXGBE_ADVTXD_TUCMD_IPSEC_TYPE_ESP 0x00002000 /* IPSec Type ESP */
@@ -3959,6 +3996,8 @@ struct ixgbe_hw {
 #define IXGBE_ERR_FEATURE_NOT_SUPPORTED                -36
 #define IXGBE_ERR_EEPROM_PROTECTED_REGION      -37
 #define IXGBE_ERR_FDIR_CMD_INCOMPLETE          -38
+#define IXGBE_ERR_FW_RESP_INVALID              -39
+#define IXGBE_ERR_TOKEN_RETRY                  -40
 
 #define IXGBE_NOT_IMPLEMENTED                  0x7FFFFFFF
 
index 193acb6..a436686 100644 (file)
@@ -68,7 +68,7 @@ void ixgbe_set_ethertype_anti_spoofing_X550(struct ixgbe_hw *hw,
 s32 ixgbe_write_iosf_sb_reg_x550(struct ixgbe_hw *hw, u32 reg_addr,
                                 u32 device_type, u32 data);
 s32 ixgbe_read_iosf_sb_reg_x550(struct ixgbe_hw *hw, u32 reg_addr,
-                               u32 device_type, u32 *data);
+       u32 device_type, u32 *data);
 void ixgbe_disable_mdd_X550(struct ixgbe_hw *hw);
 void ixgbe_enable_mdd_X550(struct ixgbe_hw *hw);
 void ixgbe_mdd_event_X550(struct ixgbe_hw *hw, u32 *vf_bitmap);