mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-22 06:32:08 +00:00
sfc: Add efx_nic_type operation for identity LED control
Signed-off-by: Ben Hutchings <bhutchings@solarflare.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0aa3fbaa3f
commit
06629f0724
3 changed files with 12 additions and 3 deletions
|
@ -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);
|
struct efx_nic *efx = netdev_priv(net_dev);
|
||||||
|
|
||||||
do {
|
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);
|
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);
|
schedule_timeout_interruptible(HZ / 2);
|
||||||
} while (!signal_pending(current) && --count != 0);
|
} 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;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -3249,6 +3249,11 @@ void falcon_stop_nic_stats(struct efx_nic *efx)
|
||||||
spin_unlock_bh(&efx->stats_lock);
|
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
|
* Wake on LAN
|
||||||
|
@ -3290,6 +3295,7 @@ struct efx_nic_type falcon_a1_nic_type = {
|
||||||
.update_stats = falcon_update_nic_stats,
|
.update_stats = falcon_update_nic_stats,
|
||||||
.start_stats = falcon_start_nic_stats,
|
.start_stats = falcon_start_nic_stats,
|
||||||
.stop_stats = falcon_stop_nic_stats,
|
.stop_stats = falcon_stop_nic_stats,
|
||||||
|
.set_id_led = falcon_set_id_led,
|
||||||
.push_irq_moderation = falcon_push_irq_moderation,
|
.push_irq_moderation = falcon_push_irq_moderation,
|
||||||
.push_multicast_hash = falcon_push_multicast_hash,
|
.push_multicast_hash = falcon_push_multicast_hash,
|
||||||
.reconfigure_port = falcon_reconfigure_port,
|
.reconfigure_port = falcon_reconfigure_port,
|
||||||
|
@ -3328,6 +3334,7 @@ struct efx_nic_type falcon_b0_nic_type = {
|
||||||
.update_stats = falcon_update_nic_stats,
|
.update_stats = falcon_update_nic_stats,
|
||||||
.start_stats = falcon_start_nic_stats,
|
.start_stats = falcon_start_nic_stats,
|
||||||
.stop_stats = falcon_stop_nic_stats,
|
.stop_stats = falcon_stop_nic_stats,
|
||||||
|
.set_id_led = falcon_set_id_led,
|
||||||
.push_irq_moderation = falcon_push_irq_moderation,
|
.push_irq_moderation = falcon_push_irq_moderation,
|
||||||
.push_multicast_hash = falcon_push_multicast_hash,
|
.push_multicast_hash = falcon_push_multicast_hash,
|
||||||
.reconfigure_port = falcon_reconfigure_port,
|
.reconfigure_port = falcon_reconfigure_port,
|
||||||
|
|
|
@ -858,6 +858,7 @@ static inline const char *efx_dev_name(struct efx_nic *efx)
|
||||||
* @update_stats: Update statistics not provided by event handling
|
* @update_stats: Update statistics not provided by event handling
|
||||||
* @start_stats: Start the regular fetching of statistics
|
* @start_stats: Start the regular fetching of statistics
|
||||||
* @stop_stats: Stop 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_irq_moderation: Apply interrupt moderation value
|
||||||
* @push_multicast_hash: Apply multicast hash table
|
* @push_multicast_hash: Apply multicast hash table
|
||||||
* @reconfigure_port: Push loopback/power/txdis changes to the MAC and PHY
|
* @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 (*update_stats)(struct efx_nic *efx);
|
||||||
void (*start_stats)(struct efx_nic *efx);
|
void (*start_stats)(struct efx_nic *efx);
|
||||||
void (*stop_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_irq_moderation)(struct efx_channel *channel);
|
||||||
void (*push_multicast_hash)(struct efx_nic *efx);
|
void (*push_multicast_hash)(struct efx_nic *efx);
|
||||||
int (*reconfigure_port)(struct efx_nic *efx);
|
int (*reconfigure_port)(struct efx_nic *efx);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue