sfc: Add support for sub-10G speeds
The SFC4000 has a separate MAC for use at sub-10G speeds. Introduce an efx_mac_operations structure with implementations for the two MACs. Switch between the MACs as necessary. PHY settings are independent of the MAC, so add get_settings() and set_settings() to efx_phy_operations. Also add macs field to indicate which MACs the PHY is connected to. Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
356eebb2b3
commit
177dfcd80f
@@ -12,6 +12,7 @@
|
||||
#define EFX_FALCON_H
|
||||
|
||||
#include "net_driver.h"
|
||||
#include "efx.h"
|
||||
|
||||
/*
|
||||
* Falcon hardware control
|
||||
@@ -65,6 +66,7 @@ extern int falcon_probe_port(struct efx_nic *efx);
|
||||
extern void falcon_remove_port(struct efx_nic *efx);
|
||||
|
||||
/* MAC/PHY */
|
||||
extern int falcon_switch_mac(struct efx_nic *efx);
|
||||
extern bool falcon_xaui_link_ok(struct efx_nic *efx);
|
||||
extern int falcon_dma_stats(struct efx_nic *efx,
|
||||
unsigned int done_offset);
|
||||
@@ -77,6 +79,7 @@ extern int falcon_init_interrupt(struct efx_nic *efx);
|
||||
extern void falcon_enable_interrupts(struct efx_nic *efx);
|
||||
extern void falcon_generate_test_event(struct efx_channel *channel,
|
||||
unsigned int magic);
|
||||
extern void falcon_sim_phy_event(struct efx_nic *efx);
|
||||
extern void falcon_generate_interrupt(struct efx_nic *efx);
|
||||
extern void falcon_set_int_moderation(struct efx_channel *channel);
|
||||
extern void falcon_disable_interrupts(struct efx_nic *efx);
|
||||
|
Reference in New Issue
Block a user