ixgbe: Cleanup unpacking code for DCB
This is meant to be a generic clean-up of the remaining functions for unpacking data from the DCB structures. The only real changes are: replaced the variable i with tc for functions that were looping through the traffic classes, and added a pointer for tc_class instead of path since that way we only need to pull the pointer once instead of once per loop. Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com> Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com> Tested-by: Ross Brattain <ross.b.brattain@intel.com> Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
This commit is contained in:
parent
15cbc70ea2
commit
df0676d1bd
1 changed files with 22 additions and 25 deletions
|
@ -180,55 +180,52 @@ s32 ixgbe_dcb_calculate_tc_credits(struct ixgbe_hw *hw,
|
|||
|
||||
void ixgbe_dcb_unpack_pfc(struct ixgbe_dcb_config *cfg, u8 *pfc_en)
|
||||
{
|
||||
int i;
|
||||
struct tc_configuration *tc_config = &cfg->tc_config[0];
|
||||
int tc;
|
||||
|
||||
*pfc_en = 0;
|
||||
for (i = 0; i < MAX_TRAFFIC_CLASS; i++)
|
||||
*pfc_en |= !!(cfg->tc_config[i].dcb_pfc & 0xF) << i;
|
||||
for (*pfc_en = 0, tc = 0; tc < MAX_TRAFFIC_CLASS; tc++) {
|
||||
if (tc_config[tc].dcb_pfc != pfc_disabled)
|
||||
*pfc_en |= 1 << tc;
|
||||
}
|
||||
}
|
||||
|
||||
void ixgbe_dcb_unpack_refill(struct ixgbe_dcb_config *cfg, int direction,
|
||||
u16 *refill)
|
||||
{
|
||||
struct tc_bw_alloc *p;
|
||||
int i;
|
||||
struct tc_configuration *tc_config = &cfg->tc_config[0];
|
||||
int tc;
|
||||
|
||||
for (i = 0; i < MAX_TRAFFIC_CLASS; i++) {
|
||||
p = &cfg->tc_config[i].path[direction];
|
||||
refill[i] = p->data_credits_refill;
|
||||
}
|
||||
for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
|
||||
refill[tc] = tc_config[tc].path[direction].data_credits_refill;
|
||||
}
|
||||
|
||||
void ixgbe_dcb_unpack_max(struct ixgbe_dcb_config *cfg, u16 *max)
|
||||
{
|
||||
int i;
|
||||
struct tc_configuration *tc_config = &cfg->tc_config[0];
|
||||
int tc;
|
||||
|
||||
for (i = 0; i < MAX_TRAFFIC_CLASS; i++)
|
||||
max[i] = cfg->tc_config[i].desc_credits_max;
|
||||
for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
|
||||
max[tc] = tc_config[tc].desc_credits_max;
|
||||
}
|
||||
|
||||
void ixgbe_dcb_unpack_bwgid(struct ixgbe_dcb_config *cfg, int direction,
|
||||
u8 *bwgid)
|
||||
{
|
||||
struct tc_bw_alloc *p;
|
||||
int i;
|
||||
struct tc_configuration *tc_config = &cfg->tc_config[0];
|
||||
int tc;
|
||||
|
||||
for (i = 0; i < MAX_TRAFFIC_CLASS; i++) {
|
||||
p = &cfg->tc_config[i].path[direction];
|
||||
bwgid[i] = p->bwg_id;
|
||||
}
|
||||
for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
|
||||
bwgid[tc] = tc_config[tc].path[direction].bwg_id;
|
||||
}
|
||||
|
||||
void ixgbe_dcb_unpack_prio(struct ixgbe_dcb_config *cfg, int direction,
|
||||
u8 *ptype)
|
||||
{
|
||||
struct tc_bw_alloc *p;
|
||||
int i;
|
||||
struct tc_configuration *tc_config = &cfg->tc_config[0];
|
||||
int tc;
|
||||
|
||||
for (i = 0; i < MAX_TRAFFIC_CLASS; i++) {
|
||||
p = &cfg->tc_config[i].path[direction];
|
||||
ptype[i] = p->prio_type;
|
||||
}
|
||||
for (tc = 0; tc < MAX_TRAFFIC_CLASS; tc++)
|
||||
ptype[tc] = tc_config[tc].path[direction].prio_type;
|
||||
}
|
||||
|
||||
static u8 ixgbe_dcb_get_tc_from_up(struct ixgbe_dcb_config *cfg,
|
||||
|
|
Loading…
Reference in a new issue