aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/net/sfc/net_driver.h
diff options
context:
space:
mode:
authorBen Hutchings <bhutchings@solarflare.com>2009-11-28 22:42:31 -0500
committerDavid S. Miller <davem@davemloft.net>2009-11-29 19:46:27 -0500
commitef2b90ee4dba7a3d9001f1f0003b860b39a4aaae (patch)
tree5eec233a05fab4fd0c79dc9c1eb6541d45cead53 /drivers/net/sfc/net_driver.h
parent4b0d29dcfca9eafbf6e940862ab022df3ef2dd6f (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.h29
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 */
863struct efx_nic_type { 878struct 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;