sfc: Add efx_nic_type operation for identity LED control
Subsystems (2)
PATCH 11/12 sfc: Add efx_nic_type operation for identity LED control
Signed-off-by Ben Hutchings <[email protected]>
--- drivers/net/sfc/ethtool.c | 6 +++--- drivers/net/sfc/falcon.c | 7 +++++++ drivers/net/sfc/net_driver.h | 2 ++ 3 files changed, 12 insertions(+), 3 deletions(-)
drivers/net/sfc/ethtool.c +3 -3
@@ -174,14 +174,14 @@ static int efx_ethtool_phys_id(struct net_device *net_dev, u32 count)struct efx_nic *efx =netdev_priv (net_dev);do { -falcon_board (efx)->type->set_id_led (efx,EFX_LED_ON ); + efx->type->set_id_led (efx,EFX_LED_ON );schedule_timeout_interruptible (HZ /2 ); -falcon_board (efx)->type->set_id_led (efx,EFX_LED_OFF ); + efx->type->set_id_led (efx,EFX_LED_OFF );schedule_timeout_interruptible (HZ /2 ); }while (!signal_pending (current) && --count !=0 ); -falcon_board (efx)->type->set_id_led (efx,EFX_LED_DEFAULT ); + efx->type->set_id_led (efx,EFX_LED_DEFAULT );return 0 ; }
drivers/net/sfc/falcon.c +7 -0
@@ -3249,6 +3249,11 @@ void falcon_stop_nic_stats(struct efx_nic *efx)spin_unlock_bh (&efx->stats_lock); } +static void falcon_set_id_led (struct efx_nic *efx,enum efx_led_mode mode) +{ +falcon_board (efx)->type->set_id_led (efx, mode); +} +/************************************************************************** * * Wake on LAN
@@ -3290,6 +3295,7 @@ struct efx_nic_type falcon_a1_nic_type = { .update_stats = falcon_update_nic_stats, .start_stats = falcon_start_nic_stats, .stop_stats = falcon_stop_nic_stats, + .set_id_led = falcon_set_id_led, .push_irq_moderation = falcon_push_irq_moderation, .push_multicast_hash = falcon_push_multicast_hash, .reconfigure_port = falcon_reconfigure_port,
@@ -3328,6 +3334,7 @@ struct efx_nic_type falcon_b0_nic_type = { .update_stats = falcon_update_nic_stats, .start_stats = falcon_start_nic_stats, .stop_stats = falcon_stop_nic_stats, + .set_id_led = falcon_set_id_led, .push_irq_moderation = falcon_push_irq_moderation, .push_multicast_hash = falcon_push_multicast_hash, .reconfigure_port = falcon_reconfigure_port,
drivers/net/sfc/net_driver.h +2 -0
@@ -858,6 +858,7 @@ static inline const char *efx_dev_name(struct efx_nic *efx)* @update_stats: Update statistics not provided by event handling * @start_stats: Start the regular fetching of statistics * @stop_stats: Stop the regular fetching of statistics +* @set_id_led: Set state of identifying LED or revert to automatic function * @push_irq_moderation: Apply interrupt moderation value * @push_multicast_hash: Apply multicast hash table * @reconfigure_port: Push loopback/power/txdis changes to the MAC and PHY
@@ -898,6 +899,7 @@ struct efx_nic_type {void (*update_stats)(struct efx_nic *efx);void (*start_stats)(struct efx_nic *efx);void (*stop_stats)(struct efx_nic *efx); +void (*set_id_led)(struct efx_nic *efx,enum efx_led_mode mode);void (*push_irq_moderation)(struct efx_channel *channel);void (*push_multicast_hash)(struct efx_nic *efx);int (*reconfigure_port)(struct efx_nic *efx);
Signature · 9 lines
1.6.5.3 -- Ben Hutchings, Senior Software Engineer, Solarflare Communications Not speaking for my employer; that's the marketing department's job. They asked us to note that Solarflare product names are trademarked.
From: Ben Hutchings <[email protected]>
Date: Sun, 29 Nov 2009 13:43:43 +0000
Quoted 1 line
Signed-off-by Ben Hutchings <[email protected]>
Applied.