Lines Matching defs:nic_data
91 struct efx_ef10_nic_data *nic_data = efx->nic_data;
102 nic_data->vf_index = MCDI_DWORD(outbuf, GET_FUNCTION_INFO_OUT_VF);
110 struct efx_ef10_nic_data *nic_data = efx->nic_data;
126 nic_data->datapath_caps =
130 nic_data->datapath_caps2 = MCDI_DWORD(outbuf,
132 nic_data->piobuf_size = MCDI_WORD(outbuf,
135 nic_data->datapath_caps2 = 0;
136 nic_data->piobuf_size = ER_DZ_TX_PIOBUF_SIZE;
141 nic_data->rx_dpcpu_fw_id =
143 nic_data->tx_dpcpu_fw_id =
146 if (!(nic_data->datapath_caps &
187 struct efx_ef10_nic_data *nic_data = efx->nic_data;
198 nic_data->licensed_features = MCDI_QWORD(outbuf,
217 struct efx_ef10_nic_data *nic_data = efx->nic_data;
222 nic_data->workaround_35388 = false;
223 nic_data->workaround_61265 = false;
233 nic_data->workaround_61265 = true;
236 nic_data->workaround_35388 = true;
245 nic_data->workaround_35388 = true;
253 nic_data->workaround_35388 ? "en" : "dis");
256 nic_data->workaround_61265 ? "en" : "dis");
399 struct efx_ef10_nic_data *nic_data = efx->nic_data;
402 WARN_ON(!mutex_is_locked(&nic_data->vlan_lock));
404 list_for_each_entry(vlan, &nic_data->vlan_list, list) {
414 struct efx_ef10_nic_data *nic_data = efx->nic_data;
418 mutex_lock(&nic_data->vlan_lock);
440 list_add_tail(&vlan->list, &nic_data->vlan_list);
453 mutex_unlock(&nic_data->vlan_lock);
461 mutex_unlock(&nic_data->vlan_lock);
468 struct efx_ef10_nic_data *nic_data = efx->nic_data;
470 WARN_ON(!mutex_is_locked(&nic_data->vlan_lock));
484 struct efx_ef10_nic_data *nic_data = efx->nic_data;
495 mutex_lock(&nic_data->vlan_lock);
506 mutex_unlock(&nic_data->vlan_lock);
513 struct efx_ef10_nic_data *nic_data = efx->nic_data;
516 mutex_lock(&nic_data->vlan_lock);
517 list_for_each_entry_safe(vlan, next_vlan, &nic_data->vlan_list, list)
519 mutex_unlock(&nic_data->vlan_lock);
528 struct efx_ef10_nic_data *nic_data;
531 nic_data = kzalloc(sizeof(*nic_data), GFP_KERNEL);
532 if (!nic_data)
534 efx->nic_data = nic_data;
539 rc = efx_nic_alloc_buffer(efx, &nic_data->mcdi_buf,
556 nic_data->warm_boot_count = rc;
569 mutex_init(&nic_data->udp_tunnels_lock);
570 for (i = 0; i < ARRAY_SIZE(nic_data->udp_tunnels); ++i)
571 nic_data->udp_tunnels[i].type =
593 rc = efx_get_pf_index(efx, &nic_data->pf_index);
607 if (nic_data->datapath_caps &
629 if (nic_data->datapath_caps &
657 efx_pf->type->get_mac_address(efx_pf, nic_data->port_id);
660 ether_addr_copy(nic_data->port_id, efx->net_dev->perm_addr);
662 INIT_LIST_HEAD(&nic_data->vlan_list);
663 mutex_init(&nic_data->vlan_lock);
678 if (nic_data->datapath_caps &
689 mutex_destroy(&nic_data->vlan_lock);
699 mutex_lock(&nic_data->udp_tunnels_lock);
700 memset(nic_data->udp_tunnels, 0, sizeof(nic_data->udp_tunnels));
702 mutex_unlock(&nic_data->udp_tunnels_lock);
703 mutex_destroy(&nic_data->udp_tunnels_lock);
707 efx_nic_free_buffer(efx, &nic_data->mcdi_buf);
709 kfree(nic_data);
710 efx->nic_data = NULL;
718 struct efx_ef10_nic_data *nic_data = efx->nic_data;
725 for (i = 0; i < nic_data->n_piobufs; i++) {
727 nic_data->piobuf_handle[i]);
733 nic_data->n_piobufs = 0;
738 struct efx_ef10_nic_data *nic_data = efx->nic_data;
762 nic_data->piobuf_handle[i] =
766 nic_data->piobuf_handle[i]);
769 nic_data->n_piobufs = i;
777 struct efx_ef10_nic_data *nic_data = efx->nic_data;
788 for (index = 0; index < nic_data->n_piobufs; ++index) {
790 nic_data->piobuf_handle[index]);
792 nic_data->pio_write_vi_base + index);
799 nic_data->pio_write_vi_base + index, index,
805 nic_data->pio_write_vi_base + index, index);
825 index = offset / nic_data->piobuf_size;
826 offset = offset % nic_data->piobuf_size;
833 if (tx_queue->queue == nic_data->pio_write_vi_base) {
839 nic_data->piobuf_handle[index]);
858 nic_data->pio_write_base +
879 nic_data->pio_write_vi_base + index);
922 struct efx_ef10_nic_data *nic_data = efx->nic_data;
935 nic_data_pf = efx_pf->nic_data;
936 vf = nic_data_pf->vf + nic_data->vf_index;
945 mutex_destroy(&nic_data->vlan_lock);
953 if (nic_data->wc_membase)
954 iounmap(nic_data->wc_membase);
959 if (!nic_data->must_restore_piobufs)
967 memset(nic_data->udp_tunnels, 0, sizeof(nic_data->udp_tunnels));
968 mutex_lock(&nic_data->udp_tunnels_lock);
970 mutex_unlock(&nic_data->udp_tunnels_lock);
972 mutex_destroy(&nic_data->udp_tunnels_lock);
975 efx_nic_free_buffer(efx, &nic_data->mcdi_buf);
976 kfree(nic_data);
988 struct efx_ef10_nic_data *nic_data = efx->nic_data;
994 if (nic_data->datapath_caps &
1078 struct efx_ef10_nic_data *nic_data_pf = efx_pf->nic_data;
1100 struct efx_ef10_nic_data *nic_data_p = efx_pf->nic_data;
1101 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1103 nic_data_p->vf[nic_data->vf_index].efx = efx;
1104 nic_data_p->vf[nic_data->vf_index].pci_dev =
1127 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1129 return efx_mcdi_alloc_vis(efx, min_vis, max_vis, &nic_data->vi_base,
1130 &nic_data->n_allocated_vis);
1141 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1165 nic_data->piobuf_size / efx_piobuf_size * EF10_TX_PIOBUF_COUNT >=
1169 nic_data->piobuf_size / efx_piobuf_size);
1186 nic_data->n_piobufs = 0;
1201 if (nic_data->n_piobufs) {
1207 nic_data->n_piobufs) *
1210 max_vis = pio_write_vi_base + nic_data->n_piobufs;
1226 if (nic_data->n_allocated_vis < channel_vis) {
1235 efx->max_channels = nic_data->n_allocated_vis;
1237 nic_data->n_allocated_vis / efx->tx_queues_per_channel;
1246 if (nic_data->n_piobufs &&
1247 nic_data->n_allocated_vis <
1248 pio_write_vi_base + nic_data->n_piobufs) {
1251 nic_data->n_allocated_vis, nic_data->n_piobufs);
1268 nic_data->wc_membase = ioremap_wc(efx->membase_phys +
1271 if (!nic_data->wc_membase) {
1277 nic_data->pio_write_vi_base = pio_write_vi_base;
1278 nic_data->pio_write_base =
1279 nic_data->wc_membase +
1291 nic_data->wc_membase, wc_mem_map_size);
1298 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1301 kfree(nic_data->mc_stats);
1302 nic_data->mc_stats = NULL;
1308 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1313 if (nic_data->must_check_datapath_caps) {
1317 nic_data->must_check_datapath_caps = false;
1322 rc = efx_ef10_alloc_vis(efx, nic_data->n_allocated_vis,
1323 nic_data->n_allocated_vis);
1329 nic_data->mc_stats = kmalloc(efx->num_mac_stats * sizeof(__le64),
1331 if (!nic_data->mc_stats)
1334 if (nic_data->must_restore_piobufs && nic_data->n_piobufs) {
1335 rc = efx_ef10_alloc_piobufs(efx, nic_data->n_piobufs);
1352 nic_data->must_restore_piobufs = false;
1389 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1397 nic_data->must_restore_piobufs = true;
1402 nic_data->must_probe_vswitching = true;
1405 if (nic_data->vf)
1407 nic_data->vf[i].vport_id = 0;
1691 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1700 if (nic_data->datapath_caps2 &
1707 if (nic_data->datapath_caps &
1716 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1722 if (nic_data->datapath_caps &
1738 (nic_data->datapath_caps2 &
1767 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1768 u64 *stats = nic_data->stats;
1785 if (nic_data->datapath_caps &
1835 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1837 u64 *stats = nic_data->stats;
1844 if (nic_data->mc_stats) {
1845 efx_nic_copy_stats(efx, nic_data->mc_stats);
1847 mask, stats, nic_data->mc_stats, false);
1881 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1884 u64 *stats = nic_data->stats;
1956 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1961 efx_update_sw_stats(efx, nic_data->stats);
2037 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2038 u8 *pdu = nic_data->mcdi_buf.addr;
2050 _efx_writed(efx, cpu_to_le32((u64)nic_data->mcdi_buf.dma_addr >> 32),
2052 _efx_writed(efx, cpu_to_le32((u32)nic_data->mcdi_buf.dma_addr),
2058 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2059 const efx_dword_t hdr = *(const efx_dword_t *)nic_data->mcdi_buf.addr;
2069 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2070 const u8 *pdu = nic_data->mcdi_buf.addr;
2077 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2083 nic_data->must_check_datapath_caps = true;
2088 nic_data->stats[EF10_STAT_port_rx_bad_bytes] = 0;
2093 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2106 if (rc == nic_data->warm_boot_count)
2109 nic_data->warm_boot_count = rc;
2313 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2316 if (nic_data->datapath_caps &
2319 if (nic_data->datapath_caps2 &
2331 struct efx_ef10_nic_data *nic_data;
2335 nic_data = efx->nic_data;
2340 if (!(nic_data->licensed_features &
2482 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2492 nic_data->workaround_26807 = false;
2499 nic_data->workaround_26807 =
2502 if (want_workaround_26807 && !nic_data->workaround_26807) {
2523 nic_data->warm_boot_count = rc;
2527 nic_data->workaround_26807 = true;
2537 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2543 rc = efx_mcdi_filter_table_probe(efx, nic_data->workaround_26807);
2548 list_for_each_entry(vlan, &nic_data->vlan_list, list) {
2634 struct efx_ef10_nic_data *nic_data;
2637 nic_data = efx->nic_data;
2638 use_v2 = nic_data->datapath_caps2 &
2640 cut_thru = !(nic_data->datapath_caps &
2789 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2806 nic_data->datapath_caps &
2825 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2843 if (!(nic_data->datapath_caps &
3206 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3211 if (is_zero_ether_addr(nic_data->vport_mac))
3224 ether_addr_copy(mac_old, nic_data->vport_mac);
3226 nic_data->vport_mac);
3233 ether_addr_copy(nic_data->vport_mac, efx->net_dev->dev_addr);
3238 eth_zero_addr(nic_data->vport_mac);
3282 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3290 rc = efx_ef10_sriov_set_vf_mac(efx_pf, nic_data->vf_index, mac);
3723 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3725 if (!is_valid_ether_addr(nic_data->port_id))
3729 memcpy(ppid->id, nic_data->port_id, ppid->id_len);
3757 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3767 WARN_ON(!mutex_is_locked(&nic_data->udp_tunnels_lock));
3769 nic_data->udp_tunnels_dirty = false;
3771 if (!(nic_data->datapath_caps &
3777 BUILD_BUG_ON(ARRAY_SIZE(nic_data->udp_tunnels) >
3780 for (i = 0; i < ARRAY_SIZE(nic_data->udp_tunnels); ++i) {
3781 if (nic_data->udp_tunnels[i].type !=
3787 ntohs(nic_data->udp_tunnels[i].port),
3789 nic_data->udp_tunnels[i].type);
3817 nic_data->udp_tunnels_dirty = true;
3853 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3856 mutex_lock(&nic_data->udp_tunnels_lock);
3857 if (nic_data->udp_tunnels_dirty) {
3864 mutex_unlock(&nic_data->udp_tunnels_lock);
3873 struct efx_ef10_nic_data *nic_data;
3881 nic_data = efx->nic_data;
3882 if (!(nic_data->datapath_caps &
3886 mutex_lock(&nic_data->udp_tunnels_lock);
3891 nic_data->udp_tunnels[entry].type = efx_tunnel_type;
3892 nic_data->udp_tunnels[entry].port = ti->port;
3894 mutex_unlock(&nic_data->udp_tunnels_lock);
3906 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3909 if (!(nic_data->datapath_caps &
3913 if (nic_data->udp_tunnels_dirty)
3919 for (i = 0; i < ARRAY_SIZE(nic_data->udp_tunnels); ++i)
3920 if (nic_data->udp_tunnels[i].type !=
3922 nic_data->udp_tunnels[i].port == port)
3933 struct efx_ef10_nic_data *nic_data;
3936 nic_data = efx->nic_data;
3938 mutex_lock(&nic_data->udp_tunnels_lock);
3943 nic_data->udp_tunnels[entry].type = TUNNEL_ENCAP_UDP_PORT_ENTRY_INVALID;
3944 nic_data->udp_tunnels[entry].port = 0;
3946 mutex_unlock(&nic_data->udp_tunnels_lock);
3970 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3973 nic_data->rx_dpcpu_fw_id,
3974 nic_data->tx_dpcpu_fw_id);
3981 const struct efx_ef10_nic_data *nic_data = efx->nic_data;
3985 return nic_data->datapath_caps & BIT_ULL(flag);
3987 return nic_data->datapath_caps2 & BIT_ULL(flag);