X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fnet%2Fbnx2x%2Fecore_sp.c;h=b9bca9115e600678b118246dc745621fed273001;hb=b6730d93a13ace701d4f53adcdbbd7c50a90cfbd;hp=43194095bcf1a95699c7cb01643ae6032f464ec6;hpb=8bd31421c593e5f3e2ee2a4d7d3c6a74489838c6;p=dpdk.git diff --git a/drivers/net/bnx2x/ecore_sp.c b/drivers/net/bnx2x/ecore_sp.c index 43194095bc..b9bca9115e 100644 --- a/drivers/net/bnx2x/ecore_sp.c +++ b/drivers/net/bnx2x/ecore_sp.c @@ -291,10 +291,6 @@ static int ecore_state_wait(struct bnx2x_softc *sc, int state, cnt *= 20; ECORE_MSG(sc, "waiting for state to become %d", state); - /* being over protective to remind bnx2x_intr_legacy() to - * process RAMROD - */ - rte_atomic32_set(&sc->scan_fp, 1); ECORE_MIGHT_SLEEP(); while (cnt--) { @@ -505,7 +501,7 @@ static int __ecore_vlan_mac_h_read_lock(struct bnx2x_softc *sc __rte_unused, * * @details May sleep. Claims and releases execution queue lock during its run. */ -static int ecore_vlan_mac_h_read_lock(struct bnx2x_softc *sc, +int ecore_vlan_mac_h_read_lock(struct bnx2x_softc *sc, struct ecore_vlan_mac_obj *o) { int rc; @@ -716,7 +712,7 @@ static uint8_t ecore_vlan_mac_get_rx_tx_flag(struct ecore_vlan_mac_obj return rx_tx_flag; } -static void ecore_set_mac_in_nig(struct bnx2x_softc *sc, +void ecore_set_mac_in_nig(struct bnx2x_softc *sc, int add, unsigned char *dev_addr, int index) { uint32_t wb_data[2]; @@ -2768,12 +2764,16 @@ static int ecore_mcast_validate_e2(__rte_unused struct bnx2x_softc *sc, static void ecore_mcast_revert_e2(__rte_unused struct bnx2x_softc *sc, struct ecore_mcast_ramrod_params *p, - int old_num_bins) + int old_num_bins, + enum ecore_mcast_cmd cmd) { struct ecore_mcast_obj *o = p->mcast_obj; o->set_registry_size(o, old_num_bins); o->total_pending_num -= p->mcast_list_len; + + if (cmd == ECORE_MCAST_CMD_SET) + o->total_pending_num -= o->max_cmd_len; } /** @@ -2919,7 +2919,8 @@ static int ecore_mcast_validate_e1h(__rte_unused struct bnx2x_softc *sc, static void ecore_mcast_revert_e1h(__rte_unused struct bnx2x_softc *sc, __rte_unused struct ecore_mcast_ramrod_params - *p, __rte_unused int old_num_bins) + *p, __rte_unused int old_num_bins, + __rte_unused enum ecore_mcast_cmd cmd) { /* Do nothing */ } @@ -3097,7 +3098,7 @@ error_exit2: r->clear_pending(r); error_exit1: - o->revert(sc, p, old_reg_size); + o->revert(sc, p, old_reg_size, cmd); return rc; } @@ -3354,7 +3355,7 @@ static int ecore_credit_pool_get_entry_always_TRUE(__rte_unused struct * If credit is negative pool operations will always succeed (unlimited pool). * */ -static void ecore_init_credit_pool(struct ecore_credit_pool_obj *p, +void ecore_init_credit_pool(struct ecore_credit_pool_obj *p, int base, int credit) { /* Zero the object first */ @@ -3528,13 +3529,6 @@ static int ecore_setup_rss(struct bnx2x_softc *sc, data->capabilities |= ETH_RSS_UPDATE_RAMROD_DATA_IPV6_UDP_CAPABILITY; - if (ECORE_TEST_BIT(ECORE_RSS_TUNNELING, &p->rss_flags)) { - data->udp_4tuple_dst_port_mask = - ECORE_CPU_TO_LE16(p->tunnel_mask); - data->udp_4tuple_dst_port_value = - ECORE_CPU_TO_LE16(p->tunnel_value); - } - /* Hashing mask */ data->rss_result_mask = p->rss_result_mask; @@ -3599,11 +3593,13 @@ int ecore_config_rss(struct bnx2x_softc *sc, struct ecore_config_rss_params *p) return rc; } -void ecore_init_rss_config_obj(struct ecore_rss_config_obj *rss_obj, +void ecore_init_rss_config_obj(struct bnx2x_softc *sc __rte_unused, + struct ecore_rss_config_obj *rss_obj, uint8_t cl_id, uint32_t cid, uint8_t func_id, - uint8_t engine_id, void *rdata, - ecore_dma_addr_t rdata_mapping, int state, - unsigned long *pstate, ecore_obj_type type) + uint8_t engine_id, + void *rdata, ecore_dma_addr_t rdata_mapping, + int state, unsigned long *pstate, + ecore_obj_type type) { ecore_init_raw_obj(&rss_obj->raw, cl_id, cid, func_id, rdata, rdata_mapping, state, pstate, type); @@ -5092,8 +5088,6 @@ static int ecore_func_send_start(struct bnx2x_softc *sc, rdata->sd_vlan_tag = ECORE_CPU_TO_LE16(start_params->sd_vlan_tag); rdata->path_id = ECORE_PATH_ID(sc); rdata->network_cos_mode = start_params->network_cos_mode; - rdata->gre_tunnel_mode = start_params->gre_tunnel_mode; - rdata->gre_tunnel_rss = start_params->gre_tunnel_rss; /* * No need for an explicit memory barrier here as long we would @@ -5120,8 +5114,14 @@ static int ecore_func_send_switch_update(struct bnx2x_softc *sc, struct ecore_fu ECORE_MEMSET(rdata, 0, sizeof(*rdata)); /* Fill the ramrod data with provided parameters */ - rdata->tx_switch_suspend_change_flg = 1; - rdata->tx_switch_suspend = switch_update_params->suspend; + if (ECORE_TEST_BIT(ECORE_F_UPDATE_TX_SWITCH_SUSPEND_CHNG, + &switch_update_params->changes)) { + rdata->tx_switch_suspend_change_flg = 1; + rdata->tx_switch_suspend = + ECORE_TEST_BIT(ECORE_F_UPDATE_TX_SWITCH_SUSPEND, + &switch_update_params->changes); + } + rdata->echo = SWITCH_UPDATE; return ecore_sp_post(sc, RAMROD_CMD_ID_COMMON_FUNCTION_UPDATE, 0, @@ -5233,7 +5233,7 @@ static int ecore_func_send_tx_start(struct bnx2x_softc *sc, struct ecore_func_st rdata->dcb_enabled = tx_start_params->dcb_enabled; rdata->dcb_version = tx_start_params->dcb_version; - rdata->dont_add_pri_0 = tx_start_params->dont_add_pri_0; + rdata->dont_add_pri_0_en = tx_start_params->dont_add_pri_0_en; for (i = 0; i < ARRAY_SIZE(rdata->traffic_type_to_priority_cos); i++) rdata->traffic_type_to_priority_cos[i] =