diff options
author | Ben Hutchings <bhutchings@solarflare.com> | 2009-11-28 22:42:31 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2009-11-29 19:46:27 -0500 |
commit | ef2b90ee4dba7a3d9001f1f0003b860b39a4aaae (patch) | |
tree | 5eec233a05fab4fd0c79dc9c1eb6541d45cead53 /drivers/net/sfc/net_driver.h | |
parent | 4b0d29dcfca9eafbf6e940862ab022df3ef2dd6f (diff) |
sfc: Move Falcon NIC operations to efx_nic_type
This is preparation for adding differing implementations for new NICs.
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/sfc/net_driver.h')
-rw-r--r-- | drivers/net/sfc/net_driver.h | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/drivers/net/sfc/net_driver.h b/drivers/net/sfc/net_driver.h index fddf8f5870c..32806f9a7e4 100644 --- a/drivers/net/sfc/net_driver.h +++ b/drivers/net/sfc/net_driver.h | |||
@@ -843,6 +843,21 @@ static inline const char *efx_dev_name(struct efx_nic *efx) | |||
843 | 843 | ||
844 | /** | 844 | /** |
845 | * struct efx_nic_type - Efx device type definition | 845 | * struct efx_nic_type - Efx device type definition |
846 | * @probe: Probe the controller | ||
847 | * @remove: Free resources allocated by probe() | ||
848 | * @init: Initialise the controller | ||
849 | * @fini: Shut down the controller | ||
850 | * @monitor: Periodic function for polling link state and hardware monitor | ||
851 | * @reset: Reset the controller hardware and possibly the PHY. This will | ||
852 | * be called while the controller is uninitialised. | ||
853 | * @probe_port: Probe the MAC and PHY | ||
854 | * @remove_port: Free resources allocated by probe_port() | ||
855 | * @prepare_flush: Prepare the hardware for flushing the DMA queues | ||
856 | * @update_stats: Update statistics not provided by event handling | ||
857 | * @start_stats: Start the regular fetching of statistics | ||
858 | * @stop_stats: Stop the regular fetching of statistics | ||
859 | * @push_irq_moderation: Apply interrupt moderation value | ||
860 | * @push_multicast_hash: Apply multicast hash table | ||
846 | * @default_mac_ops: efx_mac_operations to set at startup | 861 | * @default_mac_ops: efx_mac_operations to set at startup |
847 | * @revision: Hardware architecture revision | 862 | * @revision: Hardware architecture revision |
848 | * @mem_map_size: Memory BAR mapped size | 863 | * @mem_map_size: Memory BAR mapped size |
@@ -861,6 +876,20 @@ static inline const char *efx_dev_name(struct efx_nic *efx) | |||
861 | * @rx_dc_base: Base address in SRAM of RX queue descriptor caches | 876 | * @rx_dc_base: Base address in SRAM of RX queue descriptor caches |
862 | */ | 877 | */ |
863 | struct efx_nic_type { | 878 | struct efx_nic_type { |
879 | int (*probe)(struct efx_nic *efx); | ||
880 | void (*remove)(struct efx_nic *efx); | ||
881 | int (*init)(struct efx_nic *efx); | ||
882 | void (*fini)(struct efx_nic *efx); | ||
883 | void (*monitor)(struct efx_nic *efx); | ||
884 | int (*reset)(struct efx_nic *efx, enum reset_type method); | ||
885 | int (*probe_port)(struct efx_nic *efx); | ||
886 | void (*remove_port)(struct efx_nic *efx); | ||
887 | void (*prepare_flush)(struct efx_nic *efx); | ||
888 | void (*update_stats)(struct efx_nic *efx); | ||
889 | void (*start_stats)(struct efx_nic *efx); | ||
890 | void (*stop_stats)(struct efx_nic *efx); | ||
891 | void (*push_irq_moderation)(struct efx_channel *channel); | ||
892 | void (*push_multicast_hash)(struct efx_nic *efx); | ||
864 | struct efx_mac_operations *default_mac_ops; | 893 | struct efx_mac_operations *default_mac_ops; |
865 | 894 | ||
866 | int revision; | 895 | int revision; |