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);
527 struct efx_ef10_nic_data *nic_data;
530 nic_data = kzalloc(sizeof(*nic_data), GFP_KERNEL);
531 if (!nic_data)
533 efx->nic_data = nic_data;
538 rc = efx_nic_alloc_buffer(efx, &nic_data->mcdi_buf,
555 nic_data->warm_boot_count = rc;
568 mutex_init(&nic_data->udp_tunnels_lock);
569 for (i = 0; i < ARRAY_SIZE(nic_data->udp_tunnels); ++i)
570 nic_data->udp_tunnels[i].type =
592 rc = efx_get_pf_index(efx, &nic_data->pf_index);
606 if (nic_data->datapath_caps &
628 if (nic_data->datapath_caps &
656 efx_pf->type->get_mac_address(efx_pf, nic_data->port_id);
659 ether_addr_copy(nic_data->port_id, efx->net_dev->perm_addr);
661 INIT_LIST_HEAD(&nic_data->vlan_list);
662 mutex_init(&nic_data->vlan_lock);
677 if (nic_data->datapath_caps &
688 mutex_destroy(&nic_data->vlan_lock);
698 mutex_lock(&nic_data->udp_tunnels_lock);
699 memset(nic_data->udp_tunnels, 0, sizeof(nic_data->udp_tunnels));
701 mutex_unlock(&nic_data->udp_tunnels_lock);
702 mutex_destroy(&nic_data->udp_tunnels_lock);
706 efx_nic_free_buffer(efx, &nic_data->mcdi_buf);
708 kfree(nic_data);
709 efx->nic_data = NULL;
717 struct efx_ef10_nic_data *nic_data = efx->nic_data;
724 for (i = 0; i < nic_data->n_piobufs; i++) {
726 nic_data->piobuf_handle[i]);
732 nic_data->n_piobufs = 0;
737 struct efx_ef10_nic_data *nic_data = efx->nic_data;
761 nic_data->piobuf_handle[i] =
765 nic_data->piobuf_handle[i]);
768 nic_data->n_piobufs = i;
776 struct efx_ef10_nic_data *nic_data = efx->nic_data;
787 for (index = 0; index < nic_data->n_piobufs; ++index) {
789 nic_data->piobuf_handle[index]);
791 nic_data->pio_write_vi_base + index);
798 nic_data->pio_write_vi_base + index, index,
804 nic_data->pio_write_vi_base + index, index);
824 index = offset / nic_data->piobuf_size;
825 offset = offset % nic_data->piobuf_size;
832 if (tx_queue->queue == nic_data->pio_write_vi_base) {
838 nic_data->piobuf_handle[index]);
857 nic_data->pio_write_base +
878 nic_data->pio_write_vi_base + index);
921 struct efx_ef10_nic_data *nic_data = efx->nic_data;
934 nic_data_pf = efx_pf->nic_data;
935 vf = nic_data_pf->vf + nic_data->vf_index;
944 mutex_destroy(&nic_data->vlan_lock);
952 if (nic_data->wc_membase)
953 iounmap(nic_data->wc_membase);
958 if (!nic_data->must_restore_piobufs)
966 memset(nic_data->udp_tunnels, 0, sizeof(nic_data->udp_tunnels));
967 mutex_lock(&nic_data->udp_tunnels_lock);
969 mutex_unlock(&nic_data->udp_tunnels_lock);
971 mutex_destroy(&nic_data->udp_tunnels_lock);
974 efx_nic_free_buffer(efx, &nic_data->mcdi_buf);
975 kfree(nic_data);
987 struct efx_ef10_nic_data *nic_data = efx->nic_data;
993 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;
1783 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1784 u64 *stats = nic_data->stats;
1801 if (nic_data->datapath_caps &
1851 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1853 u64 *stats = nic_data->stats;
1860 if (nic_data->mc_stats) {
1861 efx_nic_copy_stats(efx, nic_data->mc_stats);
1863 mask, stats, nic_data->mc_stats, false);
1897 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1900 u64 *stats = nic_data->stats;
1972 struct efx_ef10_nic_data *nic_data = efx->nic_data;
1977 efx_update_sw_stats(efx, nic_data->stats);
2053 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2054 u8 *pdu = nic_data->mcdi_buf.addr;
2066 _efx_writed(efx, cpu_to_le32((u64)nic_data->mcdi_buf.dma_addr >> 32),
2068 _efx_writed(efx, cpu_to_le32((u32)nic_data->mcdi_buf.dma_addr),
2074 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2075 const efx_dword_t hdr = *(const efx_dword_t *)nic_data->mcdi_buf.addr;
2085 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2086 const u8 *pdu = nic_data->mcdi_buf.addr;
2093 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2099 nic_data->must_check_datapath_caps = true;
2104 nic_data->stats[EF10_STAT_port_rx_bad_bytes] = 0;
2109 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2122 if (rc == nic_data->warm_boot_count)
2125 nic_data->warm_boot_count = rc;
2329 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2332 if (nic_data->datapath_caps &
2335 if (nic_data->datapath_caps2 &
2347 struct efx_ef10_nic_data *nic_data;
2351 nic_data = efx->nic_data;
2356 if (!(nic_data->licensed_features &
2498 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2508 nic_data->workaround_26807 = false;
2515 nic_data->workaround_26807 =
2518 if (want_workaround_26807 && !nic_data->workaround_26807) {
2539 nic_data->warm_boot_count = rc;
2543 nic_data->workaround_26807 = true;
2553 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2560 rc = efx_mcdi_filter_table_probe(efx, nic_data->workaround_26807);
2565 list_for_each_entry(vlan, &nic_data->vlan_list, list) {
2660 struct efx_ef10_nic_data *nic_data;
2663 nic_data = efx->nic_data;
2664 use_v2 = nic_data->datapath_caps2 &
2666 cut_thru = !(nic_data->datapath_caps &
2815 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2832 nic_data->datapath_caps &
2851 struct efx_ef10_nic_data *nic_data = efx->nic_data;
2869 if (!(nic_data->datapath_caps &
3243 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3248 if (is_zero_ether_addr(nic_data->vport_mac))
3259 ether_addr_copy(mac_old, nic_data->vport_mac);
3261 nic_data->vport_mac);
3268 ether_addr_copy(nic_data->vport_mac, efx->net_dev->dev_addr);
3273 eth_zero_addr(nic_data->vport_mac);
3315 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3323 rc = efx_ef10_sriov_set_vf_mac(efx_pf, nic_data->vf_index, mac);
3754 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3756 if (!is_valid_ether_addr(nic_data->port_id))
3760 memcpy(ppid->id, nic_data->port_id, ppid->id_len);
3788 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3798 WARN_ON(!mutex_is_locked(&nic_data->udp_tunnels_lock));
3800 nic_data->udp_tunnels_dirty = false;
3802 if (!(nic_data->datapath_caps &
3808 BUILD_BUG_ON(ARRAY_SIZE(nic_data->udp_tunnels) >
3811 for (i = 0; i < ARRAY_SIZE(nic_data->udp_tunnels); ++i) {
3812 if (nic_data->udp_tunnels[i].type !=
3818 ntohs(nic_data->udp_tunnels[i].port),
3820 nic_data->udp_tunnels[i].type);
3848 nic_data->udp_tunnels_dirty = true;
3884 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3887 mutex_lock(&nic_data->udp_tunnels_lock);
3888 if (nic_data->udp_tunnels_dirty) {
3895 mutex_unlock(&nic_data->udp_tunnels_lock);
3904 struct efx_ef10_nic_data *nic_data;
3912 nic_data = efx->nic_data;
3913 if (!(nic_data->datapath_caps &
3917 mutex_lock(&nic_data->udp_tunnels_lock);
3922 nic_data->udp_tunnels[entry].type = efx_tunnel_type;
3923 nic_data->udp_tunnels[entry].port = ti->port;
3925 mutex_unlock(&nic_data->udp_tunnels_lock);
3937 struct efx_ef10_nic_data *nic_data = efx->nic_data;
3940 if (!(nic_data->datapath_caps &
3944 if (nic_data->udp_tunnels_dirty)
3950 for (i = 0; i < ARRAY_SIZE(nic_data->udp_tunnels); ++i)
3951 if (nic_data->udp_tunnels[i].type !=
3953 nic_data->udp_tunnels[i].port == port)
3964 struct efx_ef10_nic_data *nic_data;
3967 nic_data = efx->nic_data;
3969 mutex_lock(&nic_data->udp_tunnels_lock);
3974 nic_data->udp_tunnels[entry].type = TUNNEL_ENCAP_UDP_PORT_ENTRY_INVALID;
3975 nic_data->udp_tunnels[entry].port = 0;
3977 mutex_unlock(&nic_data->udp_tunnels_lock);
4001 struct efx_ef10_nic_data *nic_data = efx->nic_data;
4004 nic_data->rx_dpcpu_fw_id,
4005 nic_data->tx_dpcpu_fw_id);
4012 const struct efx_ef10_nic_data *nic_data = efx->nic_data;
4016 return nic_data->datapath_caps & BIT_ULL(flag);
4018 return nic_data->datapath_caps2 & BIT_ULL(flag);