@@ -783,6 +783,78 @@ const struct efx_nic_type ef100_pf_nic_type = {
783
783
784
784
};
785
785
786
+ const struct efx_nic_type ef100_vf_nic_type = {
787
+ .revision = EFX_REV_EF100 ,
788
+ .is_vf = true,
789
+ .probe = ef100_probe_vf ,
790
+ .offload_features = EF100_OFFLOAD_FEATURES ,
791
+ .mcdi_max_ver = 2 ,
792
+ .mcdi_request = ef100_mcdi_request ,
793
+ .mcdi_poll_response = ef100_mcdi_poll_response ,
794
+ .mcdi_read_response = ef100_mcdi_read_response ,
795
+ .mcdi_poll_reboot = ef100_mcdi_poll_reboot ,
796
+ .mcdi_reboot_detected = ef100_mcdi_reboot_detected ,
797
+ .irq_enable_master = efx_port_dummy_op_void ,
798
+ .irq_test_generate = efx_ef100_irq_test_generate ,
799
+ .irq_disable_non_ev = efx_port_dummy_op_void ,
800
+ .push_irq_moderation = efx_channel_dummy_op_void ,
801
+ .min_interrupt_mode = EFX_INT_MODE_MSIX ,
802
+ .map_reset_reason = ef100_map_reset_reason ,
803
+ .map_reset_flags = ef100_map_reset_flags ,
804
+ .reset = ef100_reset ,
805
+ .check_caps = ef100_check_caps ,
806
+ .ev_probe = ef100_ev_probe ,
807
+ .ev_init = ef100_ev_init ,
808
+ .ev_fini = efx_mcdi_ev_fini ,
809
+ .ev_remove = efx_mcdi_ev_remove ,
810
+ .irq_handle_msi = ef100_msi_interrupt ,
811
+ .ev_process = ef100_ev_process ,
812
+ .ev_read_ack = ef100_ev_read_ack ,
813
+ .ev_test_generate = efx_ef100_ev_test_generate ,
814
+ .tx_probe = ef100_tx_probe ,
815
+ .tx_init = ef100_tx_init ,
816
+ .tx_write = ef100_tx_write ,
817
+ .tx_enqueue = ef100_enqueue_skb ,
818
+ .rx_probe = efx_mcdi_rx_probe ,
819
+ .rx_init = efx_mcdi_rx_init ,
820
+ .rx_remove = efx_mcdi_rx_remove ,
821
+ .rx_write = ef100_rx_write ,
822
+ .rx_packet = __ef100_rx_packet ,
823
+ .fini_dmaq = efx_fini_dmaq ,
824
+ .max_rx_ip_filters = EFX_MCDI_FILTER_TBL_ROWS ,
825
+ .filter_table_probe = ef100_filter_table_up ,
826
+ .filter_table_restore = efx_mcdi_filter_table_restore ,
827
+ .filter_table_remove = ef100_filter_table_down ,
828
+ .filter_insert = efx_mcdi_filter_insert ,
829
+ .filter_remove_safe = efx_mcdi_filter_remove_safe ,
830
+ .filter_get_safe = efx_mcdi_filter_get_safe ,
831
+ .filter_clear_rx = efx_mcdi_filter_clear_rx ,
832
+ .filter_count_rx_used = efx_mcdi_filter_count_rx_used ,
833
+ .filter_get_rx_id_limit = efx_mcdi_filter_get_rx_id_limit ,
834
+ .filter_get_rx_ids = efx_mcdi_filter_get_rx_ids ,
835
+ .filter_rfs_expire_one = efx_mcdi_filter_rfs_expire_one ,
836
+
837
+ .rx_prefix_size = ESE_GZ_RX_PKT_PREFIX_LEN ,
838
+ .rx_hash_offset = ESF_GZ_RX_PREFIX_RSS_HASH_LBN / 8 ,
839
+ .rx_ts_offset = ESF_GZ_RX_PREFIX_PARTIAL_TSTAMP_LBN / 8 ,
840
+ .rx_hash_key_size = 40 ,
841
+ .rx_pull_rss_config = efx_mcdi_rx_pull_rss_config ,
842
+ .rx_push_rss_config = efx_mcdi_pf_rx_push_rss_config ,
843
+ .rx_restore_rss_contexts = efx_mcdi_rx_restore_rss_contexts ,
844
+
845
+ .reconfigure_mac = ef100_reconfigure_mac ,
846
+ .test_nvram = efx_new_mcdi_nvram_test_all ,
847
+ .describe_stats = ef100_describe_stats ,
848
+ .start_stats = efx_mcdi_mac_start_stats ,
849
+ .update_stats = ef100_update_stats ,
850
+ .pull_stats = efx_mcdi_mac_pull_stats ,
851
+ .stop_stats = efx_mcdi_mac_stop_stats ,
852
+
853
+ .mem_bar = NULL ,
854
+ .mem_map_size = NULL ,
855
+
856
+ };
857
+
786
858
static int compare_versions (const char * a , const char * b )
787
859
{
788
860
int a_major , a_minor , a_point , a_patch ;
@@ -1178,6 +1250,11 @@ int ef100_probe_pf(struct efx_nic *efx)
1178
1250
return rc ;
1179
1251
}
1180
1252
1253
+ int ef100_probe_vf (struct efx_nic * efx )
1254
+ {
1255
+ return ef100_probe_main (efx );
1256
+ }
1257
+
1181
1258
void ef100_remove (struct efx_nic * efx )
1182
1259
{
1183
1260
struct ef100_nic_data * nic_data = efx -> nic_data ;
0 commit comments