ixgbe: remove unused functions
Remove functions that are declared, but not used in the driver. This patch fixes warnings reported by `make namespacecheck` Reported by Stephen Hemminger CC: Stephen Hemminger <shemminger@vyatta.com> Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com> Tested-by: Stephen Ko <stephen.s.ko@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
ee87a82a28
commit
f32f837b75
|
@ -1414,92 +1414,6 @@ s32 ixgbe_atr_set_dst_ipv4_82599(struct ixgbe_atr_input *input, u32 dst_addr)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_atr_set_src_ipv6_82599 - Sets the source IPv6 address
|
|
||||||
* @input: input stream to modify
|
|
||||||
* @src_addr_1: the first 4 bytes of the IP address to load
|
|
||||||
* @src_addr_2: the second 4 bytes of the IP address to load
|
|
||||||
* @src_addr_3: the third 4 bytes of the IP address to load
|
|
||||||
* @src_addr_4: the fourth 4 bytes of the IP address to load
|
|
||||||
**/
|
|
||||||
s32 ixgbe_atr_set_src_ipv6_82599(struct ixgbe_atr_input *input,
|
|
||||||
u32 src_addr_1, u32 src_addr_2,
|
|
||||||
u32 src_addr_3, u32 src_addr_4)
|
|
||||||
{
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET] = src_addr_4 & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 1] =
|
|
||||||
(src_addr_4 >> 8) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 2] =
|
|
||||||
(src_addr_4 >> 16) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 3] = src_addr_4 >> 24;
|
|
||||||
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 4] = src_addr_3 & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 5] =
|
|
||||||
(src_addr_3 >> 8) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 6] =
|
|
||||||
(src_addr_3 >> 16) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 7] = src_addr_3 >> 24;
|
|
||||||
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 8] = src_addr_2 & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 9] =
|
|
||||||
(src_addr_2 >> 8) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 10] =
|
|
||||||
(src_addr_2 >> 16) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 11] = src_addr_2 >> 24;
|
|
||||||
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 12] = src_addr_1 & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 13] =
|
|
||||||
(src_addr_1 >> 8) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 14] =
|
|
||||||
(src_addr_1 >> 16) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_SRC_IPV6_OFFSET + 15] = src_addr_1 >> 24;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_atr_set_dst_ipv6_82599 - Sets the destination IPv6 address
|
|
||||||
* @input: input stream to modify
|
|
||||||
* @dst_addr_1: the first 4 bytes of the IP address to load
|
|
||||||
* @dst_addr_2: the second 4 bytes of the IP address to load
|
|
||||||
* @dst_addr_3: the third 4 bytes of the IP address to load
|
|
||||||
* @dst_addr_4: the fourth 4 bytes of the IP address to load
|
|
||||||
**/
|
|
||||||
s32 ixgbe_atr_set_dst_ipv6_82599(struct ixgbe_atr_input *input,
|
|
||||||
u32 dst_addr_1, u32 dst_addr_2,
|
|
||||||
u32 dst_addr_3, u32 dst_addr_4)
|
|
||||||
{
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET] = dst_addr_4 & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 1] =
|
|
||||||
(dst_addr_4 >> 8) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 2] =
|
|
||||||
(dst_addr_4 >> 16) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 3] = dst_addr_4 >> 24;
|
|
||||||
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 4] = dst_addr_3 & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 5] =
|
|
||||||
(dst_addr_3 >> 8) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 6] =
|
|
||||||
(dst_addr_3 >> 16) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 7] = dst_addr_3 >> 24;
|
|
||||||
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 8] = dst_addr_2 & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 9] =
|
|
||||||
(dst_addr_2 >> 8) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 10] =
|
|
||||||
(dst_addr_2 >> 16) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 11] = dst_addr_2 >> 24;
|
|
||||||
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 12] = dst_addr_1 & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 13] =
|
|
||||||
(dst_addr_1 >> 8) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 14] =
|
|
||||||
(dst_addr_1 >> 16) & 0xff;
|
|
||||||
input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 15] = dst_addr_1 >> 24;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ixgbe_atr_set_src_port_82599 - Sets the source port
|
* ixgbe_atr_set_src_port_82599 - Sets the source port
|
||||||
* @input: input stream to modify
|
* @input: input stream to modify
|
||||||
|
@ -1539,19 +1453,6 @@ s32 ixgbe_atr_set_flex_byte_82599(struct ixgbe_atr_input *input, u16 flex_byte)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_atr_set_vm_pool_82599 - Sets the Virtual Machine pool
|
|
||||||
* @input: input stream to modify
|
|
||||||
* @vm_pool: the Virtual Machine pool to load
|
|
||||||
**/
|
|
||||||
s32 ixgbe_atr_set_vm_pool_82599(struct ixgbe_atr_input *input,
|
|
||||||
u8 vm_pool)
|
|
||||||
{
|
|
||||||
input->byte_stream[IXGBE_ATR_VM_POOL_OFFSET] = vm_pool;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ixgbe_atr_set_l4type_82599 - Sets the layer 4 packet type
|
* ixgbe_atr_set_l4type_82599 - Sets the layer 4 packet type
|
||||||
* @input: input stream to modify
|
* @input: input stream to modify
|
||||||
|
@ -1644,41 +1545,6 @@ static s32 ixgbe_atr_get_src_ipv6_82599(struct ixgbe_atr_input *input,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_atr_get_dst_ipv6_82599 - Gets the destination IPv6 address
|
|
||||||
* @input: input stream to search
|
|
||||||
* @dst_addr_1: the first 4 bytes of the IP address to load
|
|
||||||
* @dst_addr_2: the second 4 bytes of the IP address to load
|
|
||||||
* @dst_addr_3: the third 4 bytes of the IP address to load
|
|
||||||
* @dst_addr_4: the fourth 4 bytes of the IP address to load
|
|
||||||
**/
|
|
||||||
s32 ixgbe_atr_get_dst_ipv6_82599(struct ixgbe_atr_input *input,
|
|
||||||
u32 *dst_addr_1, u32 *dst_addr_2,
|
|
||||||
u32 *dst_addr_3, u32 *dst_addr_4)
|
|
||||||
{
|
|
||||||
*dst_addr_1 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 12];
|
|
||||||
*dst_addr_1 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 13] << 8;
|
|
||||||
*dst_addr_1 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 14] << 16;
|
|
||||||
*dst_addr_1 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 15] << 24;
|
|
||||||
|
|
||||||
*dst_addr_2 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 8];
|
|
||||||
*dst_addr_2 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 9] << 8;
|
|
||||||
*dst_addr_2 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 10] << 16;
|
|
||||||
*dst_addr_2 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 11] << 24;
|
|
||||||
|
|
||||||
*dst_addr_3 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 4];
|
|
||||||
*dst_addr_3 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 5] << 8;
|
|
||||||
*dst_addr_3 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 6] << 16;
|
|
||||||
*dst_addr_3 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 7] << 24;
|
|
||||||
|
|
||||||
*dst_addr_4 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET];
|
|
||||||
*dst_addr_4 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 1] << 8;
|
|
||||||
*dst_addr_4 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 2] << 16;
|
|
||||||
*dst_addr_4 = input->byte_stream[IXGBE_ATR_DST_IPV6_OFFSET + 3] << 24;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ixgbe_atr_get_src_port_82599 - Gets the source port
|
* ixgbe_atr_get_src_port_82599 - Gets the source port
|
||||||
* @input: input stream to modify
|
* @input: input stream to modify
|
||||||
|
@ -1731,19 +1597,6 @@ static s32 ixgbe_atr_get_flex_byte_82599(struct ixgbe_atr_input *input,
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_atr_get_vm_pool_82599 - Gets the Virtual Machine pool
|
|
||||||
* @input: input stream to modify
|
|
||||||
* @vm_pool: the Virtual Machine pool to load
|
|
||||||
**/
|
|
||||||
s32 ixgbe_atr_get_vm_pool_82599(struct ixgbe_atr_input *input,
|
|
||||||
u8 *vm_pool)
|
|
||||||
{
|
|
||||||
*vm_pool = input->byte_stream[IXGBE_ATR_VM_POOL_OFFSET];
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ixgbe_atr_get_l4type_82599 - Gets the layer 4 packet type
|
* ixgbe_atr_get_l4type_82599 - Gets the layer 4 packet type
|
||||||
* @input: input stream to modify
|
* @input: input stream to modify
|
||||||
|
|
|
@ -2704,48 +2704,3 @@ s32 ixgbe_check_mac_link_generic(struct ixgbe_hw *hw, ixgbe_link_speed *speed,
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_get_wwn_prefix_generic - Get alternative WWNN/WWPN prefix from
|
|
||||||
* the EEPROM
|
|
||||||
* @hw: pointer to hardware structure
|
|
||||||
* @wwnn_prefix: the alternative WWNN prefix
|
|
||||||
* @wwpn_prefix: the alternative WWPN prefix
|
|
||||||
*
|
|
||||||
* This function will read the EEPROM from the alternative SAN MAC address
|
|
||||||
* block to check the support for the alternative WWNN/WWPN prefix support.
|
|
||||||
**/
|
|
||||||
s32 ixgbe_get_wwn_prefix_generic(struct ixgbe_hw *hw, u16 *wwnn_prefix,
|
|
||||||
u16 *wwpn_prefix)
|
|
||||||
{
|
|
||||||
u16 offset, caps;
|
|
||||||
u16 alt_san_mac_blk_offset;
|
|
||||||
|
|
||||||
/* clear output first */
|
|
||||||
*wwnn_prefix = 0xFFFF;
|
|
||||||
*wwpn_prefix = 0xFFFF;
|
|
||||||
|
|
||||||
/* check if alternative SAN MAC is supported */
|
|
||||||
hw->eeprom.ops.read(hw, IXGBE_ALT_SAN_MAC_ADDR_BLK_PTR,
|
|
||||||
&alt_san_mac_blk_offset);
|
|
||||||
|
|
||||||
if ((alt_san_mac_blk_offset == 0) ||
|
|
||||||
(alt_san_mac_blk_offset == 0xFFFF))
|
|
||||||
goto wwn_prefix_out;
|
|
||||||
|
|
||||||
/* check capability in alternative san mac address block */
|
|
||||||
offset = alt_san_mac_blk_offset + IXGBE_ALT_SAN_MAC_ADDR_CAPS_OFFSET;
|
|
||||||
hw->eeprom.ops.read(hw, offset, &caps);
|
|
||||||
if (!(caps & IXGBE_ALT_SAN_MAC_ADDR_CAPS_ALTWWN))
|
|
||||||
goto wwn_prefix_out;
|
|
||||||
|
|
||||||
/* get the corresponding prefix for WWNN/WWPN */
|
|
||||||
offset = alt_san_mac_blk_offset + IXGBE_ALT_SAN_MAC_ADDR_WWNN_OFFSET;
|
|
||||||
hw->eeprom.ops.read(hw, offset, wwnn_prefix);
|
|
||||||
|
|
||||||
offset = alt_san_mac_blk_offset + IXGBE_ALT_SAN_MAC_ADDR_WWPN_OFFSET;
|
|
||||||
hw->eeprom.ops.read(hw, offset, wwpn_prefix);
|
|
||||||
|
|
||||||
wwn_prefix_out:
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
|
@ -33,98 +33,6 @@
|
||||||
#include "ixgbe_dcb_82598.h"
|
#include "ixgbe_dcb_82598.h"
|
||||||
#include "ixgbe_dcb_82599.h"
|
#include "ixgbe_dcb_82599.h"
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_config - Struct containing DCB settings.
|
|
||||||
* @dcb_config: Pointer to DCB config structure
|
|
||||||
*
|
|
||||||
* This function checks DCB rules for DCB settings.
|
|
||||||
* The following rules are checked:
|
|
||||||
* 1. The sum of bandwidth percentages of all Bandwidth Groups must total 100%.
|
|
||||||
* 2. The sum of bandwidth percentages of all Traffic Classes within a Bandwidth
|
|
||||||
* Group must total 100.
|
|
||||||
* 3. A Traffic Class should not be set to both Link Strict Priority
|
|
||||||
* and Group Strict Priority.
|
|
||||||
* 4. Link strict Bandwidth Groups can only have link strict traffic classes
|
|
||||||
* with zero bandwidth.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_check_config(struct ixgbe_dcb_config *dcb_config)
|
|
||||||
{
|
|
||||||
struct tc_bw_alloc *p;
|
|
||||||
s32 ret_val = 0;
|
|
||||||
u8 i, j, bw = 0, bw_id;
|
|
||||||
u8 bw_sum[2][MAX_BW_GROUP];
|
|
||||||
bool link_strict[2][MAX_BW_GROUP];
|
|
||||||
|
|
||||||
memset(bw_sum, 0, sizeof(bw_sum));
|
|
||||||
memset(link_strict, 0, sizeof(link_strict));
|
|
||||||
|
|
||||||
/* First Tx, then Rx */
|
|
||||||
for (i = 0; i < 2; i++) {
|
|
||||||
/* Check each traffic class for rule violation */
|
|
||||||
for (j = 0; j < MAX_TRAFFIC_CLASS; j++) {
|
|
||||||
p = &dcb_config->tc_config[j].path[i];
|
|
||||||
|
|
||||||
bw = p->bwg_percent;
|
|
||||||
bw_id = p->bwg_id;
|
|
||||||
|
|
||||||
if (bw_id >= MAX_BW_GROUP) {
|
|
||||||
ret_val = DCB_ERR_CONFIG;
|
|
||||||
goto err_config;
|
|
||||||
}
|
|
||||||
if (p->prio_type == prio_link) {
|
|
||||||
link_strict[i][bw_id] = true;
|
|
||||||
/* Link strict should have zero bandwidth */
|
|
||||||
if (bw) {
|
|
||||||
ret_val = DCB_ERR_LS_BW_NONZERO;
|
|
||||||
goto err_config;
|
|
||||||
}
|
|
||||||
} else if (!bw) {
|
|
||||||
/*
|
|
||||||
* Traffic classes without link strict
|
|
||||||
* should have non-zero bandwidth.
|
|
||||||
*/
|
|
||||||
ret_val = DCB_ERR_TC_BW_ZERO;
|
|
||||||
goto err_config;
|
|
||||||
}
|
|
||||||
bw_sum[i][bw_id] += bw;
|
|
||||||
}
|
|
||||||
|
|
||||||
bw = 0;
|
|
||||||
|
|
||||||
/* Check each bandwidth group for rule violation */
|
|
||||||
for (j = 0; j < MAX_BW_GROUP; j++) {
|
|
||||||
bw += dcb_config->bw_percentage[i][j];
|
|
||||||
/*
|
|
||||||
* Sum of bandwidth percentages of all traffic classes
|
|
||||||
* within a Bandwidth Group must total 100 except for
|
|
||||||
* link strict group (zero bandwidth).
|
|
||||||
*/
|
|
||||||
if (link_strict[i][j]) {
|
|
||||||
if (bw_sum[i][j]) {
|
|
||||||
/*
|
|
||||||
* Link strict group should have zero
|
|
||||||
* bandwidth.
|
|
||||||
*/
|
|
||||||
ret_val = DCB_ERR_LS_BWG_NONZERO;
|
|
||||||
goto err_config;
|
|
||||||
}
|
|
||||||
} else if (bw_sum[i][j] != BW_PERCENT &&
|
|
||||||
bw_sum[i][j] != 0) {
|
|
||||||
ret_val = DCB_ERR_TC_BW;
|
|
||||||
goto err_config;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (bw != BW_PERCENT) {
|
|
||||||
ret_val = DCB_ERR_BW_GROUP;
|
|
||||||
goto err_config;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
err_config:
|
|
||||||
return ret_val;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ixgbe_dcb_calculate_tc_credits - Calculates traffic class credits
|
* ixgbe_dcb_calculate_tc_credits - Calculates traffic class credits
|
||||||
* @ixgbe_dcb_config: Struct containing DCB settings.
|
* @ixgbe_dcb_config: Struct containing DCB settings.
|
||||||
|
@ -202,133 +110,6 @@ out:
|
||||||
return ret_val;
|
return ret_val;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_get_tc_stats - Returns status of each traffic class
|
|
||||||
* @hw: pointer to hardware structure
|
|
||||||
* @stats: pointer to statistics structure
|
|
||||||
* @tc_count: Number of elements in bwg_array.
|
|
||||||
*
|
|
||||||
* This function returns the status data for each of the Traffic Classes in use.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_get_tc_stats(struct ixgbe_hw *hw, struct ixgbe_hw_stats *stats,
|
|
||||||
u8 tc_count)
|
|
||||||
{
|
|
||||||
s32 ret = 0;
|
|
||||||
if (hw->mac.type == ixgbe_mac_82598EB)
|
|
||||||
ret = ixgbe_dcb_get_tc_stats_82598(hw, stats, tc_count);
|
|
||||||
else if (hw->mac.type == ixgbe_mac_82599EB)
|
|
||||||
ret = ixgbe_dcb_get_tc_stats_82599(hw, stats, tc_count);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_get_pfc_stats - Returns CBFC status of each traffic class
|
|
||||||
* hw - pointer to hardware structure
|
|
||||||
* stats - pointer to statistics structure
|
|
||||||
* tc_count - Number of elements in bwg_array.
|
|
||||||
*
|
|
||||||
* This function returns the CBFC status data for each of the Traffic Classes.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_get_pfc_stats(struct ixgbe_hw *hw, struct ixgbe_hw_stats *stats,
|
|
||||||
u8 tc_count)
|
|
||||||
{
|
|
||||||
s32 ret = 0;
|
|
||||||
if (hw->mac.type == ixgbe_mac_82598EB)
|
|
||||||
ret = ixgbe_dcb_get_pfc_stats_82598(hw, stats, tc_count);
|
|
||||||
else if (hw->mac.type == ixgbe_mac_82599EB)
|
|
||||||
ret = ixgbe_dcb_get_pfc_stats_82599(hw, stats, tc_count);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_config_rx_arbiter - Config Rx arbiter
|
|
||||||
* @hw: pointer to hardware structure
|
|
||||||
* @dcb_config: pointer to ixgbe_dcb_config structure
|
|
||||||
*
|
|
||||||
* Configure Rx Data Arbiter and credits for each traffic class.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_config_rx_arbiter(struct ixgbe_hw *hw,
|
|
||||||
struct ixgbe_dcb_config *dcb_config)
|
|
||||||
{
|
|
||||||
s32 ret = 0;
|
|
||||||
if (hw->mac.type == ixgbe_mac_82598EB)
|
|
||||||
ret = ixgbe_dcb_config_rx_arbiter_82598(hw, dcb_config);
|
|
||||||
else if (hw->mac.type == ixgbe_mac_82599EB)
|
|
||||||
ret = ixgbe_dcb_config_rx_arbiter_82599(hw, dcb_config);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_config_tx_desc_arbiter - Config Tx Desc arbiter
|
|
||||||
* @hw: pointer to hardware structure
|
|
||||||
* @dcb_config: pointer to ixgbe_dcb_config structure
|
|
||||||
*
|
|
||||||
* Configure Tx Descriptor Arbiter and credits for each traffic class.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_config_tx_desc_arbiter(struct ixgbe_hw *hw,
|
|
||||||
struct ixgbe_dcb_config *dcb_config)
|
|
||||||
{
|
|
||||||
s32 ret = 0;
|
|
||||||
if (hw->mac.type == ixgbe_mac_82598EB)
|
|
||||||
ret = ixgbe_dcb_config_tx_desc_arbiter_82598(hw, dcb_config);
|
|
||||||
else if (hw->mac.type == ixgbe_mac_82599EB)
|
|
||||||
ret = ixgbe_dcb_config_tx_desc_arbiter_82599(hw, dcb_config);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_config_tx_data_arbiter - Config Tx data arbiter
|
|
||||||
* @hw: pointer to hardware structure
|
|
||||||
* @dcb_config: pointer to ixgbe_dcb_config structure
|
|
||||||
*
|
|
||||||
* Configure Tx Data Arbiter and credits for each traffic class.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_config_tx_data_arbiter(struct ixgbe_hw *hw,
|
|
||||||
struct ixgbe_dcb_config *dcb_config)
|
|
||||||
{
|
|
||||||
s32 ret = 0;
|
|
||||||
if (hw->mac.type == ixgbe_mac_82598EB)
|
|
||||||
ret = ixgbe_dcb_config_tx_data_arbiter_82598(hw, dcb_config);
|
|
||||||
else if (hw->mac.type == ixgbe_mac_82599EB)
|
|
||||||
ret = ixgbe_dcb_config_tx_data_arbiter_82599(hw, dcb_config);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_config_pfc - Config priority flow control
|
|
||||||
* @hw: pointer to hardware structure
|
|
||||||
* @dcb_config: pointer to ixgbe_dcb_config structure
|
|
||||||
*
|
|
||||||
* Configure Priority Flow Control for each traffic class.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_config_pfc(struct ixgbe_hw *hw,
|
|
||||||
struct ixgbe_dcb_config *dcb_config)
|
|
||||||
{
|
|
||||||
s32 ret = 0;
|
|
||||||
if (hw->mac.type == ixgbe_mac_82598EB)
|
|
||||||
ret = ixgbe_dcb_config_pfc_82598(hw, dcb_config);
|
|
||||||
else if (hw->mac.type == ixgbe_mac_82599EB)
|
|
||||||
ret = ixgbe_dcb_config_pfc_82599(hw, dcb_config);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_config_tc_stats - Config traffic class statistics
|
|
||||||
* @hw: pointer to hardware structure
|
|
||||||
*
|
|
||||||
* Configure queue statistics registers, all queues belonging to same traffic
|
|
||||||
* class uses a single set of queue statistics counters.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_config_tc_stats(struct ixgbe_hw *hw)
|
|
||||||
{
|
|
||||||
s32 ret = 0;
|
|
||||||
if (hw->mac.type == ixgbe_mac_82598EB)
|
|
||||||
ret = ixgbe_dcb_config_tc_stats_82598(hw);
|
|
||||||
else if (hw->mac.type == ixgbe_mac_82599EB)
|
|
||||||
ret = ixgbe_dcb_config_tc_stats_82599(hw);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ixgbe_dcb_hw_config - Config and enable DCB
|
* ixgbe_dcb_hw_config - Config and enable DCB
|
||||||
* @hw: pointer to hardware structure
|
* @hw: pointer to hardware structure
|
||||||
|
|
|
@ -149,27 +149,9 @@ struct ixgbe_dcb_config {
|
||||||
|
|
||||||
/* DCB driver APIs */
|
/* DCB driver APIs */
|
||||||
|
|
||||||
/* DCB rule checking function.*/
|
|
||||||
s32 ixgbe_dcb_check_config(struct ixgbe_dcb_config *config);
|
|
||||||
|
|
||||||
/* DCB credits calculation */
|
/* DCB credits calculation */
|
||||||
s32 ixgbe_dcb_calculate_tc_credits(struct ixgbe_dcb_config *, u8);
|
s32 ixgbe_dcb_calculate_tc_credits(struct ixgbe_dcb_config *, u8);
|
||||||
|
|
||||||
/* DCB PFC functions */
|
|
||||||
s32 ixgbe_dcb_config_pfc(struct ixgbe_hw *, struct ixgbe_dcb_config *g);
|
|
||||||
s32 ixgbe_dcb_get_pfc_stats(struct ixgbe_hw *, struct ixgbe_hw_stats *, u8);
|
|
||||||
|
|
||||||
/* DCB traffic class stats */
|
|
||||||
s32 ixgbe_dcb_config_tc_stats(struct ixgbe_hw *);
|
|
||||||
s32 ixgbe_dcb_get_tc_stats(struct ixgbe_hw *, struct ixgbe_hw_stats *, u8);
|
|
||||||
|
|
||||||
/* DCB config arbiters */
|
|
||||||
s32 ixgbe_dcb_config_tx_desc_arbiter(struct ixgbe_hw *,
|
|
||||||
struct ixgbe_dcb_config *);
|
|
||||||
s32 ixgbe_dcb_config_tx_data_arbiter(struct ixgbe_hw *,
|
|
||||||
struct ixgbe_dcb_config *);
|
|
||||||
s32 ixgbe_dcb_config_rx_arbiter(struct ixgbe_hw *, struct ixgbe_dcb_config *);
|
|
||||||
|
|
||||||
/* DCB hw initialization */
|
/* DCB hw initialization */
|
||||||
s32 ixgbe_dcb_hw_config(struct ixgbe_hw *, struct ixgbe_dcb_config *);
|
s32 ixgbe_dcb_hw_config(struct ixgbe_hw *, struct ixgbe_dcb_config *);
|
||||||
|
|
||||||
|
|
|
@ -31,65 +31,6 @@
|
||||||
#include "ixgbe_dcb.h"
|
#include "ixgbe_dcb.h"
|
||||||
#include "ixgbe_dcb_82598.h"
|
#include "ixgbe_dcb_82598.h"
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_get_tc_stats_82598 - Return status data for each traffic class
|
|
||||||
* @hw: pointer to hardware structure
|
|
||||||
* @stats: pointer to statistics structure
|
|
||||||
* @tc_count: Number of elements in bwg_array.
|
|
||||||
*
|
|
||||||
* This function returns the status data for each of the Traffic Classes in use.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_get_tc_stats_82598(struct ixgbe_hw *hw,
|
|
||||||
struct ixgbe_hw_stats *stats,
|
|
||||||
u8 tc_count)
|
|
||||||
{
|
|
||||||
int tc;
|
|
||||||
|
|
||||||
if (tc_count > MAX_TRAFFIC_CLASS)
|
|
||||||
return DCB_ERR_PARAM;
|
|
||||||
|
|
||||||
/* Statistics pertaining to each traffic class */
|
|
||||||
for (tc = 0; tc < tc_count; tc++) {
|
|
||||||
/* Transmitted Packets */
|
|
||||||
stats->qptc[tc] += IXGBE_READ_REG(hw, IXGBE_QPTC(tc));
|
|
||||||
/* Transmitted Bytes */
|
|
||||||
stats->qbtc[tc] += IXGBE_READ_REG(hw, IXGBE_QBTC(tc));
|
|
||||||
/* Received Packets */
|
|
||||||
stats->qprc[tc] += IXGBE_READ_REG(hw, IXGBE_QPRC(tc));
|
|
||||||
/* Received Bytes */
|
|
||||||
stats->qbrc[tc] += IXGBE_READ_REG(hw, IXGBE_QBRC(tc));
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_get_pfc_stats_82598 - Returns CBFC status data
|
|
||||||
* @hw: pointer to hardware structure
|
|
||||||
* @stats: pointer to statistics structure
|
|
||||||
* @tc_count: Number of elements in bwg_array.
|
|
||||||
*
|
|
||||||
* This function returns the CBFC status data for each of the Traffic Classes.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_get_pfc_stats_82598(struct ixgbe_hw *hw,
|
|
||||||
struct ixgbe_hw_stats *stats,
|
|
||||||
u8 tc_count)
|
|
||||||
{
|
|
||||||
int tc;
|
|
||||||
|
|
||||||
if (tc_count > MAX_TRAFFIC_CLASS)
|
|
||||||
return DCB_ERR_PARAM;
|
|
||||||
|
|
||||||
for (tc = 0; tc < tc_count; tc++) {
|
|
||||||
/* Priority XOFF Transmitted */
|
|
||||||
stats->pxofftxc[tc] += IXGBE_READ_REG(hw, IXGBE_PXOFFTXC(tc));
|
|
||||||
/* Priority XOFF Received */
|
|
||||||
stats->pxoffrxc[tc] += IXGBE_READ_REG(hw, IXGBE_PXOFFRXC(tc));
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ixgbe_dcb_config_packet_buffers_82598 - Configure packet buffers
|
* ixgbe_dcb_config_packet_buffers_82598 - Configure packet buffers
|
||||||
* @hw: pointer to hardware structure
|
* @hw: pointer to hardware structure
|
||||||
|
|
|
@ -72,13 +72,9 @@
|
||||||
|
|
||||||
/* DCB PFC functions */
|
/* DCB PFC functions */
|
||||||
s32 ixgbe_dcb_config_pfc_82598(struct ixgbe_hw *, struct ixgbe_dcb_config *);
|
s32 ixgbe_dcb_config_pfc_82598(struct ixgbe_hw *, struct ixgbe_dcb_config *);
|
||||||
s32 ixgbe_dcb_get_pfc_stats_82598(struct ixgbe_hw *, struct ixgbe_hw_stats *,
|
|
||||||
u8);
|
|
||||||
|
|
||||||
/* DCB traffic class stats */
|
/* DCB traffic class stats */
|
||||||
s32 ixgbe_dcb_config_tc_stats_82598(struct ixgbe_hw *);
|
s32 ixgbe_dcb_config_tc_stats_82598(struct ixgbe_hw *);
|
||||||
s32 ixgbe_dcb_get_tc_stats_82598(struct ixgbe_hw *, struct ixgbe_hw_stats *,
|
|
||||||
u8);
|
|
||||||
|
|
||||||
/* DCB config arbiters */
|
/* DCB config arbiters */
|
||||||
s32 ixgbe_dcb_config_tx_desc_arbiter_82598(struct ixgbe_hw *,
|
s32 ixgbe_dcb_config_tx_desc_arbiter_82598(struct ixgbe_hw *,
|
||||||
|
|
|
@ -30,63 +30,6 @@
|
||||||
#include "ixgbe_dcb.h"
|
#include "ixgbe_dcb.h"
|
||||||
#include "ixgbe_dcb_82599.h"
|
#include "ixgbe_dcb_82599.h"
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_get_tc_stats_82599 - Returns status for each traffic class
|
|
||||||
* @hw: pointer to hardware structure
|
|
||||||
* @stats: pointer to statistics structure
|
|
||||||
* @tc_count: Number of elements in bwg_array.
|
|
||||||
*
|
|
||||||
* This function returns the status data for each of the Traffic Classes in use.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_get_tc_stats_82599(struct ixgbe_hw *hw,
|
|
||||||
struct ixgbe_hw_stats *stats,
|
|
||||||
u8 tc_count)
|
|
||||||
{
|
|
||||||
int tc;
|
|
||||||
|
|
||||||
if (tc_count > MAX_TRAFFIC_CLASS)
|
|
||||||
return DCB_ERR_PARAM;
|
|
||||||
/* Statistics pertaining to each traffic class */
|
|
||||||
for (tc = 0; tc < tc_count; tc++) {
|
|
||||||
/* Transmitted Packets */
|
|
||||||
stats->qptc[tc] += IXGBE_READ_REG(hw, IXGBE_QPTC(tc));
|
|
||||||
/* Transmitted Bytes */
|
|
||||||
stats->qbtc[tc] += IXGBE_READ_REG(hw, IXGBE_QBTC(tc));
|
|
||||||
/* Received Packets */
|
|
||||||
stats->qprc[tc] += IXGBE_READ_REG(hw, IXGBE_QPRC(tc));
|
|
||||||
/* Received Bytes */
|
|
||||||
stats->qbrc[tc] += IXGBE_READ_REG(hw, IXGBE_QBRC(tc));
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* ixgbe_dcb_get_pfc_stats_82599 - Return CBFC status data
|
|
||||||
* @hw: pointer to hardware structure
|
|
||||||
* @stats: pointer to statistics structure
|
|
||||||
* @tc_count: Number of elements in bwg_array.
|
|
||||||
*
|
|
||||||
* This function returns the CBFC status data for each of the Traffic Classes.
|
|
||||||
*/
|
|
||||||
s32 ixgbe_dcb_get_pfc_stats_82599(struct ixgbe_hw *hw,
|
|
||||||
struct ixgbe_hw_stats *stats,
|
|
||||||
u8 tc_count)
|
|
||||||
{
|
|
||||||
int tc;
|
|
||||||
|
|
||||||
if (tc_count > MAX_TRAFFIC_CLASS)
|
|
||||||
return DCB_ERR_PARAM;
|
|
||||||
for (tc = 0; tc < tc_count; tc++) {
|
|
||||||
/* Priority XOFF Transmitted */
|
|
||||||
stats->pxofftxc[tc] += IXGBE_READ_REG(hw, IXGBE_PXOFFTXC(tc));
|
|
||||||
/* Priority XOFF Received */
|
|
||||||
stats->pxoffrxc[tc] += IXGBE_READ_REG(hw, IXGBE_PXOFFRXCNT(tc));
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ixgbe_dcb_config_packet_buffers_82599 - Configure DCB packet buffers
|
* ixgbe_dcb_config_packet_buffers_82599 - Configure DCB packet buffers
|
||||||
* @hw: pointer to hardware structure
|
* @hw: pointer to hardware structure
|
||||||
|
|
|
@ -101,15 +101,9 @@
|
||||||
/* DCB PFC functions */
|
/* DCB PFC functions */
|
||||||
s32 ixgbe_dcb_config_pfc_82599(struct ixgbe_hw *hw,
|
s32 ixgbe_dcb_config_pfc_82599(struct ixgbe_hw *hw,
|
||||||
struct ixgbe_dcb_config *dcb_config);
|
struct ixgbe_dcb_config *dcb_config);
|
||||||
s32 ixgbe_dcb_get_pfc_stats_82599(struct ixgbe_hw *hw,
|
|
||||||
struct ixgbe_hw_stats *stats,
|
|
||||||
u8 tc_count);
|
|
||||||
|
|
||||||
/* DCB traffic class stats */
|
/* DCB traffic class stats */
|
||||||
s32 ixgbe_dcb_config_tc_stats_82599(struct ixgbe_hw *hw);
|
s32 ixgbe_dcb_config_tc_stats_82599(struct ixgbe_hw *hw);
|
||||||
s32 ixgbe_dcb_get_tc_stats_82599(struct ixgbe_hw *hw,
|
|
||||||
struct ixgbe_hw_stats *stats,
|
|
||||||
u8 tc_count);
|
|
||||||
|
|
||||||
/* DCB config arbiters */
|
/* DCB config arbiters */
|
||||||
s32 ixgbe_dcb_config_tx_desc_arbiter_82599(struct ixgbe_hw *hw,
|
s32 ixgbe_dcb_config_tx_desc_arbiter_82599(struct ixgbe_hw *hw,
|
||||||
|
|
Loading…
Reference in New Issue