Commit 9e3ab72c authored by Jesse Brandeburg's avatar Jesse Brandeburg Committed by Tony Nguyen

i40e: field prep conversion

Refactor i40e driver to use FIELD_PREP(), which reduces lines of code
and adds clarity of intent.

This code was generated by the following coccinelle/spatch script and
then manually repaired.

Refactor one function with multiple if's to return quickly to make lines
fit in 80 columns.

@prep2@
constant shift,mask;
type T;
expression a;
@@
-(((T)(a) << shift) & mask)
+FIELD_PREP(mask, a)

@prep@
constant shift,mask;
type T;
expression a;
@@
-((T)((a) << shift) & mask)
+FIELD_PREP(mask, a)

Cc: Julia Lawall <Julia.Lawall@inria.fr>
Reviewed-by: default avatarMarcin Szycik <marcin.szycik@linux.intel.com>
Reviewed-by: default avatarSimon Horman <horms@kernel.org>
Signed-off-by: default avatarJesse Brandeburg <jesse.brandeburg@intel.com>
Tested-by: Pucha Himasekhar Reddy <himasekharx.reddy.pucha@intel.com> (A Contingent worker at Intel)
Signed-off-by: default avatarTony Nguyen <anthony.l.nguyen@intel.com>
parent 4d893c10
...@@ -249,6 +249,7 @@ static int i40e_aq_get_set_rss_lut(struct i40e_hw *hw, ...@@ -249,6 +249,7 @@ static int i40e_aq_get_set_rss_lut(struct i40e_hw *hw,
struct i40e_aqc_get_set_rss_lut *cmd_resp = struct i40e_aqc_get_set_rss_lut *cmd_resp =
(struct i40e_aqc_get_set_rss_lut *)&desc.params.raw; (struct i40e_aqc_get_set_rss_lut *)&desc.params.raw;
int status; int status;
u16 flags;
if (set) if (set)
i40e_fill_default_direct_cmd_desc(&desc, i40e_fill_default_direct_cmd_desc(&desc,
...@@ -261,23 +262,18 @@ static int i40e_aq_get_set_rss_lut(struct i40e_hw *hw, ...@@ -261,23 +262,18 @@ static int i40e_aq_get_set_rss_lut(struct i40e_hw *hw,
desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_BUF); desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_BUF);
desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_RD); desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_RD);
cmd_resp->vsi_id = vsi_id = FIELD_PREP(I40E_AQC_SET_RSS_LUT_VSI_ID_MASK, vsi_id) |
cpu_to_le16((u16)((vsi_id << FIELD_PREP(I40E_AQC_SET_RSS_LUT_VSI_VALID, 1);
I40E_AQC_SET_RSS_LUT_VSI_ID_SHIFT) & cmd_resp->vsi_id = cpu_to_le16(vsi_id);
I40E_AQC_SET_RSS_LUT_VSI_ID_MASK));
cmd_resp->vsi_id |= cpu_to_le16((u16)I40E_AQC_SET_RSS_LUT_VSI_VALID);
if (pf_lut) if (pf_lut)
cmd_resp->flags |= cpu_to_le16((u16) flags = FIELD_PREP(I40E_AQC_SET_RSS_LUT_TABLE_TYPE_MASK,
((I40E_AQC_SET_RSS_LUT_TABLE_TYPE_PF << I40E_AQC_SET_RSS_LUT_TABLE_TYPE_PF);
I40E_AQC_SET_RSS_LUT_TABLE_TYPE_SHIFT) &
I40E_AQC_SET_RSS_LUT_TABLE_TYPE_MASK));
else else
cmd_resp->flags |= cpu_to_le16((u16) flags = FIELD_PREP(I40E_AQC_SET_RSS_LUT_TABLE_TYPE_MASK,
((I40E_AQC_SET_RSS_LUT_TABLE_TYPE_VSI << I40E_AQC_SET_RSS_LUT_TABLE_TYPE_VSI);
I40E_AQC_SET_RSS_LUT_TABLE_TYPE_SHIFT) &
I40E_AQC_SET_RSS_LUT_TABLE_TYPE_MASK));
cmd_resp->flags = cpu_to_le16(flags);
status = i40e_asq_send_command(hw, &desc, lut, lut_size, NULL); status = i40e_asq_send_command(hw, &desc, lut, lut_size, NULL);
return status; return status;
...@@ -347,11 +343,9 @@ static int i40e_aq_get_set_rss_key(struct i40e_hw *hw, ...@@ -347,11 +343,9 @@ static int i40e_aq_get_set_rss_key(struct i40e_hw *hw,
desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_BUF); desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_BUF);
desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_RD); desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_RD);
cmd_resp->vsi_id = vsi_id = FIELD_PREP(I40E_AQC_SET_RSS_KEY_VSI_ID_MASK, vsi_id) |
cpu_to_le16((u16)((vsi_id << FIELD_PREP(I40E_AQC_SET_RSS_KEY_VSI_VALID, 1);
I40E_AQC_SET_RSS_KEY_VSI_ID_SHIFT) & cmd_resp->vsi_id = cpu_to_le16(vsi_id);
I40E_AQC_SET_RSS_KEY_VSI_ID_MASK));
cmd_resp->vsi_id |= cpu_to_le16((u16)I40E_AQC_SET_RSS_KEY_VSI_VALID);
status = i40e_asq_send_command(hw, &desc, key, key_size, NULL); status = i40e_asq_send_command(hw, &desc, key, key_size, NULL);
...@@ -1289,14 +1283,14 @@ void i40e_led_set(struct i40e_hw *hw, u32 mode, bool blink) ...@@ -1289,14 +1283,14 @@ void i40e_led_set(struct i40e_hw *hw, u32 mode, bool blink)
pin_func = I40E_PIN_FUNC_LED; pin_func = I40E_PIN_FUNC_LED;
gpio_val &= ~I40E_GLGEN_GPIO_CTL_PIN_FUNC_MASK; gpio_val &= ~I40E_GLGEN_GPIO_CTL_PIN_FUNC_MASK;
gpio_val |= ((pin_func << gpio_val |=
I40E_GLGEN_GPIO_CTL_PIN_FUNC_SHIFT) & FIELD_PREP(I40E_GLGEN_GPIO_CTL_PIN_FUNC_MASK,
I40E_GLGEN_GPIO_CTL_PIN_FUNC_MASK); pin_func);
} }
gpio_val &= ~I40E_GLGEN_GPIO_CTL_LED_MODE_MASK; gpio_val &= ~I40E_GLGEN_GPIO_CTL_LED_MODE_MASK;
/* this & is a bit of paranoia, but serves as a range check */ /* this & is a bit of paranoia, but serves as a range check */
gpio_val |= ((mode << I40E_GLGEN_GPIO_CTL_LED_MODE_SHIFT) & gpio_val |= FIELD_PREP(I40E_GLGEN_GPIO_CTL_LED_MODE_MASK,
I40E_GLGEN_GPIO_CTL_LED_MODE_MASK); mode);
if (blink) if (blink)
gpio_val |= BIT(I40E_GLGEN_GPIO_CTL_LED_BLINK_SHIFT); gpio_val |= BIT(I40E_GLGEN_GPIO_CTL_LED_BLINK_SHIFT);
...@@ -3515,8 +3509,7 @@ int i40e_aq_get_lldp_mib(struct i40e_hw *hw, u8 bridge_type, ...@@ -3515,8 +3509,7 @@ int i40e_aq_get_lldp_mib(struct i40e_hw *hw, u8 bridge_type,
desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_BUF); desc.flags |= cpu_to_le16((u16)I40E_AQ_FLAG_BUF);
cmd->type = mib_type & I40E_AQ_LLDP_MIB_TYPE_MASK; cmd->type = mib_type & I40E_AQ_LLDP_MIB_TYPE_MASK;
cmd->type |= ((bridge_type << I40E_AQ_LLDP_BRIDGE_TYPE_SHIFT) & cmd->type |= FIELD_PREP(I40E_AQ_LLDP_BRIDGE_TYPE_MASK, bridge_type);
I40E_AQ_LLDP_BRIDGE_TYPE_MASK);
desc.datalen = cpu_to_le16(buff_size); desc.datalen = cpu_to_le16(buff_size);
...@@ -4234,30 +4227,25 @@ int i40e_set_filter_control(struct i40e_hw *hw, ...@@ -4234,30 +4227,25 @@ int i40e_set_filter_control(struct i40e_hw *hw,
/* Program required PE hash buckets for the PF */ /* Program required PE hash buckets for the PF */
val &= ~I40E_PFQF_CTL_0_PEHSIZE_MASK; val &= ~I40E_PFQF_CTL_0_PEHSIZE_MASK;
val |= ((u32)settings->pe_filt_num << I40E_PFQF_CTL_0_PEHSIZE_SHIFT) & val |= FIELD_PREP(I40E_PFQF_CTL_0_PEHSIZE_MASK, settings->pe_filt_num);
I40E_PFQF_CTL_0_PEHSIZE_MASK;
/* Program required PE contexts for the PF */ /* Program required PE contexts for the PF */
val &= ~I40E_PFQF_CTL_0_PEDSIZE_MASK; val &= ~I40E_PFQF_CTL_0_PEDSIZE_MASK;
val |= ((u32)settings->pe_cntx_num << I40E_PFQF_CTL_0_PEDSIZE_SHIFT) & val |= FIELD_PREP(I40E_PFQF_CTL_0_PEDSIZE_MASK, settings->pe_cntx_num);
I40E_PFQF_CTL_0_PEDSIZE_MASK;
/* Program required FCoE hash buckets for the PF */ /* Program required FCoE hash buckets for the PF */
val &= ~I40E_PFQF_CTL_0_PFFCHSIZE_MASK; val &= ~I40E_PFQF_CTL_0_PFFCHSIZE_MASK;
val |= ((u32)settings->fcoe_filt_num << val |= FIELD_PREP(I40E_PFQF_CTL_0_PFFCHSIZE_MASK,
I40E_PFQF_CTL_0_PFFCHSIZE_SHIFT) & settings->fcoe_filt_num);
I40E_PFQF_CTL_0_PFFCHSIZE_MASK;
/* Program required FCoE DDP contexts for the PF */ /* Program required FCoE DDP contexts for the PF */
val &= ~I40E_PFQF_CTL_0_PFFCDSIZE_MASK; val &= ~I40E_PFQF_CTL_0_PFFCDSIZE_MASK;
val |= ((u32)settings->fcoe_cntx_num << val |= FIELD_PREP(I40E_PFQF_CTL_0_PFFCDSIZE_MASK,
I40E_PFQF_CTL_0_PFFCDSIZE_SHIFT) & settings->fcoe_cntx_num);
I40E_PFQF_CTL_0_PFFCDSIZE_MASK;
/* Program Hash LUT size for the PF */ /* Program Hash LUT size for the PF */
val &= ~I40E_PFQF_CTL_0_HASHLUTSIZE_MASK; val &= ~I40E_PFQF_CTL_0_HASHLUTSIZE_MASK;
if (settings->hash_lut_size == I40E_HASH_LUT_SIZE_512) if (settings->hash_lut_size == I40E_HASH_LUT_SIZE_512)
hash_lut_size = 1; hash_lut_size = 1;
val |= (hash_lut_size << I40E_PFQF_CTL_0_HASHLUTSIZE_SHIFT) & val |= FIELD_PREP(I40E_PFQF_CTL_0_HASHLUTSIZE_MASK, hash_lut_size);
I40E_PFQF_CTL_0_HASHLUTSIZE_MASK;
/* Enable FDIR, Ethertype and MACVLAN filters for PF and VFs */ /* Enable FDIR, Ethertype and MACVLAN filters for PF and VFs */
if (settings->enable_fdir) if (settings->enable_fdir)
...@@ -5319,16 +5307,17 @@ static void i40e_mdio_if_number_selection(struct i40e_hw *hw, bool set_mdio, ...@@ -5319,16 +5307,17 @@ static void i40e_mdio_if_number_selection(struct i40e_hw *hw, bool set_mdio,
u8 mdio_num, u8 mdio_num,
struct i40e_aqc_phy_register_access *cmd) struct i40e_aqc_phy_register_access *cmd)
{ {
if (set_mdio && cmd->phy_interface == I40E_AQ_PHY_REG_ACCESS_EXTERNAL) { if (!set_mdio ||
if (test_bit(I40E_HW_CAP_AQ_PHY_ACCESS_EXTENDED, hw->caps)) cmd->phy_interface != I40E_AQ_PHY_REG_ACCESS_EXTERNAL)
cmd->cmd_flags |= return;
I40E_AQ_PHY_REG_ACCESS_SET_MDIO_IF_NUMBER |
((mdio_num << if (test_bit(I40E_HW_CAP_AQ_PHY_ACCESS_EXTENDED, hw->caps)) {
I40E_AQ_PHY_REG_ACCESS_MDIO_IF_NUMBER_SHIFT) & cmd->cmd_flags |=
I40E_AQ_PHY_REG_ACCESS_MDIO_IF_NUMBER_MASK); I40E_AQ_PHY_REG_ACCESS_SET_MDIO_IF_NUMBER |
else FIELD_PREP(I40E_AQ_PHY_REG_ACCESS_MDIO_IF_NUMBER_MASK,
i40e_debug(hw, I40E_DEBUG_PHY, mdio_num);
"MDIO I/F number selection not supported by current FW version.\n"); } else {
i40e_debug(hw, I40E_DEBUG_PHY, "MDIO I/F number selection not supported by current FW version.\n");
} }
} }
......
This diff is collapsed.
...@@ -3536,21 +3536,19 @@ static int i40e_configure_tx_ring(struct i40e_ring *ring) ...@@ -3536,21 +3536,19 @@ static int i40e_configure_tx_ring(struct i40e_ring *ring)
else else
return -EINVAL; return -EINVAL;
qtx_ctl |= (ring->ch->vsi_number << qtx_ctl |= FIELD_PREP(I40E_QTX_CTL_VFVM_INDX_MASK,
I40E_QTX_CTL_VFVM_INDX_SHIFT) & ring->ch->vsi_number);
I40E_QTX_CTL_VFVM_INDX_MASK;
} else { } else {
if (vsi->type == I40E_VSI_VMDQ2) { if (vsi->type == I40E_VSI_VMDQ2) {
qtx_ctl = I40E_QTX_CTL_VM_QUEUE; qtx_ctl = I40E_QTX_CTL_VM_QUEUE;
qtx_ctl |= ((vsi->id) << I40E_QTX_CTL_VFVM_INDX_SHIFT) & qtx_ctl |= FIELD_PREP(I40E_QTX_CTL_VFVM_INDX_MASK,
I40E_QTX_CTL_VFVM_INDX_MASK; vsi->id);
} else { } else {
qtx_ctl = I40E_QTX_CTL_PF_QUEUE; qtx_ctl = I40E_QTX_CTL_PF_QUEUE;
} }
} }
qtx_ctl |= ((hw->pf_id << I40E_QTX_CTL_PF_INDX_SHIFT) & qtx_ctl |= FIELD_PREP(I40E_QTX_CTL_PF_INDX_MASK, hw->pf_id);
I40E_QTX_CTL_PF_INDX_MASK);
wr32(hw, I40E_QTX_CTL(pf_q), qtx_ctl); wr32(hw, I40E_QTX_CTL(pf_q), qtx_ctl);
i40e_flush(hw); i40e_flush(hw);
......
...@@ -33,19 +33,16 @@ static void i40e_fdir(struct i40e_ring *tx_ring, ...@@ -33,19 +33,16 @@ static void i40e_fdir(struct i40e_ring *tx_ring,
i++; i++;
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0; tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
flex_ptype = I40E_TXD_FLTR_QW0_QINDEX_MASK & flex_ptype = FIELD_PREP(I40E_TXD_FLTR_QW0_QINDEX_MASK, fdata->q_index);
(fdata->q_index << I40E_TXD_FLTR_QW0_QINDEX_SHIFT);
flex_ptype |= I40E_TXD_FLTR_QW0_FLEXOFF_MASK & flex_ptype |= FIELD_PREP(I40E_TXD_FLTR_QW0_FLEXOFF_MASK,
(fdata->flex_off << I40E_TXD_FLTR_QW0_FLEXOFF_SHIFT); fdata->flex_off);
flex_ptype |= I40E_TXD_FLTR_QW0_PCTYPE_MASK & flex_ptype |= FIELD_PREP(I40E_TXD_FLTR_QW0_PCTYPE_MASK, fdata->pctype);
(fdata->pctype << I40E_TXD_FLTR_QW0_PCTYPE_SHIFT);
/* Use LAN VSI Id if not programmed by user */ /* Use LAN VSI Id if not programmed by user */
flex_ptype |= I40E_TXD_FLTR_QW0_DEST_VSI_MASK & flex_ptype |= FIELD_PREP(I40E_TXD_FLTR_QW0_DEST_VSI_MASK,
((u32)(fdata->dest_vsi ? : pf->vsi[pf->lan_vsi]->id) << fdata->dest_vsi ? : pf->vsi[pf->lan_vsi]->id);
I40E_TXD_FLTR_QW0_DEST_VSI_SHIFT);
dtype_cmd = I40E_TX_DESC_DTYPE_FILTER_PROG; dtype_cmd = I40E_TX_DESC_DTYPE_FILTER_PROG;
...@@ -55,17 +52,15 @@ static void i40e_fdir(struct i40e_ring *tx_ring, ...@@ -55,17 +52,15 @@ static void i40e_fdir(struct i40e_ring *tx_ring,
I40E_FILTER_PROGRAM_DESC_PCMD_REMOVE << I40E_FILTER_PROGRAM_DESC_PCMD_REMOVE <<
I40E_TXD_FLTR_QW1_PCMD_SHIFT; I40E_TXD_FLTR_QW1_PCMD_SHIFT;
dtype_cmd |= I40E_TXD_FLTR_QW1_DEST_MASK & dtype_cmd |= FIELD_PREP(I40E_TXD_FLTR_QW1_DEST_MASK, fdata->dest_ctl);
(fdata->dest_ctl << I40E_TXD_FLTR_QW1_DEST_SHIFT);
dtype_cmd |= I40E_TXD_FLTR_QW1_FD_STATUS_MASK & dtype_cmd |= FIELD_PREP(I40E_TXD_FLTR_QW1_FD_STATUS_MASK,
(fdata->fd_status << I40E_TXD_FLTR_QW1_FD_STATUS_SHIFT); fdata->fd_status);
if (fdata->cnt_index) { if (fdata->cnt_index) {
dtype_cmd |= I40E_TXD_FLTR_QW1_CNT_ENA_MASK; dtype_cmd |= I40E_TXD_FLTR_QW1_CNT_ENA_MASK;
dtype_cmd |= I40E_TXD_FLTR_QW1_CNTINDEX_MASK & dtype_cmd |= FIELD_PREP(I40E_TXD_FLTR_QW1_CNTINDEX_MASK,
((u32)fdata->cnt_index << fdata->cnt_index);
I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT);
} }
fdir_desc->qindex_flex_ptype_vsi = cpu_to_le32(flex_ptype); fdir_desc->qindex_flex_ptype_vsi = cpu_to_le32(flex_ptype);
...@@ -2959,8 +2954,8 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb, ...@@ -2959,8 +2954,8 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
i++; i++;
tx_ring->next_to_use = (i < tx_ring->count) ? i : 0; tx_ring->next_to_use = (i < tx_ring->count) ? i : 0;
flex_ptype = (tx_ring->queue_index << I40E_TXD_FLTR_QW0_QINDEX_SHIFT) & flex_ptype = FIELD_PREP(I40E_TXD_FLTR_QW0_QINDEX_MASK,
I40E_TXD_FLTR_QW0_QINDEX_MASK; tx_ring->queue_index);
flex_ptype |= (tx_flags & I40E_TX_FLAGS_IPV4) ? flex_ptype |= (tx_flags & I40E_TX_FLAGS_IPV4) ?
(I40E_FILTER_PCTYPE_NONF_IPV4_TCP << (I40E_FILTER_PCTYPE_NONF_IPV4_TCP <<
I40E_TXD_FLTR_QW0_PCTYPE_SHIFT) : I40E_TXD_FLTR_QW0_PCTYPE_SHIFT) :
...@@ -2986,14 +2981,12 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb, ...@@ -2986,14 +2981,12 @@ static void i40e_atr(struct i40e_ring *tx_ring, struct sk_buff *skb,
dtype_cmd |= I40E_TXD_FLTR_QW1_CNT_ENA_MASK; dtype_cmd |= I40E_TXD_FLTR_QW1_CNT_ENA_MASK;
if (!(tx_flags & I40E_TX_FLAGS_UDP_TUNNEL)) if (!(tx_flags & I40E_TX_FLAGS_UDP_TUNNEL))
dtype_cmd |= dtype_cmd |=
((u32)I40E_FD_ATR_STAT_IDX(pf->hw.pf_id) << FIELD_PREP(I40E_TXD_FLTR_QW1_CNTINDEX_MASK,
I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT) & I40E_FD_ATR_STAT_IDX(pf->hw.pf_id));
I40E_TXD_FLTR_QW1_CNTINDEX_MASK;
else else
dtype_cmd |= dtype_cmd |=
((u32)I40E_FD_ATR_TUNNEL_STAT_IDX(pf->hw.pf_id) << FIELD_PREP(I40E_TXD_FLTR_QW1_CNTINDEX_MASK,
I40E_TXD_FLTR_QW1_CNTINDEX_SHIFT) & I40E_FD_ATR_TUNNEL_STAT_IDX(pf->hw.pf_id));
I40E_TXD_FLTR_QW1_CNTINDEX_MASK;
if (test_bit(I40E_FLAG_HW_ATR_EVICT_ENA, pf->flags)) if (test_bit(I40E_FLAG_HW_ATR_EVICT_ENA, pf->flags))
dtype_cmd |= I40E_TXD_FLTR_QW1_ATR_MASK; dtype_cmd |= I40E_TXD_FLTR_QW1_ATR_MASK;
......
...@@ -659,11 +659,9 @@ static int i40e_config_vsi_tx_queue(struct i40e_vf *vf, u16 vsi_id, ...@@ -659,11 +659,9 @@ static int i40e_config_vsi_tx_queue(struct i40e_vf *vf, u16 vsi_id,
/* associate this queue with the PCI VF function */ /* associate this queue with the PCI VF function */
qtx_ctl = I40E_QTX_CTL_VF_QUEUE; qtx_ctl = I40E_QTX_CTL_VF_QUEUE;
qtx_ctl |= ((hw->pf_id << I40E_QTX_CTL_PF_INDX_SHIFT) qtx_ctl |= FIELD_PREP(I40E_QTX_CTL_PF_INDX_MASK, hw->pf_id);
& I40E_QTX_CTL_PF_INDX_MASK); qtx_ctl |= FIELD_PREP(I40E_QTX_CTL_VFVM_INDX_MASK,
qtx_ctl |= (((vf->vf_id + hw->func_caps.vf_base_id) vf->vf_id + hw->func_caps.vf_base_id);
<< I40E_QTX_CTL_VFVM_INDX_SHIFT)
& I40E_QTX_CTL_VFVM_INDX_MASK);
wr32(hw, I40E_QTX_CTL(pf_queue_id), qtx_ctl); wr32(hw, I40E_QTX_CTL(pf_queue_id), qtx_ctl);
i40e_flush(hw); i40e_flush(hw);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment