net/bnxt: fix missing timestamp flag in mbuf
[dpdk.git] / drivers / net / bnxt / bnxt_hwrm.c
index fdca424..4987cf0 100644 (file)
@@ -637,8 +637,13 @@ int bnxt_hwrm_func_driver_register(struct bnxt *bp)
                               sizeof(bp->pf.vf_req_fwd)));
        }
 
-       req.async_event_fwd[0] |= rte_cpu_to_le_32(0x1);   /* TODO: Use MACRO */
-       //memset(req.async_event_fwd, 0xff, sizeof(req.async_event_fwd));
+       req.async_event_fwd[0] |=
+               rte_cpu_to_le_32(ASYNC_CMPL_EVENT_ID_LINK_STATUS_CHANGE |
+                                ASYNC_CMPL_EVENT_ID_PORT_CONN_NOT_ALLOWED |
+                                ASYNC_CMPL_EVENT_ID_LINK_SPEED_CFG_CHANGE);
+       req.async_event_fwd[1] |=
+               rte_cpu_to_le_32(ASYNC_CMPL_EVENT_ID_PF_DRVR_UNLOAD |
+                                ASYNC_CMPL_EVENT_ID_VF_CFG_CHANGE);
 
        rc = bnxt_hwrm_send_message(bp, &req, sizeof(req));
 
@@ -2135,6 +2140,9 @@ static uint32_t bnxt_parse_hw_link_speed(uint16_t hw_link_speed)
        case HWRM_PORT_PHY_QCFG_OUTPUT_LINK_SPEED_50GB:
                eth_link_speed = ETH_SPEED_NUM_50G;
                break;
+       case HWRM_PORT_PHY_QCFG_OUTPUT_LINK_SPEED_100GB:
+               eth_link_speed = ETH_SPEED_NUM_100G;
+               break;
        case HWRM_PORT_PHY_QCFG_OUTPUT_LINK_SPEED_2GB:
        default:
                PMD_DRV_LOG(ERR, "HWRM link speed %d not defined\n",
@@ -3671,3 +3679,31 @@ int bnxt_hwrm_clear_ntuple_filter(struct bnxt *bp,
 
        return 0;
 }
+
+int bnxt_vnic_rss_configure(struct bnxt *bp, struct bnxt_vnic_info *vnic)
+{
+       unsigned int rss_idx, fw_idx, i;
+
+       if (vnic->rss_table && vnic->hash_type) {
+               /*
+                * Fill the RSS hash & redirection table with
+                * ring group ids for all VNICs
+                */
+               for (rss_idx = 0, fw_idx = 0; rss_idx < HW_HASH_INDEX_SIZE;
+                       rss_idx++, fw_idx++) {
+                       for (i = 0; i < bp->rx_cp_nr_rings; i++) {
+                               fw_idx %= bp->rx_cp_nr_rings;
+                               if (vnic->fw_grp_ids[fw_idx] !=
+                                   INVALID_HW_RING_ID)
+                                       break;
+                               fw_idx++;
+                       }
+                       if (i == bp->rx_cp_nr_rings)
+                               return 0;
+                       vnic->rss_table[rss_idx] =
+                               vnic->fw_grp_ids[fw_idx];
+               }
+               return bnxt_hwrm_vnic_rss_cfg(bp, vnic);
+       }
+       return 0;
+}