@@ -1396,7 +1396,7 @@ static void efx_ef10_table_reset_mc_allocations(struct efx_nic *efx)
13961396 efx_mcdi_filter_table_reset_mc_allocations (efx );
13971397 nic_data -> must_restore_piobufs = true;
13981398 efx_ef10_forget_old_piobufs (efx );
1399- efx -> rss_context .context_id = EFX_MCDI_RSS_CONTEXT_INVALID ;
1399+ efx -> rss_context .priv . context_id = EFX_MCDI_RSS_CONTEXT_INVALID ;
14001400
14011401 /* Driver-created vswitches and vports must be re-created */
14021402 nic_data -> must_probe_vswitching = true;
@@ -3706,13 +3706,13 @@ static int efx_ef10_ptp_set_ts_sync_events(struct efx_nic *efx, bool en,
37063706}
37073707
37083708static int efx_ef10_ptp_set_ts_config_vf (struct efx_nic * efx ,
3709- struct hwtstamp_config * init )
3709+ struct kernel_hwtstamp_config * init )
37103710{
37113711 return - EOPNOTSUPP ;
37123712}
37133713
37143714static int efx_ef10_ptp_set_ts_config (struct efx_nic * efx ,
3715- struct hwtstamp_config * init )
3715+ struct kernel_hwtstamp_config * init )
37163716{
37173717 int rc ;
37183718
@@ -4302,3 +4302,130 @@ const struct efx_nic_type efx_hunt_a0_nic_type = {
43024302 .sensor_event = efx_mcdi_sensor_event ,
43034303 .rx_recycle_ring_size = efx_ef10_recycle_ring_size ,
43044304};
4305+
4306+ const struct efx_nic_type efx_x4_nic_type = {
4307+ .is_vf = false,
4308+ .mem_bar = efx_ef10_pf_mem_bar ,
4309+ .mem_map_size = efx_ef10_mem_map_size ,
4310+ .probe = efx_ef10_probe_pf ,
4311+ .remove = efx_ef10_remove ,
4312+ .dimension_resources = efx_ef10_dimension_resources ,
4313+ .init = efx_ef10_init_nic ,
4314+ .fini = efx_ef10_fini_nic ,
4315+ .map_reset_reason = efx_ef10_map_reset_reason ,
4316+ .map_reset_flags = efx_ef10_map_reset_flags ,
4317+ .reset = efx_ef10_reset ,
4318+ .probe_port = efx_mcdi_port_probe ,
4319+ .remove_port = efx_mcdi_port_remove ,
4320+ .fini_dmaq = efx_fini_dmaq ,
4321+ .prepare_flr = efx_ef10_prepare_flr ,
4322+ .finish_flr = efx_port_dummy_op_void ,
4323+ .describe_stats = efx_ef10_describe_stats ,
4324+ .update_stats = efx_ef10_update_stats_pf ,
4325+ .start_stats = efx_mcdi_mac_start_stats ,
4326+ .pull_stats = efx_mcdi_mac_pull_stats ,
4327+ .stop_stats = efx_mcdi_mac_stop_stats ,
4328+ .push_irq_moderation = efx_ef10_push_irq_moderation ,
4329+ .reconfigure_mac = efx_ef10_mac_reconfigure ,
4330+ .check_mac_fault = efx_mcdi_mac_check_fault ,
4331+ .reconfigure_port = efx_mcdi_port_reconfigure ,
4332+ .get_wol = efx_ef10_get_wol ,
4333+ .set_wol = efx_ef10_set_wol ,
4334+ .resume_wol = efx_port_dummy_op_void ,
4335+ .get_fec_stats = efx_ef10_get_fec_stats ,
4336+ .test_chip = efx_ef10_test_chip ,
4337+ .test_nvram = efx_mcdi_nvram_test_all ,
4338+ .mcdi_request = efx_ef10_mcdi_request ,
4339+ .mcdi_poll_response = efx_ef10_mcdi_poll_response ,
4340+ .mcdi_read_response = efx_ef10_mcdi_read_response ,
4341+ .mcdi_poll_reboot = efx_ef10_mcdi_poll_reboot ,
4342+ .mcdi_reboot_detected = efx_ef10_mcdi_reboot_detected ,
4343+ .irq_enable_master = efx_port_dummy_op_void ,
4344+ .irq_test_generate = efx_ef10_irq_test_generate ,
4345+ .irq_disable_non_ev = efx_port_dummy_op_void ,
4346+ .irq_handle_msi = efx_ef10_msi_interrupt ,
4347+ .tx_probe = efx_ef10_tx_probe ,
4348+ .tx_init = efx_ef10_tx_init ,
4349+ .tx_write = efx_ef10_tx_write ,
4350+ .tx_limit_len = efx_ef10_tx_limit_len ,
4351+ .tx_enqueue = __efx_enqueue_skb ,
4352+ .rx_push_rss_config = efx_mcdi_pf_rx_push_rss_config ,
4353+ .rx_pull_rss_config = efx_mcdi_rx_pull_rss_config ,
4354+ .rx_push_rss_context_config = efx_mcdi_rx_push_rss_context_config ,
4355+ .rx_pull_rss_context_config = efx_mcdi_rx_pull_rss_context_config ,
4356+ .rx_restore_rss_contexts = efx_mcdi_rx_restore_rss_contexts ,
4357+ .rx_probe = efx_mcdi_rx_probe ,
4358+ .rx_init = efx_mcdi_rx_init ,
4359+ .rx_remove = efx_mcdi_rx_remove ,
4360+ .rx_write = efx_ef10_rx_write ,
4361+ .rx_defer_refill = efx_ef10_rx_defer_refill ,
4362+ .rx_packet = __efx_rx_packet ,
4363+ .ev_probe = efx_mcdi_ev_probe ,
4364+ .ev_init = efx_ef10_ev_init ,
4365+ .ev_fini = efx_mcdi_ev_fini ,
4366+ .ev_remove = efx_mcdi_ev_remove ,
4367+ .ev_process = efx_ef10_ev_process ,
4368+ .ev_read_ack = efx_ef10_ev_read_ack ,
4369+ .ev_test_generate = efx_ef10_ev_test_generate ,
4370+ .filter_table_probe = efx_ef10_filter_table_probe ,
4371+ .filter_table_restore = efx_mcdi_filter_table_restore ,
4372+ .filter_table_remove = efx_ef10_filter_table_remove ,
4373+ .filter_insert = efx_mcdi_filter_insert ,
4374+ .filter_remove_safe = efx_mcdi_filter_remove_safe ,
4375+ .filter_get_safe = efx_mcdi_filter_get_safe ,
4376+ .filter_clear_rx = efx_mcdi_filter_clear_rx ,
4377+ .filter_count_rx_used = efx_mcdi_filter_count_rx_used ,
4378+ .filter_get_rx_id_limit = efx_mcdi_filter_get_rx_id_limit ,
4379+ .filter_get_rx_ids = efx_mcdi_filter_get_rx_ids ,
4380+ #ifdef CONFIG_RFS_ACCEL
4381+ .filter_rfs_expire_one = efx_mcdi_filter_rfs_expire_one ,
4382+ #endif
4383+ #ifdef CONFIG_SFC_MTD
4384+ .mtd_probe = efx_ef10_mtd_probe ,
4385+ .mtd_rename = efx_mcdi_mtd_rename ,
4386+ .mtd_read = efx_mcdi_mtd_read ,
4387+ .mtd_erase = efx_mcdi_mtd_erase ,
4388+ .mtd_write = efx_mcdi_mtd_write ,
4389+ .mtd_sync = efx_mcdi_mtd_sync ,
4390+ #endif
4391+ .ptp_write_host_time = efx_ef10_ptp_write_host_time ,
4392+ .ptp_set_ts_sync_events = efx_ef10_ptp_set_ts_sync_events ,
4393+ .ptp_set_ts_config = efx_ef10_ptp_set_ts_config ,
4394+ .vlan_rx_add_vid = efx_ef10_vlan_rx_add_vid ,
4395+ .vlan_rx_kill_vid = efx_ef10_vlan_rx_kill_vid ,
4396+ .udp_tnl_push_ports = efx_ef10_udp_tnl_push_ports ,
4397+ .udp_tnl_has_port = efx_ef10_udp_tnl_has_port ,
4398+ #ifdef CONFIG_SFC_SRIOV
4399+ /* currently set to the VF versions of these functions
4400+ * because SRIOV will be reimplemented later.
4401+ */
4402+ .vswitching_probe = efx_ef10_vswitching_probe_vf ,
4403+ .vswitching_restore = efx_ef10_vswitching_restore_vf ,
4404+ .vswitching_remove = efx_ef10_vswitching_remove_vf ,
4405+ #endif
4406+ .get_mac_address = efx_ef10_get_mac_address_pf ,
4407+ .set_mac_address = efx_ef10_set_mac_address ,
4408+ .tso_versions = efx_ef10_tso_versions ,
4409+
4410+ .get_phys_port_id = efx_ef10_get_phys_port_id ,
4411+ .revision = EFX_REV_X4 ,
4412+ .max_dma_mask = DMA_BIT_MASK (ESF_DZ_TX_KER_BUF_ADDR_WIDTH ),
4413+ .rx_prefix_size = ES_DZ_RX_PREFIX_SIZE ,
4414+ .rx_hash_offset = ES_DZ_RX_PREFIX_HASH_OFST ,
4415+ .rx_ts_offset = ES_DZ_RX_PREFIX_TSTAMP_OFST ,
4416+ .can_rx_scatter = true,
4417+ .always_rx_scatter = true,
4418+ .option_descriptors = true,
4419+ .min_interrupt_mode = EFX_INT_MODE_MSIX ,
4420+ .timer_period_max = 1 << ERF_DD_EVQ_IND_TIMER_VAL_WIDTH ,
4421+ .offload_features = EF10_OFFLOAD_FEATURES ,
4422+ .mcdi_max_ver = 2 ,
4423+ .max_rx_ip_filters = EFX_MCDI_FILTER_TBL_ROWS ,
4424+ .hwtstamp_filters = 1 << HWTSTAMP_FILTER_NONE |
4425+ 1 << HWTSTAMP_FILTER_ALL ,
4426+ .check_caps = ef10_check_caps ,
4427+ .print_additional_fwver = efx_ef10_print_additional_fwver ,
4428+ .sensor_event = efx_mcdi_sensor_event ,
4429+ .rx_recycle_ring_size = efx_ef10_recycle_ring_size ,
4430+ };
4431+
0 commit comments